codenautas/self-explain

View on GitHub
dist/escodegen.browser.js

Summary

Maintainability
F
1 mo
Test Coverage

File escodegen.browser.js has 4937 lines of code (exceeds 250 allowed). Consider refactoring.
Open

// Generated by CommonJS Everywhere 0.9.7
/*
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

Severity: Major
Found in dist/escodegen.browser.js - About 2 wks to fix

    Function clone has 767 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

        }(this, function clone(exports) {
          'use strict';
          var Syntax, isArray, VisitorOption, VisitorKeys, objectCreate, objectKeys, BREAK, SKIP, REMOVE;
          function ignoreJSHintError() {
          }
    Severity: Major
    Found in dist/escodegen.browser.js - About 3 days to fix

      Function amdefine has 188 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

          function amdefine(module, requireFn) {
            'use strict';
            var defineCache = {}, loaderCache = {}, alreadyCalled = false, path = require('path', module), makeRequire, stringRequire;
            function trimDots(ary) {
              var i, part;
      Severity: Major
      Found in dist/escodegen.browser.js - About 7 hrs to fix

        Function replace has 106 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

              Controller.prototype.replace = function replace(root, visitor) {
                function removeElem(element) {
                  var i, key, nextElem, parent;
                  if (element.ref.remove()) {
                    key = element.ref.key;
        Severity: Major
        Found in dist/escodegen.browser.js - About 4 hrs to fix

          Function addComments has 103 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

                function addComments(stmt, result) {
                  var i, len, comment, save, tailingToStatement, specialBase, fragment, extRange, range, prevRange, prefix, infix, suffix, count;
                  if (stmt.leadingComments && stmt.leadingComments.length > 0) {
                    save = result;
                    if (preserveBlankLines) {
          Severity: Major
          Found in dist/escodegen.browser.js - About 4 hrs to fix

            Function SourceNode_toStringWithSourceMap has 76 lines of code (exceeds 25 allowed). Consider refactoring.
            Open

                  SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {
                    var generated = {
                        code: '',
                        line: 1,
                        column: 0
            Severity: Major
            Found in dist/escodegen.browser.js - About 3 hrs to fix

              Function attachComments has 76 lines of code (exceeds 25 allowed). Consider refactoring.
              Open

                    function attachComments(tree, providedComments, tokens) {
                      var comments = [], comment, len, i, cursor;
                      if (!tree.range) {
                        throw new Error('attachComments needs range information');
                      }
              Severity: Major
              Found in dist/escodegen.browser.js - About 3 hrs to fix

                Function traverse has 71 lines of code (exceeds 25 allowed). Consider refactoring.
                Open

                      Controller.prototype.traverse = function traverse(root, visitor) {
                        var worklist, leavelist, element, node, nodeType, ret, key, current, current2, candidates, candidate, sentinel;
                        this.__initialize(root, visitor);
                        sentinel = {};
                        worklist = this.__worklist;
                Severity: Major
                Found in dist/escodegen.browser.js - About 2 hrs to fix

                  Function BlockStatement has 69 lines of code (exceeds 25 allowed). Consider refactoring.
                  Open

                          BlockStatement: function (stmt, flags) {
                            var range, content, result = [
                                '{',
                                newline
                              ], that = this;
                  Severity: Major
                  Found in dist/escodegen.browser.js - About 2 hrs to fix

                    Function generate has 65 lines of code (exceeds 25 allowed). Consider refactoring.
                    Open

                          function generate(node, options) {
                            var defaultOptions = getDefaultOptions(), result, pair;
                            if (options != null) {
                              if (typeof options.indent === 'string') {
                                defaultOptions.format.indent.style = options.indent;
                    Severity: Major
                    Found in dist/escodegen.browser.js - About 2 hrs to fix

                      Function SourceNode_fromStringWithSourceMap has 62 lines of code (exceeds 25 allowed). Consider refactoring.
                      Open

                            SourceNode.fromStringWithSourceMap = function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {
                              var node = new SourceNode;
                              var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);
                              var shiftNextLine = function () {
                                var lineContents = remainingLines.shift();
                      Severity: Major
                      Found in dist/escodegen.browser.js - About 2 hrs to fix

                        Consider simplifying this complex logical expression.
                        Open

                                } else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated && aOriginal && 'line' in aOriginal && 'column' in aOriginal && aGenerated.line > 0 && aGenerated.column >= 0 && aOriginal.line > 0 && aOriginal.column >= 0 && aSource) {
                                  return;
                                } else {
                                  throw new Error('Invalid mapping: ' + JSON.stringify({
                                    generated: aGenerated,
                        Severity: Critical
                        Found in dist/escodegen.browser.js - About 2 hrs to fix

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

                                BasicSourceMapConsumer.prototype._parseMappings = function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {
                                  var generatedLine = 1;
                                  var previousGeneratedColumn = 0;
                                  var previousOriginalLine = 0;
                                  var previousOriginalColumn = 0;
                          Severity: Major
                          Found in dist/escodegen.browser.js - About 2 hrs to fix

                            Function SourceMapGenerator_applySourceMap has 57 lines of code (exceeds 25 allowed). Consider refactoring.
                            Open

                                  SourceMapGenerator.prototype.applySourceMap = function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {
                                    var sourceFile = aSourceFile;
                                    if (aSourceFile == null) {
                                      if (aSourceMapConsumer.file == null) {
                                        throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' + 'or the source map\'s "file" property. Both were omitted.');
                            Severity: Major
                            Found in dist/escodegen.browser.js - About 2 hrs to fix

                              Function ImportDeclaration has 55 lines of code (exceeds 25 allowed). Consider refactoring.
                              Open

                                      ImportDeclaration: function (stmt, flags) {
                                        var result, cursor, that = this;
                                        if (stmt.specifiers.length === 0) {
                                          return [
                                            'import',
                              Severity: Major
                              Found in dist/escodegen.browser.js - About 2 hrs to fix

                                Function ExpressionStatement has 51 lines of code (exceeds 25 allowed). Consider refactoring.
                                Open

                                        ExpressionStatement: function (stmt, flags) {
                                          var result, fragment;
                                          function isClassPrefixed(fragment) {
                                            var code;
                                            if (fragment.slice(0, 5) !== 'class') {
                                Severity: Major
                                Found in dist/escodegen.browser.js - About 2 hrs to fix

                                  Function has too many statements (73). Maximum allowed is 70.
                                  Open

                                      (function () {
                                  Severity: Minor
                                  Found in dist/escodegen.browser.js by eslint

                                  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 generateNumber has 45 lines of code (exceeds 25 allowed). Consider refactoring.
                                  Open

                                        function generateNumber(value) {
                                          var result, point, temp, exponent, pos;
                                          if (value !== value) {
                                            throw new Error('Numeric literal whose value is NaN');
                                          }
                                  Severity: Minor
                                  Found in dist/escodegen.browser.js - About 1 hr to fix

                                    Function 'isKeywordES6' has a complexity of 36.
                                    Open

                                          function isKeywordES6(id, strict) {
                                    Severity: Minor
                                    Found in dist/escodegen.browser.js by eslint

                                    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 TryStatement has 44 lines of code (exceeds 25 allowed). Consider refactoring.
                                    Open

                                            TryStatement: function (stmt, flags) {
                                              var result, i, iz, guardedHandlers;
                                              result = [
                                                'try',
                                                this.maybeBlock(stmt.block, S_TFFF)
                                    Severity: Minor
                                    Found in dist/escodegen.browser.js - About 1 hr to fix

                                      Function ObjectExpression has 44 lines of code (exceeds 25 allowed). Consider refactoring.
                                      Open

                                              ObjectExpression: function (expr, precedence, flags) {
                                                var multiline, result, fragment, that = this;
                                                if (!expr.properties.length) {
                                                  return '{}';
                                                }
                                      Severity: Minor
                                      Found in dist/escodegen.browser.js - About 1 hr to fix

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

                                              SourceMapGenerator.prototype._serializeMappings = function SourceMapGenerator_serializeMappings() {
                                                var previousGeneratedColumn = 0;
                                                var previousGeneratedLine = 1;
                                                var previousOriginalColumn = 0;
                                                var previousOriginalLine = 0;
                                        Severity: Minor
                                        Found in dist/escodegen.browser.js - About 1 hr to fix

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

                                                  Program: function (stmt, flags) {
                                                    var result, fragment, i, iz, bodyFlags;
                                                    iz = stmt.body.length;
                                                    result = [safeConcatenation && iz > 0 ? '\n' : ''];
                                                    bodyFlags = S_TFTF;
                                          Severity: Minor
                                          Found in dist/escodegen.browser.js - About 1 hr to fix

                                            Function ExportNamedDeclaration has 39 lines of code (exceeds 25 allowed). Consider refactoring.
                                            Open

                                                    ExportNamedDeclaration: function (stmt, flags) {
                                                      var result = ['export'], bodyFlags, that = this;
                                                      bodyFlags = flags & F_SEMICOLON_OPT ? S_TFFT : S_TFFF;
                                                      if (stmt.declaration) {
                                                        return join(result, this.generateStatement(stmt.declaration, bodyFlags));
                                            Severity: Minor
                                            Found in dist/escodegen.browser.js - About 1 hr to fix

                                              Function ObjectPattern has 39 lines of code (exceeds 25 allowed). Consider refactoring.
                                              Open

                                                      ObjectPattern: function (expr, precedence, flags) {
                                                        var result, i, iz, multiline, property, that = this;
                                                        if (!expr.properties.length) {
                                                          return '{}';
                                                        }
                                              Severity: Minor
                                              Found in dist/escodegen.browser.js - About 1 hr to fix

                                                Function getDefaultOptions has 36 lines of code (exceeds 25 allowed). Consider refactoring.
                                                Open

                                                      function getDefaultOptions() {
                                                        return {
                                                          indent: null,
                                                          base: null,
                                                          parse: null,
                                                Severity: Minor
                                                Found in dist/escodegen.browser.js - About 1 hr to fix

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

                                                        function generateRegExp(reg) {
                                                          var match, result, flags, i, iz, ch, characterInBrack, previousIsBackslash;
                                                          result = reg.toString();
                                                          if (reg.source) {
                                                            match = result.match(/\/([^\/]*)$/);
                                                  Severity: Minor
                                                  Found in dist/escodegen.browser.js - About 1 hr to fix

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

                                                          function normalize(aPath) {
                                                            var path = aPath;
                                                            var url = urlParse(aPath);
                                                            if (url) {
                                                              if (!url.path) {
                                                    Severity: Minor
                                                    Found in dist/escodegen.browser.js - About 1 hr to fix

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

                                                            function runFactory(id, deps, factory) {
                                                              var r, e, m, result;
                                                              if (id) {
                                                                e = loaderCache[id] = {};
                                                                m = {
                                                      Severity: Minor
                                                      Found in dist/escodegen.browser.js - About 1 hr to fix

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

                                                                ArrayExpression: function (expr, precedence, flags, isPattern) {
                                                                  var result, multiline, that = this;
                                                                  if (!expr.elements.length) {
                                                                    return '[]';
                                                                  }
                                                        Severity: Minor
                                                        Found in dist/escodegen.browser.js - About 1 hr to fix

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

                                                                SourceMapGenerator.fromSourceMap = function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {
                                                                  var sourceRoot = aSourceMapConsumer.sourceRoot;
                                                                  var generator = new SourceMapGenerator({
                                                                      file: aSourceMapConsumer.file,
                                                                      sourceRoot: sourceRoot
                                                          Severity: Minor
                                                          Found in dist/escodegen.browser.js - About 1 hr to fix

                                                            Consider simplifying this complex logical expression.
                                                            Open

                                                                      if (fragment.charCodeAt(0) === 123 || isClassPrefixed(fragment) || isFunctionPrefixed(fragment) || isAsyncPrefixed(fragment) || directive && flags & F_DIRECTIVE_CTX && stmt.expression.type === Syntax.Literal && typeof stmt.expression.value === 'string') {
                                                                        result = [
                                                                          '(',
                                                                          result,
                                                                          ')' + this.semicolon(flags)
                                                            Severity: Critical
                                                            Found in dist/escodegen.browser.js - About 1 hr to fix

                                                              Consider simplifying this complex logical expression.
                                                              Open

                                                                      if (aGenerated && 'line' in aGenerated && 'column' in aGenerated && aGenerated.line > 0 && aGenerated.column >= 0 && !aOriginal && !aSource && !aName) {
                                                                        return;
                                                                      } else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated && aOriginal && 'line' in aOriginal && 'column' in aOriginal && aGenerated.line > 0 && aGenerated.column >= 0 && aOriginal.line > 0 && aOriginal.column >= 0 && aSource) {
                                                                        return;
                                                                      } else {
                                                              Severity: Critical
                                                              Found in dist/escodegen.browser.js - About 1 hr to fix

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

                                                                        ComprehensionExpression: function (expr, precedence, flags) {
                                                                          var result, i, iz, fragment, that = this;
                                                                          result = expr.type === Syntax.GeneratorExpression ? ['('] : ['['];
                                                                          if (extra.moz.comprehensionExpressionStartsWithAssignment) {
                                                                            fragment = this.generateExpression(expr.body, Precedence.Assignment, E_TTT);
                                                                Severity: Minor
                                                                Found in dist/escodegen.browser.js - About 1 hr to fix

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

                                                                        function escapeString(str) {
                                                                          var result = '', i, len, code, singleQuotes = 0, doubleQuotes = 0, single, quote;
                                                                          for (i = 0, len = str.length; i < len; ++i) {
                                                                            code = str.charCodeAt(i);
                                                                            if (code === 39) {
                                                                  Severity: Minor
                                                                  Found in dist/escodegen.browser.js - About 1 hr to fix

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

                                                                          CodeGenerator.prototype.generateFunctionParams = function (node) {
                                                                            var i, iz, result, hasDefault;
                                                                            hasDefault = false;
                                                                            if (node.type === Syntax.ArrowFunctionExpression && !node.rest && (!node.defaults || node.defaults.length === 0) && node.params.length === 1 && node.params[0].type === Syntax.Identifier) {
                                                                              result = [
                                                                    Severity: Minor
                                                                    Found in dist/escodegen.browser.js - About 1 hr to fix

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

                                                                              SwitchCase: function (stmt, flags) {
                                                                                var result, fragment, i, iz, bodyFlags, that = this;
                                                                                withIndent(function () {
                                                                                  if (stmt.test) {
                                                                                    result = [
                                                                      Severity: Minor
                                                                      Found in dist/escodegen.browser.js - About 1 hr to fix

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

                                                                              function IndexedSourceMapConsumer(aSourceMap) {
                                                                                var sourceMap = aSourceMap;
                                                                                if (typeof aSourceMap === 'string') {
                                                                                  sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, ''));
                                                                                }
                                                                        Severity: Minor
                                                                        Found in dist/escodegen.browser.js - About 1 hr to fix

                                                                          Function adjustMultilineComment has 31 lines of code (exceeds 25 allowed). Consider refactoring.
                                                                          Open

                                                                                function adjustMultilineComment(value, specialBase) {
                                                                                  var array, i, len, line, j, spaces, previousBase, sn;
                                                                                  array = value.split(/\r\n|[\r\n]/);
                                                                                  spaces = Number.MAX_VALUE;
                                                                                  for (i = 1, len = array.length; i < len; ++i) {
                                                                          Severity: Minor
                                                                          Found in dist/escodegen.browser.js - About 1 hr to fix

                                                                            Function BinaryExpression has 31 lines of code (exceeds 25 allowed). Consider refactoring.
                                                                            Open

                                                                                    BinaryExpression: function (expr, precedence, flags) {
                                                                                      var result, currentPrecedence, fragment, leftSource;
                                                                                      currentPrecedence = BinaryPrecedence[expr.operator];
                                                                                      if (currentPrecedence < precedence) {
                                                                                        flags |= F_ALLOW_IN;
                                                                            Severity: Minor
                                                                            Found in dist/escodegen.browser.js - About 1 hr to fix

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

                                                                                    IndexedSourceMapConsumer.prototype._parseMappings = function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {
                                                                                      this.__generatedMappings = [];
                                                                                      this.__originalMappings = [];
                                                                                      for (var i = 0; i < this._sections.length; i++) {
                                                                                        var section = this._sections[i];
                                                                              Severity: Minor
                                                                              Found in dist/escodegen.browser.js - About 1 hr to fix

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

                                                                                      function join(aRoot, aPath) {
                                                                                        if (aRoot === '') {
                                                                                          aRoot = '.';
                                                                                        }
                                                                                        if (aPath === '') {
                                                                                Severity: Minor
                                                                                Found in dist/escodegen.browser.js - About 1 hr to fix

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

                                                                                          ForStatement: function (stmt, flags) {
                                                                                            var result, that = this;
                                                                                            withIndent(function () {
                                                                                              result = ['for' + space + '('];
                                                                                              if (stmt.init) {
                                                                                  Severity: Minor
                                                                                  Found in dist/escodegen.browser.js - About 1 hr to fix

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

                                                                                            VariableDeclaration: function (stmt, flags) {
                                                                                              var result, i, iz, node, bodyFlags, that = this;
                                                                                              result = [stmt.kind];
                                                                                              bodyFlags = flags & F_ALLOW_IN ? S_TFFF : S_FFFF;
                                                                                              function block() {
                                                                                    Severity: Minor
                                                                                    Found in dist/escodegen.browser.js - About 1 hr to fix

                                                                                      Function join has 28 lines of code (exceeds 25 allowed). Consider refactoring.
                                                                                      Open

                                                                                            function join(left, right) {
                                                                                              var leftSource, rightSource, leftCharCode, rightCharCode;
                                                                                              leftSource = toSourceNodeWhenNeeded(left).toString();
                                                                                              if (leftSource.length === 0) {
                                                                                                return [right];
                                                                                      Severity: Minor
                                                                                      Found in dist/escodegen.browser.js - About 1 hr to fix

                                                                                        Function define has 28 lines of code (exceeds 25 allowed). Consider refactoring.
                                                                                        Open

                                                                                              function define(id, deps, factory) {
                                                                                                if (Array.isArray(id)) {
                                                                                                  factory = deps;
                                                                                                  deps = id;
                                                                                                  id = undefined;
                                                                                        Severity: Minor
                                                                                        Found in dist/escodegen.browser.js - About 1 hr to fix

                                                                                          Function IfStatement has 28 lines of code (exceeds 25 allowed). Consider refactoring.
                                                                                          Open

                                                                                                  IfStatement: function (stmt, flags) {
                                                                                                    var result, bodyFlags, semicolonOptional, that = this;
                                                                                                    withIndent(function () {
                                                                                                      result = [
                                                                                                        'if' + space + '(',
                                                                                          Severity: Minor
                                                                                          Found in dist/escodegen.browser.js - About 1 hr to fix

                                                                                            Function SourceMapConsumer_eachMapping has 28 lines of code (exceeds 25 allowed). Consider refactoring.
                                                                                            Open

                                                                                                  SourceMapConsumer.prototype.eachMapping = function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {
                                                                                                    var context = aContext || null;
                                                                                                    var order = aOrder || SourceMapConsumer.GENERATED_ORDER;
                                                                                                    var mappings;
                                                                                                    switch (order) {
                                                                                            Severity: Minor
                                                                                            Found in dist/escodegen.browser.js - About 1 hr to fix

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

                                                                                                    BasicSourceMapConsumer.prototype.originalPositionFor = function SourceMapConsumer_originalPositionFor(aArgs) {
                                                                                                      var needle = {
                                                                                                          generatedLine: util.getArg(aArgs, 'line'),
                                                                                                          generatedColumn: util.getArg(aArgs, 'column')
                                                                                                        };
                                                                                              Severity: Minor
                                                                                              Found in dist/escodegen.browser.js - About 1 hr to fix

                                                                                                Consider simplifying this complex logical expression.
                                                                                                Open

                                                                                                          } else if (!esutils.code.isIdentifierPartES5(code) && (json && code < 32 || !json && !escapeless && (code < 32 || code > 126))) {
                                                                                                            result += escapeAllowedCharacter(code, str.charCodeAt(i + 1));
                                                                                                            continue;
                                                                                                          }
                                                                                                Severity: Major
                                                                                                Found in dist/escodegen.browser.js - About 1 hr to fix

                                                                                                  Consider simplifying this complex logical expression.
                                                                                                  Open

                                                                                                          if ((leftCharCode === 43 || leftCharCode === 45) && leftCharCode === rightCharCode || esutils.code.isIdentifierPartES5(leftCharCode) && esutils.code.isIdentifierPartES5(rightCharCode) || leftCharCode === 47 && rightCharCode === 105) {
                                                                                                            return [
                                                                                                              left,
                                                                                                              noEmptySpace(),
                                                                                                              right
                                                                                                  Severity: Major
                                                                                                  Found in dist/escodegen.browser.js - About 1 hr to fix

                                                                                                    Avoid deeply nested control flow statements.
                                                                                                    Open

                                                                                                                    while ((current2 -= 1) >= 0) {
                                                                                                                      if (!candidate[current2]) {
                                                                                                                        continue;
                                                                                                                      }
                                                                                                                      if (isProperty(nodeType, candidates[current])) {
                                                                                                    Severity: Major
                                                                                                    Found in dist/escodegen.browser.js - About 45 mins to fix

                                                                                                      Avoid deeply nested control flow statements.
                                                                                                      Open

                                                                                                                    } else if (isNode(candidate)) {
                                                                                                                      worklist.push(new Element(candidate, key, null, null));
                                                                                                                    }
                                                                                                      Severity: Major
                                                                                                      Found in dist/escodegen.browser.js - About 45 mins to fix

                                                                                                        Avoid deeply nested control flow statements.
                                                                                                        Open

                                                                                                                          if (stmt.finalizer || i + 1 !== iz) {
                                                                                                                            result = this.maybeBlockSuffix(stmt.handler[i].body, result);
                                                                                                                          }
                                                                                                        Severity: Major
                                                                                                        Found in dist/escodegen.browser.js - About 45 mins to fix

                                                                                                          Avoid deeply nested control flow statements.
                                                                                                          Open

                                                                                                                          if (isProperty(nodeType, candidates[current])) {
                                                                                                                            element = new Element(candidate[current2], [
                                                                                                                              key,
                                                                                                                              current2
                                                                                                                            ], 'Property', new Reference(candidate, current2));
                                                                                                          Severity: Major
                                                                                                          Found in dist/escodegen.browser.js - About 45 mins to fix

                                                                                                            Avoid deeply nested control flow statements.
                                                                                                            Open

                                                                                                                            if (!candidate[current2]) {
                                                                                                                              continue;
                                                                                                                            }
                                                                                                            Severity: Major
                                                                                                            Found in dist/escodegen.browser.js - About 45 mins to fix

                                                                                                              Avoid deeply nested control flow statements.
                                                                                                              Open

                                                                                                                              if (i === 0) {
                                                                                                                                result = [
                                                                                                                                  result,
                                                                                                                                  indent
                                                                                                                                ];
                                                                                                              Severity: Major
                                                                                                              Found in dist/escodegen.browser.js - About 45 mins to fix

                                                                                                                Avoid deeply nested control flow statements.
                                                                                                                Open

                                                                                                                                    if (i + 1 < iz) {
                                                                                                                                      result.push(',' + newline);
                                                                                                                                    }
                                                                                                                Severity: Major
                                                                                                                Found in dist/escodegen.browser.js - About 45 mins to fix

                                                                                                                  Avoid deeply nested control flow statements.
                                                                                                                  Open

                                                                                                                                      if (content[0] === '\n') {
                                                                                                                                        result = ['{'];
                                                                                                                                      }
                                                                                                                  Severity: Major
                                                                                                                  Found in dist/escodegen.browser.js - About 45 mins to fix

                                                                                                                    Avoid deeply nested control flow statements.
                                                                                                                    Open

                                                                                                                                    if (ch === 93) {
                                                                                                                                      characterInBrack = false;
                                                                                                                                    }
                                                                                                                    Severity: Major
                                                                                                                    Found in dist/escodegen.browser.js - About 45 mins to fix

                                                                                                                      Avoid deeply nested control flow statements.
                                                                                                                      Open

                                                                                                                                      if (ch === 47) {
                                                                                                                                        result += '\\';
                                                                                                                                      } else if (ch === 91) {
                                                                                                                                        characterInBrack = true;
                                                                                                                                      }
                                                                                                                      Severity: Major
                                                                                                                      Found in dist/escodegen.browser.js - About 45 mins to fix

                                                                                                                        Consider simplifying this complex logical expression.
                                                                                                                        Open

                                                                                                                                if ((temp.length < result.length || hexadecimal && value > 1e12 && Math.floor(value) === value && (temp = '0x' + value.toString(16)).length < result.length) && +temp === value) {
                                                                                                                                  result = temp;
                                                                                                                                }
                                                                                                                        Severity: Major
                                                                                                                        Found in dist/escodegen.browser.js - About 40 mins to fix

                                                                                                                          Consider simplifying this complex logical expression.
                                                                                                                          Open

                                                                                                                                  if (node.type === Syntax.ArrowFunctionExpression && !node.rest && (!node.defaults || node.defaults.length === 0) && node.params.length === 1 && node.params[0].type === Syntax.Identifier) {
                                                                                                                                    result = [
                                                                                                                                      generateAsyncPrefix(node, true),
                                                                                                                                      generateIdentifier(node.params[0])
                                                                                                                                    ];
                                                                                                                          Severity: Major
                                                                                                                          Found in dist/escodegen.browser.js - About 40 mins to fix

                                                                                                                            Function generateAssignment has 5 arguments (exceeds 4 allowed). Consider refactoring.
                                                                                                                            Open

                                                                                                                                  CodeGenerator.prototype.generateAssignment = function (left, right, operator, precedence, flags) {
                                                                                                                            Severity: Minor
                                                                                                                            Found in dist/escodegen.browser.js - About 35 mins to fix

                                                                                                                              Function SourceNode has 5 arguments (exceeds 4 allowed). Consider refactoring.
                                                                                                                              Open

                                                                                                                                    function SourceNode(aLine, aColumn, aSource, aChunks, aName) {
                                                                                                                              Severity: Minor
                                                                                                                              Found in dist/escodegen.browser.js - About 35 mins to fix

                                                                                                                                Function _findMapping has 5 arguments (exceeds 4 allowed). Consider refactoring.
                                                                                                                                Open

                                                                                                                                      BasicSourceMapConsumer.prototype._findMapping = function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName, aColumnName, aComparator) {
                                                                                                                                Severity: Minor
                                                                                                                                Found in dist/escodegen.browser.js - About 35 mins to fix

                                                                                                                                  Function recursiveSearch has 5 arguments (exceeds 4 allowed). Consider refactoring.
                                                                                                                                  Open

                                                                                                                                        function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare) {
                                                                                                                                  Severity: Minor
                                                                                                                                  Found in dist/escodegen.browser.js - About 35 mins to fix

                                                                                                                                    Avoid too many return statements within this function.
                                                                                                                                    Open

                                                                                                                                            return [
                                                                                                                                              left,
                                                                                                                                              space,
                                                                                                                                              right
                                                                                                                                            ];
                                                                                                                                    Severity: Major
                                                                                                                                    Found in dist/escodegen.browser.js - About 30 mins to fix

                                                                                                                                      Avoid too many return statements within this function.
                                                                                                                                      Open

                                                                                                                                              return joined;
                                                                                                                                      Severity: Major
                                                                                                                                      Found in dist/escodegen.browser.js - About 30 mins to fix

                                                                                                                                        Avoid too many return statements within this function.
                                                                                                                                        Open

                                                                                                                                                      return systemRequire(originalId);
                                                                                                                                        Severity: Major
                                                                                                                                        Found in dist/escodegen.browser.js - About 30 mins to fix

                                                                                                                                          Avoid too many return statements within this function.
                                                                                                                                          Open

                                                                                                                                                  return new SourceNode(node.loc.start.line, node.loc.start.column, sourceMap === true ? node.loc.source || null : sourceMap, generated, node.name || null);
                                                                                                                                          Severity: Major
                                                                                                                                          Found in dist/escodegen.browser.js - About 30 mins to fix

                                                                                                                                            Avoid too many return statements within this function.
                                                                                                                                            Open

                                                                                                                                                      return cmp;
                                                                                                                                            Severity: Major
                                                                                                                                            Found in dist/escodegen.browser.js - About 30 mins to fix

                                                                                                                                              Avoid too many return statements within this function.
                                                                                                                                              Open

                                                                                                                                                        return generateRegExp(expr.value);
                                                                                                                                              Severity: Major
                                                                                                                                              Found in dist/escodegen.browser.js - About 30 mins to fix

                                                                                                                                                Avoid too many return statements within this function.
                                                                                                                                                Open

                                                                                                                                                          return '\\0';
                                                                                                                                                Severity: Major
                                                                                                                                                Found in dist/escodegen.browser.js - About 30 mins to fix

                                                                                                                                                  Avoid too many return statements within this function.
                                                                                                                                                  Open

                                                                                                                                                            return '\\x' + '00'.slice(hex.length) + hex;
                                                                                                                                                  Severity: Major
                                                                                                                                                  Found in dist/escodegen.browser.js - About 30 mins to fix

                                                                                                                                                    Avoid too many return statements within this function.
                                                                                                                                                    Open

                                                                                                                                                            return mappingA.generatedColumn - mappingB.generatedColumn;
                                                                                                                                                    Severity: Major
                                                                                                                                                    Found in dist/escodegen.browser.js - About 30 mins to fix

                                                                                                                                                      Avoid too many return statements within this function.
                                                                                                                                                      Open

                                                                                                                                                                  return code === 40 || esutils.code.isWhiteSpace(code) || code === 42 || esutils.code.isLineTerminator(code);
                                                                                                                                                      Severity: Major
                                                                                                                                                      Found in dist/escodegen.browser.js - About 30 mins to fix

                                                                                                                                                        Avoid too many return statements within this function.
                                                                                                                                                        Open

                                                                                                                                                                return true;
                                                                                                                                                        Severity: Major
                                                                                                                                                        Found in dist/escodegen.browser.js - About 30 mins to fix

                                                                                                                                                          Avoid too many return statements within this function.
                                                                                                                                                          Open

                                                                                                                                                                      return loaderCache[id];
                                                                                                                                                          Severity: Major
                                                                                                                                                          Found in dist/escodegen.browser.js - About 30 mins to fix

                                                                                                                                                            Avoid too many return statements within this function.
                                                                                                                                                            Open

                                                                                                                                                                      return '\\x0B';
                                                                                                                                                            Severity: Major
                                                                                                                                                            Found in dist/escodegen.browser.js - About 30 mins to fix

                                                                                                                                                              Avoid too many return statements within this function.
                                                                                                                                                              Open

                                                                                                                                                                          return loaderCache[id];
                                                                                                                                                              Severity: Major
                                                                                                                                                              Found in dist/escodegen.browser.js - About 30 mins to fix

                                                                                                                                                                Avoid too many return statements within this function.
                                                                                                                                                                Open

                                                                                                                                                                            return loaderCache[id];
                                                                                                                                                                Severity: Major
                                                                                                                                                                Found in dist/escodegen.browser.js - About 30 mins to fix

                                                                                                                                                                  Avoid too many return statements within this function.
                                                                                                                                                                  Open

                                                                                                                                                                          return strcmp(mappingA.name, mappingB.name);
                                                                                                                                                                  Severity: Major
                                                                                                                                                                  Found in dist/escodegen.browser.js - About 30 mins to fix

                                                                                                                                                                    Avoid too many return statements within this function.
                                                                                                                                                                    Open

                                                                                                                                                                              return '\\u2029';
                                                                                                                                                                    Severity: Major
                                                                                                                                                                    Found in dist/escodegen.browser.js - About 30 mins to fix

                                                                                                                                                                      Avoid too many return statements within this function.
                                                                                                                                                                      Open

                                                                                                                                                                                return null;
                                                                                                                                                                      Severity: Major
                                                                                                                                                                      Found in dist/escodegen.browser.js - About 30 mins to fix

                                                                                                                                                                        Avoid too many return statements within this function.
                                                                                                                                                                        Open

                                                                                                                                                                                    return expr.value ? 'true' : 'false';
                                                                                                                                                                        Severity: Major
                                                                                                                                                                        Found in dist/escodegen.browser.js - About 30 mins to fix

                                                                                                                                                                          Avoid too many return statements within this function.
                                                                                                                                                                          Open

                                                                                                                                                                                    return cmp;
                                                                                                                                                                          Severity: Major
                                                                                                                                                                          Found in dist/escodegen.browser.js - About 30 mins to fix

                                                                                                                                                                            Avoid too many return statements within this function.
                                                                                                                                                                            Open

                                                                                                                                                                                      return aLow < 0 ? -1 : aLow;
                                                                                                                                                                            Severity: Major
                                                                                                                                                                            Found in dist/escodegen.browser.js - About 30 mins to fix

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

                                                                                                                                                                                          if (sourceRoot != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (source != null && sourceRoot != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (current.alternate == null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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/

                                                                                                                                                                              Empty block statement.
                                                                                                                                                                              Open

                                                                                                                                                                                          } catch (e) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              disallow empty block statements (no-empty)

                                                                                                                                                                              Empty block statements, while not technically errors, usually occur due to refactoring that wasn't completed. They can cause confusion when reading code.

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule disallows empty block statements. This rule ignores block statements which contain a comment (for example, in an empty catch or finally block of a try statement to indicate that execution should continue regardless of errors).

                                                                                                                                                                              Examples of incorrect code for this rule:

                                                                                                                                                                              /*eslint no-empty: "error"*/
                                                                                                                                                                              
                                                                                                                                                                              if (foo) {
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              while (foo) {
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              switch(foo) {
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              try {
                                                                                                                                                                                  doSomething();
                                                                                                                                                                              } catch(ex) {
                                                                                                                                                                              
                                                                                                                                                                              } finally {
                                                                                                                                                                              
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule:

                                                                                                                                                                              /*eslint no-empty: "error"*/
                                                                                                                                                                              
                                                                                                                                                                              if (foo) {
                                                                                                                                                                                  // empty
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              while (foo) {
                                                                                                                                                                                  /* empty */
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              try {
                                                                                                                                                                                  doSomething();
                                                                                                                                                                              } catch (ex) {
                                                                                                                                                                                  // continue regardless of error
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              try {
                                                                                                                                                                                  doSomething();
                                                                                                                                                                              } finally {
                                                                                                                                                                                  /* continue regardless of error */
                                                                                                                                                                              }

                                                                                                                                                                              Options

                                                                                                                                                                              This rule has an object option for exceptions:

                                                                                                                                                                              • "allowEmptyCatch": true allows empty catch clauses (that is, which do not contain a comment)

                                                                                                                                                                              allowEmptyCatch

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

                                                                                                                                                                              /* eslint no-empty: ["error", { "allowEmptyCatch": true }] */
                                                                                                                                                                              try {
                                                                                                                                                                                  doSomething();
                                                                                                                                                                              } catch (ex) {}
                                                                                                                                                                              
                                                                                                                                                                              try {
                                                                                                                                                                                  doSomething();
                                                                                                                                                                              }
                                                                                                                                                                              catch (ex) {}
                                                                                                                                                                              finally {
                                                                                                                                                                                  /* continue regardless of error */
                                                                                                                                                                              }

                                                                                                                                                                              When Not To Use It

                                                                                                                                                                              If you intentionally use empty block statements then you can disable this rule.

                                                                                                                                                                              Related Rules

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

                                                                                                                                                                                        originalColumn: original != null && original.column,
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (node == null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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/

                                                                                                                                                                              Unnecessary semicolon.
                                                                                                                                                                              Open

                                                                                                                                                                                    ;
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              disallow unnecessary semicolons (no-extra-semi)

                                                                                                                                                                              Typing mistakes and misunderstandings about where semicolons are required can lead to semicolons that are unnecessary. While not technically an error, extra semicolons can cause confusion when reading code.

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule disallows unnecessary semicolons.

                                                                                                                                                                              Examples of incorrect code for this rule:

                                                                                                                                                                              /*eslint no-extra-semi: "error"*/
                                                                                                                                                                              
                                                                                                                                                                              var x = 5;;
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  // code
                                                                                                                                                                              };

                                                                                                                                                                              Examples of correct code for this rule:

                                                                                                                                                                              /*eslint no-extra-semi: "error"*/
                                                                                                                                                                              
                                                                                                                                                                              var x = 5;
                                                                                                                                                                              
                                                                                                                                                                              var foo = function() {
                                                                                                                                                                                  // code
                                                                                                                                                                              };

                                                                                                                                                                              When Not To Use It

                                                                                                                                                                              If you intentionally use extra semicolons then you can disable this rule.

                                                                                                                                                                              Related Rules

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

                                                                                                                                                                                        if (mapping.source != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (content != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (name != null && !newNames.has(name)) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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

                                                                                                                                                                                          return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s;
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (this._sourceRoot != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (source != null && this.sourceRoot != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (node == null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (aSourceFile == null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 string concatenation of literals.
                                                                                                                                                                              Open

                                                                                                                                                                                          throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' + 'or the source map\'s "file" property. Both were omitted.');
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              Disallow unnecessary concatenation of strings (no-useless-concat)

                                                                                                                                                                              It's unnecessary to concatenate two strings together, such as:

                                                                                                                                                                              var foo = "a" + "b";

                                                                                                                                                                              This code is likely the result of refactoring where a variable was removed from the concatenation (such as "a" + b + "b"). In such a case, the concatenation isn't important and the code can be rewritten as:

                                                                                                                                                                              var foo = "ab";

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule aims to flag the concatenation of 2 literals when they could be combined into a single literal. Literals can be strings or template literals.

                                                                                                                                                                              Examples of incorrect code for this rule:

                                                                                                                                                                              /*eslint no-useless-concat: "error"*/
                                                                                                                                                                              /*eslint-env es6*/
                                                                                                                                                                              
                                                                                                                                                                              // these are the same as "10"
                                                                                                                                                                              var a = `some` + `string`;
                                                                                                                                                                              var a = '1' + '0';
                                                                                                                                                                              var a = '1' + `0`;
                                                                                                                                                                              var a = `1` + '0';
                                                                                                                                                                              var a = `1` + `0`;

                                                                                                                                                                              Examples of correct code for this rule:

                                                                                                                                                                              /*eslint no-useless-concat: "error"*/
                                                                                                                                                                              
                                                                                                                                                                              // when a non string is included
                                                                                                                                                                              var c = a + b;
                                                                                                                                                                              var c = '1' + a;
                                                                                                                                                                              var a = 1 + '1';
                                                                                                                                                                              var c = 1 - 2;
                                                                                                                                                                              // when the string concatenation is multiline
                                                                                                                                                                              var c = "foo" +
                                                                                                                                                                                  "bar";

                                                                                                                                                                              When Not To Use It

                                                                                                                                                                              If you don't want to be notified about unnecessary string concatenation, you can safely disable this rule. Source: http://eslint.org/docs/rules/

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

                                                                                                                                                                                      if (source != null && !this._sources.has(source)) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (aSourceContent != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (original.source != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (mapping.name != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (this.sourceRoot != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (this.sourceRoot != null && (url = util.urlParse(this.sourceRoot))) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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

                                                                                                                                                                                      return isStatement(node) || node != null && node.type === 'FunctionDeclaration';
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (source != null && !newSources.has(source)) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (this.sourceRoot != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (node.alternate != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (aSourceMapPath != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (source != null && this.sourceRoot != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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/

                                                                                                                                                                              Return statement should not contain assignment.
                                                                                                                                                                              Open

                                                                                                                                                                                  return require.cache[file] = module$.exports;
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              Disallow Assignment in return Statement (no-return-assign)

                                                                                                                                                                              One of the interesting, and sometimes confusing, aspects of JavaScript is that assignment can happen at almost any point. Because of this, an errant equals sign can end up causing assignment when the true intent was to do a comparison. This is especially true when using a return statement. For example:

                                                                                                                                                                              function doSomething() {
                                                                                                                                                                                  return foo = bar + 2;
                                                                                                                                                                              }

                                                                                                                                                                              It is difficult to tell the intent of the return statement here. It's possible that the function is meant to return the result of bar + 2, but then why is it assigning to foo? It's also possible that the intent was to use a comparison operator such as == and that this code is an error.

                                                                                                                                                                              Because of this ambiguity, it's considered a best practice to not use assignment in return statements.

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule aims to eliminate assignments from return statements. As such, it will warn whenever an assignment is found as part of return.

                                                                                                                                                                              Options

                                                                                                                                                                              The rule takes one option, a string, which must contain one of the following values:

                                                                                                                                                                              • except-parens (default): Disallow assignments unless they are enclosed in parentheses.
                                                                                                                                                                              • always: Disallow all assignments.

                                                                                                                                                                              except-parens

                                                                                                                                                                              This is the default option. It disallows assignments unless they are enclosed in parentheses.

                                                                                                                                                                              Examples of incorrect code for the default "except-parens" option:

                                                                                                                                                                              /*eslint no-return-assign: "error"*/
                                                                                                                                                                              
                                                                                                                                                                              function doSomething() {
                                                                                                                                                                                  return foo = bar + 2;
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              function doSomething() {
                                                                                                                                                                                  return foo += 2;
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for the default "except-parens" option:

                                                                                                                                                                              /*eslint no-return-assign: "error"*/
                                                                                                                                                                              
                                                                                                                                                                              function doSomething() {
                                                                                                                                                                                  return foo == bar + 2;
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              function doSomething() {
                                                                                                                                                                                  return foo === bar + 2;
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              function doSomething() {
                                                                                                                                                                                  return (foo = bar + 2);
                                                                                                                                                                              }

                                                                                                                                                                              always

                                                                                                                                                                              This option disallows all assignments in return statements. All assignments are treated as problems.

                                                                                                                                                                              Examples of incorrect code for the "always" option:

                                                                                                                                                                              /*eslint no-return-assign: ["error", "always"]*/
                                                                                                                                                                              
                                                                                                                                                                              function doSomething() {
                                                                                                                                                                                  return foo = bar + 2;
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              function doSomething() {
                                                                                                                                                                                  return foo += 2;
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              function doSomething() {
                                                                                                                                                                                  return (foo = bar + 2);
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for the "always" option:

                                                                                                                                                                              /*eslint no-return-assign: ["error", "always"]*/
                                                                                                                                                                              
                                                                                                                                                                              function doSomething() {
                                                                                                                                                                                  return foo == bar + 2;
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              function doSomething() {
                                                                                                                                                                                  return foo === bar + 2;
                                                                                                                                                                              }

                                                                                                                                                                              When Not To Use It

                                                                                                                                                                              If you want to allow the use of assignment operators in a return statement, then you can safely disable this rule. Source: http://eslint.org/docs/rules/

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

                                                                                                                                                                                      if (options != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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/

                                                                                                                                                                              'nextLine' is already defined.
                                                                                                                                                                              Open

                                                                                                                                                                                          var nextLine = remainingLines[0];
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (content != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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/

                                                                                                                                                                              'i' is already defined.
                                                                                                                                                                              Open

                                                                                                                                                                                      for (var i = 0, len = sources.length; i < len; i++) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (sourceRoot != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (mapping.source != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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

                                                                                                                                                                                        prec = verbatim.precedence != null ? verbatim.precedence : Precedence.Sequence;
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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

                                                                                                                                                                                      this.source = aSource == null ? null : aSource;
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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/

                                                                                                                                                                              'len' is already defined.
                                                                                                                                                                              Open

                                                                                                                                                                                      for (var i = 0, len = sources.length; i < len; i++) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (mapping.source === sourceFile && mapping.originalLine != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (aSourceMapPath != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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/

                                                                                                                                                                              Unnecessary semicolon.
                                                                                                                                                                              Open

                                                                                                                                                                                      ;
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              disallow unnecessary semicolons (no-extra-semi)

                                                                                                                                                                              Typing mistakes and misunderstandings about where semicolons are required can lead to semicolons that are unnecessary. While not technically an error, extra semicolons can cause confusion when reading code.

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule disallows unnecessary semicolons.

                                                                                                                                                                              Examples of incorrect code for this rule:

                                                                                                                                                                              /*eslint no-extra-semi: "error"*/
                                                                                                                                                                              
                                                                                                                                                                              var x = 5;;
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  // code
                                                                                                                                                                              };

                                                                                                                                                                              Examples of correct code for this rule:

                                                                                                                                                                              /*eslint no-extra-semi: "error"*/
                                                                                                                                                                              
                                                                                                                                                                              var x = 5;
                                                                                                                                                                              
                                                                                                                                                                              var foo = function() {
                                                                                                                                                                                  // code
                                                                                                                                                                              };

                                                                                                                                                                              When Not To Use It

                                                                                                                                                                              If you intentionally use extra semicolons then you can disable this rule.

                                                                                                                                                                              Related Rules

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

                                                                                                                                                                                      this.name = aName == null ? null : aName;
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (aChunks != null)
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (sourceRoot != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (sourceRoot != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (node.alternate == null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (aSourceMapConsumer.file == null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (original.name != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (node == null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (node.loc == null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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/

                                                                                                                                                                              'code' is already defined.
                                                                                                                                                                              Open

                                                                                                                                                                                            var code = nextLine.substr(0, mapping.generatedColumn - lastGeneratedColumn);
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (aRelativePath != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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/

                                                                                                                                                                              Unnecessary semicolon.
                                                                                                                                                                              Open

                                                                                                                                                                                    ;
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              disallow unnecessary semicolons (no-extra-semi)

                                                                                                                                                                              Typing mistakes and misunderstandings about where semicolons are required can lead to semicolons that are unnecessary. While not technically an error, extra semicolons can cause confusion when reading code.

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule disallows unnecessary semicolons.

                                                                                                                                                                              Examples of incorrect code for this rule:

                                                                                                                                                                              /*eslint no-extra-semi: "error"*/
                                                                                                                                                                              
                                                                                                                                                                              var x = 5;;
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  // code
                                                                                                                                                                              };

                                                                                                                                                                              Examples of correct code for this rule:

                                                                                                                                                                              /*eslint no-extra-semi: "error"*/
                                                                                                                                                                              
                                                                                                                                                                              var x = 5;
                                                                                                                                                                              
                                                                                                                                                                              var foo = function() {
                                                                                                                                                                                  // code
                                                                                                                                                                              };

                                                                                                                                                                              When Not To Use It

                                                                                                                                                                              If you intentionally use extra semicolons then you can disable this rule.

                                                                                                                                                                              Related Rules

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

                                                                                                                                                                                          if (mapping.name != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (aSourceRoot != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (this._file != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (this._sourceRoot != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (sourceMap.sections != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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/

                                                                                                                                                                              Comparing to itself is potentially pointless.
                                                                                                                                                                              Open

                                                                                                                                                                                      if (value !== value) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              Disallow Self Compare (no-self-compare)

                                                                                                                                                                              Comparing a variable against itself is usually an error, either a typo or refactoring error. It is confusing to the reader and may potentially introduce a runtime error.

                                                                                                                                                                              The only time you would compare a variable against itself is when you are testing for NaN. However, it is far more appropriate to use typeof x === 'number' && isNaN(x) or the Number.isNaN ES2015 function for that use case rather than leaving the reader of the code to determine the intent of self comparison.

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This error is raised to highlight a potentially confusing and potentially pointless piece of code. There are almost no situations in which you would need to compare something to itself.

                                                                                                                                                                              Examples of incorrect code for this rule:

                                                                                                                                                                              /*eslint no-self-compare: "error"*/
                                                                                                                                                                              
                                                                                                                                                                              var x = 10;
                                                                                                                                                                              if (x === x) {
                                                                                                                                                                                  x = 20;
                                                                                                                                                                              }

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

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

                                                                                                                                                                                        if (source != null && sourceRoot != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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/

                                                                                                                                                                              Unnecessary semicolon.
                                                                                                                                                                              Open

                                                                                                                                                                                        ;
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              disallow unnecessary semicolons (no-extra-semi)

                                                                                                                                                                              Typing mistakes and misunderstandings about where semicolons are required can lead to semicolons that are unnecessary. While not technically an error, extra semicolons can cause confusion when reading code.

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule disallows unnecessary semicolons.

                                                                                                                                                                              Examples of incorrect code for this rule:

                                                                                                                                                                              /*eslint no-extra-semi: "error"*/
                                                                                                                                                                              
                                                                                                                                                                              var x = 5;;
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  // code
                                                                                                                                                                              };

                                                                                                                                                                              Examples of correct code for this rule:

                                                                                                                                                                              /*eslint no-extra-semi: "error"*/
                                                                                                                                                                              
                                                                                                                                                                              var x = 5;
                                                                                                                                                                              
                                                                                                                                                                              var foo = function() {
                                                                                                                                                                                  // code
                                                                                                                                                                              };

                                                                                                                                                                              When Not To Use It

                                                                                                                                                                              If you intentionally use extra semicolons then you can disable this rule.

                                                                                                                                                                              Related Rules

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

                                                                                                                                                                                          if (source != null && sourceRoot != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (node == null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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

                                                                                                                                                                                      this.line = aLine == null ? null : aLine;
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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

                                                                                                                                                                                      this.column = aColumn == null ? null : aColumn;
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (name != null && !this._names.has(name)) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (this.sourceRoot != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (source != null && sourceRoot != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (node == null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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

                                                                                                                                                                                        originalLine: original != null && original.line,
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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 (content != null) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              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/

                                                                                                                                                                              Unnecessary semicolon.
                                                                                                                                                                              Open

                                                                                                                                                                                        ;
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              disallow unnecessary semicolons (no-extra-semi)

                                                                                                                                                                              Typing mistakes and misunderstandings about where semicolons are required can lead to semicolons that are unnecessary. While not technically an error, extra semicolons can cause confusion when reading code.

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule disallows unnecessary semicolons.

                                                                                                                                                                              Examples of incorrect code for this rule:

                                                                                                                                                                              /*eslint no-extra-semi: "error"*/
                                                                                                                                                                              
                                                                                                                                                                              var x = 5;;
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  // code
                                                                                                                                                                              };

                                                                                                                                                                              Examples of correct code for this rule:

                                                                                                                                                                              /*eslint no-extra-semi: "error"*/
                                                                                                                                                                              
                                                                                                                                                                              var x = 5;
                                                                                                                                                                              
                                                                                                                                                                              var foo = function() {
                                                                                                                                                                                  // code
                                                                                                                                                                              };

                                                                                                                                                                              When Not To Use It

                                                                                                                                                                              If you intentionally use extra semicolons then you can disable this rule.

                                                                                                                                                                              Related Rules

                                                                                                                                                                              Use the global form of 'use strict'.
                                                                                                                                                                              Open

                                                                                                                                                                                    'use strict';
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              require or disallow strict mode directives (strict)

                                                                                                                                                                              A strict mode directive is a "use strict" literal at the beginning of a script or function body. It enables strict mode semantics.

                                                                                                                                                                              When a directive occurs in global scope, strict mode applies to the entire script:

                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              // strict mode
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  // strict mode
                                                                                                                                                                              }

                                                                                                                                                                              When a directive occurs at the beginning of a function body, strict mode applies only to that function, including all contained functions:

                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  // strict mode
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              function foo2() {
                                                                                                                                                                                  // not strict mode
                                                                                                                                                                              };
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      // strict mode
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              In the CommonJS module system, a hidden function wraps each module and limits the scope of a "global" strict mode directive.

                                                                                                                                                                              In ECMAScript modules, which always have strict mode semantics, the directives are unnecessary.

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule requires or disallows strict mode directives.

                                                                                                                                                                              This rule disallows strict mode directives, no matter which option is specified, if ESLint configuration specifies either of the following as [parser options](../user-guide/configuring#specifying-parser-options):

                                                                                                                                                                              • "sourceType": "module" that is, files are ECMAScript modules
                                                                                                                                                                              • "impliedStrict": true property in the ecmaFeatures object

                                                                                                                                                                              This rule disallows strict mode directives, no matter which option is specified, in functions with non-simple parameter lists (for example, parameter lists with default parameter values) because that is a syntax error in ECMAScript 2016 and later. See the examples of the function option.

                                                                                                                                                                              Options

                                                                                                                                                                              This rule has a string option:

                                                                                                                                                                              • "safe" (default) corresponds either of the following options:
                                                                                                                                                                                • "global" if ESLint considers a file to be a CommonJS module
                                                                                                                                                                                • "function" otherwise
                                                                                                                                                                              • "global" requires one strict mode directive in the global scope (and disallows any other strict mode directives)
                                                                                                                                                                              • "function" requires one strict mode directive in each top-level function declaration or expression (and disallows any other strict mode directives)
                                                                                                                                                                              • "never" disallows strict mode directives

                                                                                                                                                                              safe

                                                                                                                                                                              The "safe" option corresponds to the "global" option if ESLint considers a file to be a Node.js or CommonJS module because the configuration specifies either of the following:

                                                                                                                                                                              • node or commonjs [environments](../user-guide/configuring#specifying-environments)
                                                                                                                                                                              • "globalReturn": true property in the ecmaFeatures object of [parser options](../user-guide/configuring#specifying-parser-options)

                                                                                                                                                                              Otherwise the "safe" option corresponds to the "function" option.

                                                                                                                                                                              global

                                                                                                                                                                              Examples of incorrect code for this rule with the "global" option:

                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "global" option:

                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }

                                                                                                                                                                              function

                                                                                                                                                                              This option ensures that all function bodies are strict mode code, while global code is not. Particularly if a build step concatenates multiple scripts, a strict mode directive in global code of one script could unintentionally enable strict mode in another script that was not intended to be strict code.

                                                                                                                                                                              Examples of incorrect code for this rule with the "function" option:

                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());
                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              /*eslint-env es6*/
                                                                                                                                                                              
                                                                                                                                                                              // Illegal "use strict" directive in function with non-simple parameter list.
                                                                                                                                                                              // This is a syntax error since ES2016.
                                                                                                                                                                              function foo(a = 1) {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              // We cannot write "use strict" directive in this function.
                                                                                                                                                                              // So we have to wrap this function with a function with "use strict" directive.
                                                                                                                                                                              function foo(a = 1) {
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "function" option:

                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                  }
                                                                                                                                                                              
                                                                                                                                                                                  function baz(a = 1) {
                                                                                                                                                                                  }
                                                                                                                                                                              }());
                                                                                                                                                                              
                                                                                                                                                                              var foo = (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              
                                                                                                                                                                                  return function foo(a = 1) {
                                                                                                                                                                                  };
                                                                                                                                                                              }());

                                                                                                                                                                              never

                                                                                                                                                                              Examples of incorrect code for this rule with the "never" option:

                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "never" option:

                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }

                                                                                                                                                                              earlier default (removed)

                                                                                                                                                                              (removed) The default option (that is, no string option specified) for this rule was removed in ESLint v1.0. The "function" option is most similar to the removed option.

                                                                                                                                                                              This option ensures that all functions are executed in strict mode. A strict mode directive must be present in global code or in every top-level function declaration or expression. It does not concern itself with unnecessary strict mode directives in nested functions that are already strict, nor with multiple strict mode directives at the same level.

                                                                                                                                                                              Examples of incorrect code for this rule with the earlier default option which has been removed:

                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              Examples of correct code for this rule with the earlier default option which has been removed:

                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              When Not To Use It

                                                                                                                                                                              In a codebase that has both strict and non-strict code, either turn this rule off, or selectively disable it where necessary. For example, functions referencing arguments.callee are invalid in strict mode. A full list of strict mode differences is available on MDN. Source: http://eslint.org/docs/rules/

                                                                                                                                                                              Use the global form of 'use strict'.
                                                                                                                                                                              Open

                                                                                                                                                                                    'use strict';
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              require or disallow strict mode directives (strict)

                                                                                                                                                                              A strict mode directive is a "use strict" literal at the beginning of a script or function body. It enables strict mode semantics.

                                                                                                                                                                              When a directive occurs in global scope, strict mode applies to the entire script:

                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              // strict mode
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  // strict mode
                                                                                                                                                                              }

                                                                                                                                                                              When a directive occurs at the beginning of a function body, strict mode applies only to that function, including all contained functions:

                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  // strict mode
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              function foo2() {
                                                                                                                                                                                  // not strict mode
                                                                                                                                                                              };
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      // strict mode
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              In the CommonJS module system, a hidden function wraps each module and limits the scope of a "global" strict mode directive.

                                                                                                                                                                              In ECMAScript modules, which always have strict mode semantics, the directives are unnecessary.

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule requires or disallows strict mode directives.

                                                                                                                                                                              This rule disallows strict mode directives, no matter which option is specified, if ESLint configuration specifies either of the following as [parser options](../user-guide/configuring#specifying-parser-options):

                                                                                                                                                                              • "sourceType": "module" that is, files are ECMAScript modules
                                                                                                                                                                              • "impliedStrict": true property in the ecmaFeatures object

                                                                                                                                                                              This rule disallows strict mode directives, no matter which option is specified, in functions with non-simple parameter lists (for example, parameter lists with default parameter values) because that is a syntax error in ECMAScript 2016 and later. See the examples of the function option.

                                                                                                                                                                              Options

                                                                                                                                                                              This rule has a string option:

                                                                                                                                                                              • "safe" (default) corresponds either of the following options:
                                                                                                                                                                                • "global" if ESLint considers a file to be a CommonJS module
                                                                                                                                                                                • "function" otherwise
                                                                                                                                                                              • "global" requires one strict mode directive in the global scope (and disallows any other strict mode directives)
                                                                                                                                                                              • "function" requires one strict mode directive in each top-level function declaration or expression (and disallows any other strict mode directives)
                                                                                                                                                                              • "never" disallows strict mode directives

                                                                                                                                                                              safe

                                                                                                                                                                              The "safe" option corresponds to the "global" option if ESLint considers a file to be a Node.js or CommonJS module because the configuration specifies either of the following:

                                                                                                                                                                              • node or commonjs [environments](../user-guide/configuring#specifying-environments)
                                                                                                                                                                              • "globalReturn": true property in the ecmaFeatures object of [parser options](../user-guide/configuring#specifying-parser-options)

                                                                                                                                                                              Otherwise the "safe" option corresponds to the "function" option.

                                                                                                                                                                              global

                                                                                                                                                                              Examples of incorrect code for this rule with the "global" option:

                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "global" option:

                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }

                                                                                                                                                                              function

                                                                                                                                                                              This option ensures that all function bodies are strict mode code, while global code is not. Particularly if a build step concatenates multiple scripts, a strict mode directive in global code of one script could unintentionally enable strict mode in another script that was not intended to be strict code.

                                                                                                                                                                              Examples of incorrect code for this rule with the "function" option:

                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());
                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              /*eslint-env es6*/
                                                                                                                                                                              
                                                                                                                                                                              // Illegal "use strict" directive in function with non-simple parameter list.
                                                                                                                                                                              // This is a syntax error since ES2016.
                                                                                                                                                                              function foo(a = 1) {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              // We cannot write "use strict" directive in this function.
                                                                                                                                                                              // So we have to wrap this function with a function with "use strict" directive.
                                                                                                                                                                              function foo(a = 1) {
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "function" option:

                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                  }
                                                                                                                                                                              
                                                                                                                                                                                  function baz(a = 1) {
                                                                                                                                                                                  }
                                                                                                                                                                              }());
                                                                                                                                                                              
                                                                                                                                                                              var foo = (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              
                                                                                                                                                                                  return function foo(a = 1) {
                                                                                                                                                                                  };
                                                                                                                                                                              }());

                                                                                                                                                                              never

                                                                                                                                                                              Examples of incorrect code for this rule with the "never" option:

                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "never" option:

                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }

                                                                                                                                                                              earlier default (removed)

                                                                                                                                                                              (removed) The default option (that is, no string option specified) for this rule was removed in ESLint v1.0. The "function" option is most similar to the removed option.

                                                                                                                                                                              This option ensures that all functions are executed in strict mode. A strict mode directive must be present in global code or in every top-level function declaration or expression. It does not concern itself with unnecessary strict mode directives in nested functions that are already strict, nor with multiple strict mode directives at the same level.

                                                                                                                                                                              Examples of incorrect code for this rule with the earlier default option which has been removed:

                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              Examples of correct code for this rule with the earlier default option which has been removed:

                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              When Not To Use It

                                                                                                                                                                              In a codebase that has both strict and non-strict code, either turn this rule off, or selectively disable it where necessary. For example, functions referencing arguments.callee are invalid in strict mode. A full list of strict mode differences is available on MDN. Source: http://eslint.org/docs/rules/

                                                                                                                                                                              Use the global form of 'use strict'.
                                                                                                                                                                              Open

                                                                                                                                                                                    'use strict';
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              require or disallow strict mode directives (strict)

                                                                                                                                                                              A strict mode directive is a "use strict" literal at the beginning of a script or function body. It enables strict mode semantics.

                                                                                                                                                                              When a directive occurs in global scope, strict mode applies to the entire script:

                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              // strict mode
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  // strict mode
                                                                                                                                                                              }

                                                                                                                                                                              When a directive occurs at the beginning of a function body, strict mode applies only to that function, including all contained functions:

                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  // strict mode
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              function foo2() {
                                                                                                                                                                                  // not strict mode
                                                                                                                                                                              };
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      // strict mode
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              In the CommonJS module system, a hidden function wraps each module and limits the scope of a "global" strict mode directive.

                                                                                                                                                                              In ECMAScript modules, which always have strict mode semantics, the directives are unnecessary.

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule requires or disallows strict mode directives.

                                                                                                                                                                              This rule disallows strict mode directives, no matter which option is specified, if ESLint configuration specifies either of the following as [parser options](../user-guide/configuring#specifying-parser-options):

                                                                                                                                                                              • "sourceType": "module" that is, files are ECMAScript modules
                                                                                                                                                                              • "impliedStrict": true property in the ecmaFeatures object

                                                                                                                                                                              This rule disallows strict mode directives, no matter which option is specified, in functions with non-simple parameter lists (for example, parameter lists with default parameter values) because that is a syntax error in ECMAScript 2016 and later. See the examples of the function option.

                                                                                                                                                                              Options

                                                                                                                                                                              This rule has a string option:

                                                                                                                                                                              • "safe" (default) corresponds either of the following options:
                                                                                                                                                                                • "global" if ESLint considers a file to be a CommonJS module
                                                                                                                                                                                • "function" otherwise
                                                                                                                                                                              • "global" requires one strict mode directive in the global scope (and disallows any other strict mode directives)
                                                                                                                                                                              • "function" requires one strict mode directive in each top-level function declaration or expression (and disallows any other strict mode directives)
                                                                                                                                                                              • "never" disallows strict mode directives

                                                                                                                                                                              safe

                                                                                                                                                                              The "safe" option corresponds to the "global" option if ESLint considers a file to be a Node.js or CommonJS module because the configuration specifies either of the following:

                                                                                                                                                                              • node or commonjs [environments](../user-guide/configuring#specifying-environments)
                                                                                                                                                                              • "globalReturn": true property in the ecmaFeatures object of [parser options](../user-guide/configuring#specifying-parser-options)

                                                                                                                                                                              Otherwise the "safe" option corresponds to the "function" option.

                                                                                                                                                                              global

                                                                                                                                                                              Examples of incorrect code for this rule with the "global" option:

                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "global" option:

                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }

                                                                                                                                                                              function

                                                                                                                                                                              This option ensures that all function bodies are strict mode code, while global code is not. Particularly if a build step concatenates multiple scripts, a strict mode directive in global code of one script could unintentionally enable strict mode in another script that was not intended to be strict code.

                                                                                                                                                                              Examples of incorrect code for this rule with the "function" option:

                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());
                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              /*eslint-env es6*/
                                                                                                                                                                              
                                                                                                                                                                              // Illegal "use strict" directive in function with non-simple parameter list.
                                                                                                                                                                              // This is a syntax error since ES2016.
                                                                                                                                                                              function foo(a = 1) {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              // We cannot write "use strict" directive in this function.
                                                                                                                                                                              // So we have to wrap this function with a function with "use strict" directive.
                                                                                                                                                                              function foo(a = 1) {
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "function" option:

                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                  }
                                                                                                                                                                              
                                                                                                                                                                                  function baz(a = 1) {
                                                                                                                                                                                  }
                                                                                                                                                                              }());
                                                                                                                                                                              
                                                                                                                                                                              var foo = (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              
                                                                                                                                                                                  return function foo(a = 1) {
                                                                                                                                                                                  };
                                                                                                                                                                              }());

                                                                                                                                                                              never

                                                                                                                                                                              Examples of incorrect code for this rule with the "never" option:

                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "never" option:

                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }

                                                                                                                                                                              earlier default (removed)

                                                                                                                                                                              (removed) The default option (that is, no string option specified) for this rule was removed in ESLint v1.0. The "function" option is most similar to the removed option.

                                                                                                                                                                              This option ensures that all functions are executed in strict mode. A strict mode directive must be present in global code or in every top-level function declaration or expression. It does not concern itself with unnecessary strict mode directives in nested functions that are already strict, nor with multiple strict mode directives at the same level.

                                                                                                                                                                              Examples of incorrect code for this rule with the earlier default option which has been removed:

                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              Examples of correct code for this rule with the earlier default option which has been removed:

                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              When Not To Use It

                                                                                                                                                                              In a codebase that has both strict and non-strict code, either turn this rule off, or selectively disable it where necessary. For example, functions referencing arguments.callee are invalid in strict mode. A full list of strict mode differences is available on MDN. Source: http://eslint.org/docs/rules/

                                                                                                                                                                              Use the global form of 'use strict'.
                                                                                                                                                                              Open

                                                                                                                                                                              (function (global) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              require or disallow strict mode directives (strict)

                                                                                                                                                                              A strict mode directive is a "use strict" literal at the beginning of a script or function body. It enables strict mode semantics.

                                                                                                                                                                              When a directive occurs in global scope, strict mode applies to the entire script:

                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              // strict mode
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  // strict mode
                                                                                                                                                                              }

                                                                                                                                                                              When a directive occurs at the beginning of a function body, strict mode applies only to that function, including all contained functions:

                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  // strict mode
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              function foo2() {
                                                                                                                                                                                  // not strict mode
                                                                                                                                                                              };
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      // strict mode
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              In the CommonJS module system, a hidden function wraps each module and limits the scope of a "global" strict mode directive.

                                                                                                                                                                              In ECMAScript modules, which always have strict mode semantics, the directives are unnecessary.

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule requires or disallows strict mode directives.

                                                                                                                                                                              This rule disallows strict mode directives, no matter which option is specified, if ESLint configuration specifies either of the following as [parser options](../user-guide/configuring#specifying-parser-options):

                                                                                                                                                                              • "sourceType": "module" that is, files are ECMAScript modules
                                                                                                                                                                              • "impliedStrict": true property in the ecmaFeatures object

                                                                                                                                                                              This rule disallows strict mode directives, no matter which option is specified, in functions with non-simple parameter lists (for example, parameter lists with default parameter values) because that is a syntax error in ECMAScript 2016 and later. See the examples of the function option.

                                                                                                                                                                              Options

                                                                                                                                                                              This rule has a string option:

                                                                                                                                                                              • "safe" (default) corresponds either of the following options:
                                                                                                                                                                                • "global" if ESLint considers a file to be a CommonJS module
                                                                                                                                                                                • "function" otherwise
                                                                                                                                                                              • "global" requires one strict mode directive in the global scope (and disallows any other strict mode directives)
                                                                                                                                                                              • "function" requires one strict mode directive in each top-level function declaration or expression (and disallows any other strict mode directives)
                                                                                                                                                                              • "never" disallows strict mode directives

                                                                                                                                                                              safe

                                                                                                                                                                              The "safe" option corresponds to the "global" option if ESLint considers a file to be a Node.js or CommonJS module because the configuration specifies either of the following:

                                                                                                                                                                              • node or commonjs [environments](../user-guide/configuring#specifying-environments)
                                                                                                                                                                              • "globalReturn": true property in the ecmaFeatures object of [parser options](../user-guide/configuring#specifying-parser-options)

                                                                                                                                                                              Otherwise the "safe" option corresponds to the "function" option.

                                                                                                                                                                              global

                                                                                                                                                                              Examples of incorrect code for this rule with the "global" option:

                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "global" option:

                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }

                                                                                                                                                                              function

                                                                                                                                                                              This option ensures that all function bodies are strict mode code, while global code is not. Particularly if a build step concatenates multiple scripts, a strict mode directive in global code of one script could unintentionally enable strict mode in another script that was not intended to be strict code.

                                                                                                                                                                              Examples of incorrect code for this rule with the "function" option:

                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());
                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              /*eslint-env es6*/
                                                                                                                                                                              
                                                                                                                                                                              // Illegal "use strict" directive in function with non-simple parameter list.
                                                                                                                                                                              // This is a syntax error since ES2016.
                                                                                                                                                                              function foo(a = 1) {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              // We cannot write "use strict" directive in this function.
                                                                                                                                                                              // So we have to wrap this function with a function with "use strict" directive.
                                                                                                                                                                              function foo(a = 1) {
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "function" option:

                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                  }
                                                                                                                                                                              
                                                                                                                                                                                  function baz(a = 1) {
                                                                                                                                                                                  }
                                                                                                                                                                              }());
                                                                                                                                                                              
                                                                                                                                                                              var foo = (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              
                                                                                                                                                                                  return function foo(a = 1) {
                                                                                                                                                                                  };
                                                                                                                                                                              }());

                                                                                                                                                                              never

                                                                                                                                                                              Examples of incorrect code for this rule with the "never" option:

                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "never" option:

                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }

                                                                                                                                                                              earlier default (removed)

                                                                                                                                                                              (removed) The default option (that is, no string option specified) for this rule was removed in ESLint v1.0. The "function" option is most similar to the removed option.

                                                                                                                                                                              This option ensures that all functions are executed in strict mode. A strict mode directive must be present in global code or in every top-level function declaration or expression. It does not concern itself with unnecessary strict mode directives in nested functions that are already strict, nor with multiple strict mode directives at the same level.

                                                                                                                                                                              Examples of incorrect code for this rule with the earlier default option which has been removed:

                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              Examples of correct code for this rule with the earlier default option which has been removed:

                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              When Not To Use It

                                                                                                                                                                              In a codebase that has both strict and non-strict code, either turn this rule off, or selectively disable it where necessary. For example, functions referencing arguments.callee are invalid in strict mode. A full list of strict mode differences is available on MDN. Source: http://eslint.org/docs/rules/

                                                                                                                                                                              Wrap only the function expression in parens.
                                                                                                                                                                              Open

                                                                                                                                                                                  (function () {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              Require IIFEs to be Wrapped (wrap-iife)

                                                                                                                                                                              You can immediately invoke function expressions, but not function declarations. A common technique to create an immediately-invoked function expression (IIFE) is to wrap a function declaration in parentheses. The opening parentheses causes the contained function to be parsed as an expression, rather than a declaration.

                                                                                                                                                                              // function expression could be unwrapped
                                                                                                                                                                              var x = function () { return { y: 1 };}();
                                                                                                                                                                              
                                                                                                                                                                              // function declaration must be wrapped
                                                                                                                                                                              function () { /* side effects */ }(); // SyntaxError

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule requires all immediately-invoked function expressions to be wrapped in parentheses.

                                                                                                                                                                              Options

                                                                                                                                                                              This rule has two options, a string option and an object option.

                                                                                                                                                                              String option:

                                                                                                                                                                              • "outside" enforces always wrapping the call expression. The default is "outside".
                                                                                                                                                                              • "inside" enforces always wrapping the function expression.
                                                                                                                                                                              • "any" enforces always wrapping, but allows either style.

                                                                                                                                                                              Object option:

                                                                                                                                                                              • "functionPrototypeMethods": true additionally enforces wrapping function expressions invoked using .call and .apply. The default is false.

                                                                                                                                                                              outside

                                                                                                                                                                              Examples of incorrect code for the default "outside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "outside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              Examples of correct code for the default "outside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "outside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression

                                                                                                                                                                              inside

                                                                                                                                                                              Examples of incorrect code for the "inside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "inside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression

                                                                                                                                                                              Examples of correct code for the "inside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "inside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              any

                                                                                                                                                                              Examples of incorrect code for the "any" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "any"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped

                                                                                                                                                                              Examples of correct code for the "any" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "any"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              functionPrototypeMethods

                                                                                                                                                                              Examples of incorrect code for this rule with the "inside", { "functionPrototypeMethods": true } options:

                                                                                                                                                                              /* eslint wrap-iife: [2, "inside", { functionPrototypeMethods: true }] */
                                                                                                                                                                              
                                                                                                                                                                              var x = function(){ foo(); }()
                                                                                                                                                                              var x = (function(){ foo(); }())
                                                                                                                                                                              var x = function(){ foo(); }.call(bar)
                                                                                                                                                                              var x = (function(){ foo(); }.call(bar))

                                                                                                                                                                              Examples of correct code for this rule with the "inside", { "functionPrototypeMethods": true } options:

                                                                                                                                                                              /* eslint wrap-iife: [2, "inside", { functionPrototypeMethods: true }] */
                                                                                                                                                                              
                                                                                                                                                                              var x = (function(){ foo(); })()
                                                                                                                                                                              var x = (function(){ foo(); }).call(bar)

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

                                                                                                                                                                              Wrap an immediate function invocation in parentheses.
                                                                                                                                                                              Open

                                                                                                                                                                                var process = function () {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              Require IIFEs to be Wrapped (wrap-iife)

                                                                                                                                                                              You can immediately invoke function expressions, but not function declarations. A common technique to create an immediately-invoked function expression (IIFE) is to wrap a function declaration in parentheses. The opening parentheses causes the contained function to be parsed as an expression, rather than a declaration.

                                                                                                                                                                              // function expression could be unwrapped
                                                                                                                                                                              var x = function () { return { y: 1 };}();
                                                                                                                                                                              
                                                                                                                                                                              // function declaration must be wrapped
                                                                                                                                                                              function () { /* side effects */ }(); // SyntaxError

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule requires all immediately-invoked function expressions to be wrapped in parentheses.

                                                                                                                                                                              Options

                                                                                                                                                                              This rule has two options, a string option and an object option.

                                                                                                                                                                              String option:

                                                                                                                                                                              • "outside" enforces always wrapping the call expression. The default is "outside".
                                                                                                                                                                              • "inside" enforces always wrapping the function expression.
                                                                                                                                                                              • "any" enforces always wrapping, but allows either style.

                                                                                                                                                                              Object option:

                                                                                                                                                                              • "functionPrototypeMethods": true additionally enforces wrapping function expressions invoked using .call and .apply. The default is false.

                                                                                                                                                                              outside

                                                                                                                                                                              Examples of incorrect code for the default "outside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "outside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              Examples of correct code for the default "outside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "outside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression

                                                                                                                                                                              inside

                                                                                                                                                                              Examples of incorrect code for the "inside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "inside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression

                                                                                                                                                                              Examples of correct code for the "inside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "inside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              any

                                                                                                                                                                              Examples of incorrect code for the "any" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "any"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped

                                                                                                                                                                              Examples of correct code for the "any" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "any"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              functionPrototypeMethods

                                                                                                                                                                              Examples of incorrect code for this rule with the "inside", { "functionPrototypeMethods": true } options:

                                                                                                                                                                              /* eslint wrap-iife: [2, "inside", { functionPrototypeMethods: true }] */
                                                                                                                                                                              
                                                                                                                                                                              var x = function(){ foo(); }()
                                                                                                                                                                              var x = (function(){ foo(); }())
                                                                                                                                                                              var x = function(){ foo(); }.call(bar)
                                                                                                                                                                              var x = (function(){ foo(); }.call(bar))

                                                                                                                                                                              Examples of correct code for this rule with the "inside", { "functionPrototypeMethods": true } options:

                                                                                                                                                                              /* eslint wrap-iife: [2, "inside", { functionPrototypeMethods: true }] */
                                                                                                                                                                              
                                                                                                                                                                              var x = (function(){ foo(); })()
                                                                                                                                                                              var x = (function(){ foo(); }).call(bar)

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

                                                                                                                                                                              Use the global form of 'use strict'.
                                                                                                                                                                              Open

                                                                                                                                                                                  'use strict';
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              require or disallow strict mode directives (strict)

                                                                                                                                                                              A strict mode directive is a "use strict" literal at the beginning of a script or function body. It enables strict mode semantics.

                                                                                                                                                                              When a directive occurs in global scope, strict mode applies to the entire script:

                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              // strict mode
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  // strict mode
                                                                                                                                                                              }

                                                                                                                                                                              When a directive occurs at the beginning of a function body, strict mode applies only to that function, including all contained functions:

                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  // strict mode
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              function foo2() {
                                                                                                                                                                                  // not strict mode
                                                                                                                                                                              };
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      // strict mode
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              In the CommonJS module system, a hidden function wraps each module and limits the scope of a "global" strict mode directive.

                                                                                                                                                                              In ECMAScript modules, which always have strict mode semantics, the directives are unnecessary.

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule requires or disallows strict mode directives.

                                                                                                                                                                              This rule disallows strict mode directives, no matter which option is specified, if ESLint configuration specifies either of the following as [parser options](../user-guide/configuring#specifying-parser-options):

                                                                                                                                                                              • "sourceType": "module" that is, files are ECMAScript modules
                                                                                                                                                                              • "impliedStrict": true property in the ecmaFeatures object

                                                                                                                                                                              This rule disallows strict mode directives, no matter which option is specified, in functions with non-simple parameter lists (for example, parameter lists with default parameter values) because that is a syntax error in ECMAScript 2016 and later. See the examples of the function option.

                                                                                                                                                                              Options

                                                                                                                                                                              This rule has a string option:

                                                                                                                                                                              • "safe" (default) corresponds either of the following options:
                                                                                                                                                                                • "global" if ESLint considers a file to be a CommonJS module
                                                                                                                                                                                • "function" otherwise
                                                                                                                                                                              • "global" requires one strict mode directive in the global scope (and disallows any other strict mode directives)
                                                                                                                                                                              • "function" requires one strict mode directive in each top-level function declaration or expression (and disallows any other strict mode directives)
                                                                                                                                                                              • "never" disallows strict mode directives

                                                                                                                                                                              safe

                                                                                                                                                                              The "safe" option corresponds to the "global" option if ESLint considers a file to be a Node.js or CommonJS module because the configuration specifies either of the following:

                                                                                                                                                                              • node or commonjs [environments](../user-guide/configuring#specifying-environments)
                                                                                                                                                                              • "globalReturn": true property in the ecmaFeatures object of [parser options](../user-guide/configuring#specifying-parser-options)

                                                                                                                                                                              Otherwise the "safe" option corresponds to the "function" option.

                                                                                                                                                                              global

                                                                                                                                                                              Examples of incorrect code for this rule with the "global" option:

                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "global" option:

                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }

                                                                                                                                                                              function

                                                                                                                                                                              This option ensures that all function bodies are strict mode code, while global code is not. Particularly if a build step concatenates multiple scripts, a strict mode directive in global code of one script could unintentionally enable strict mode in another script that was not intended to be strict code.

                                                                                                                                                                              Examples of incorrect code for this rule with the "function" option:

                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());
                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              /*eslint-env es6*/
                                                                                                                                                                              
                                                                                                                                                                              // Illegal "use strict" directive in function with non-simple parameter list.
                                                                                                                                                                              // This is a syntax error since ES2016.
                                                                                                                                                                              function foo(a = 1) {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              // We cannot write "use strict" directive in this function.
                                                                                                                                                                              // So we have to wrap this function with a function with "use strict" directive.
                                                                                                                                                                              function foo(a = 1) {
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "function" option:

                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                  }
                                                                                                                                                                              
                                                                                                                                                                                  function baz(a = 1) {
                                                                                                                                                                                  }
                                                                                                                                                                              }());
                                                                                                                                                                              
                                                                                                                                                                              var foo = (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              
                                                                                                                                                                                  return function foo(a = 1) {
                                                                                                                                                                                  };
                                                                                                                                                                              }());

                                                                                                                                                                              never

                                                                                                                                                                              Examples of incorrect code for this rule with the "never" option:

                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "never" option:

                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }

                                                                                                                                                                              earlier default (removed)

                                                                                                                                                                              (removed) The default option (that is, no string option specified) for this rule was removed in ESLint v1.0. The "function" option is most similar to the removed option.

                                                                                                                                                                              This option ensures that all functions are executed in strict mode. A strict mode directive must be present in global code or in every top-level function declaration or expression. It does not concern itself with unnecessary strict mode directives in nested functions that are already strict, nor with multiple strict mode directives at the same level.

                                                                                                                                                                              Examples of incorrect code for this rule with the earlier default option which has been removed:

                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              Examples of correct code for this rule with the earlier default option which has been removed:

                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              When Not To Use It

                                                                                                                                                                              In a codebase that has both strict and non-strict code, either turn this rule off, or selectively disable it where necessary. For example, functions referencing arguments.callee are invalid in strict mode. A full list of strict mode differences is available on MDN. Source: http://eslint.org/docs/rules/

                                                                                                                                                                              Wrap an immediate function invocation in parentheses.
                                                                                                                                                                              Open

                                                                                                                                                                                    objectCreate = Object.create || function () {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              Require IIFEs to be Wrapped (wrap-iife)

                                                                                                                                                                              You can immediately invoke function expressions, but not function declarations. A common technique to create an immediately-invoked function expression (IIFE) is to wrap a function declaration in parentheses. The opening parentheses causes the contained function to be parsed as an expression, rather than a declaration.

                                                                                                                                                                              // function expression could be unwrapped
                                                                                                                                                                              var x = function () { return { y: 1 };}();
                                                                                                                                                                              
                                                                                                                                                                              // function declaration must be wrapped
                                                                                                                                                                              function () { /* side effects */ }(); // SyntaxError

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule requires all immediately-invoked function expressions to be wrapped in parentheses.

                                                                                                                                                                              Options

                                                                                                                                                                              This rule has two options, a string option and an object option.

                                                                                                                                                                              String option:

                                                                                                                                                                              • "outside" enforces always wrapping the call expression. The default is "outside".
                                                                                                                                                                              • "inside" enforces always wrapping the function expression.
                                                                                                                                                                              • "any" enforces always wrapping, but allows either style.

                                                                                                                                                                              Object option:

                                                                                                                                                                              • "functionPrototypeMethods": true additionally enforces wrapping function expressions invoked using .call and .apply. The default is false.

                                                                                                                                                                              outside

                                                                                                                                                                              Examples of incorrect code for the default "outside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "outside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              Examples of correct code for the default "outside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "outside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression

                                                                                                                                                                              inside

                                                                                                                                                                              Examples of incorrect code for the "inside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "inside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression

                                                                                                                                                                              Examples of correct code for the "inside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "inside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              any

                                                                                                                                                                              Examples of incorrect code for the "any" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "any"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped

                                                                                                                                                                              Examples of correct code for the "any" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "any"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              functionPrototypeMethods

                                                                                                                                                                              Examples of incorrect code for this rule with the "inside", { "functionPrototypeMethods": true } options:

                                                                                                                                                                              /* eslint wrap-iife: [2, "inside", { functionPrototypeMethods: true }] */
                                                                                                                                                                              
                                                                                                                                                                              var x = function(){ foo(); }()
                                                                                                                                                                              var x = (function(){ foo(); }())
                                                                                                                                                                              var x = function(){ foo(); }.call(bar)
                                                                                                                                                                              var x = (function(){ foo(); }.call(bar))

                                                                                                                                                                              Examples of correct code for this rule with the "inside", { "functionPrototypeMethods": true } options:

                                                                                                                                                                              /* eslint wrap-iife: [2, "inside", { functionPrototypeMethods: true }] */
                                                                                                                                                                              
                                                                                                                                                                              var x = (function(){ foo(); })()
                                                                                                                                                                              var x = (function(){ foo(); }).call(bar)

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

                                                                                                                                                                              Wrap only the function expression in parens.
                                                                                                                                                                              Open

                                                                                                                                                                                  (function () {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              Require IIFEs to be Wrapped (wrap-iife)

                                                                                                                                                                              You can immediately invoke function expressions, but not function declarations. A common technique to create an immediately-invoked function expression (IIFE) is to wrap a function declaration in parentheses. The opening parentheses causes the contained function to be parsed as an expression, rather than a declaration.

                                                                                                                                                                              // function expression could be unwrapped
                                                                                                                                                                              var x = function () { return { y: 1 };}();
                                                                                                                                                                              
                                                                                                                                                                              // function declaration must be wrapped
                                                                                                                                                                              function () { /* side effects */ }(); // SyntaxError

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule requires all immediately-invoked function expressions to be wrapped in parentheses.

                                                                                                                                                                              Options

                                                                                                                                                                              This rule has two options, a string option and an object option.

                                                                                                                                                                              String option:

                                                                                                                                                                              • "outside" enforces always wrapping the call expression. The default is "outside".
                                                                                                                                                                              • "inside" enforces always wrapping the function expression.
                                                                                                                                                                              • "any" enforces always wrapping, but allows either style.

                                                                                                                                                                              Object option:

                                                                                                                                                                              • "functionPrototypeMethods": true additionally enforces wrapping function expressions invoked using .call and .apply. The default is false.

                                                                                                                                                                              outside

                                                                                                                                                                              Examples of incorrect code for the default "outside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "outside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              Examples of correct code for the default "outside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "outside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression

                                                                                                                                                                              inside

                                                                                                                                                                              Examples of incorrect code for the "inside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "inside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression

                                                                                                                                                                              Examples of correct code for the "inside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "inside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              any

                                                                                                                                                                              Examples of incorrect code for the "any" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "any"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped

                                                                                                                                                                              Examples of correct code for the "any" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "any"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              functionPrototypeMethods

                                                                                                                                                                              Examples of incorrect code for this rule with the "inside", { "functionPrototypeMethods": true } options:

                                                                                                                                                                              /* eslint wrap-iife: [2, "inside", { functionPrototypeMethods: true }] */
                                                                                                                                                                              
                                                                                                                                                                              var x = function(){ foo(); }()
                                                                                                                                                                              var x = (function(){ foo(); }())
                                                                                                                                                                              var x = function(){ foo(); }.call(bar)
                                                                                                                                                                              var x = (function(){ foo(); }.call(bar))

                                                                                                                                                                              Examples of correct code for this rule with the "inside", { "functionPrototypeMethods": true } options:

                                                                                                                                                                              /* eslint wrap-iife: [2, "inside", { functionPrototypeMethods: true }] */
                                                                                                                                                                              
                                                                                                                                                                              var x = (function(){ foo(); })()
                                                                                                                                                                              var x = (function(){ foo(); }).call(bar)

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

                                                                                                                                                                              Use the global form of 'use strict'.
                                                                                                                                                                              Open

                                                                                                                                                                                    'use strict';
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              require or disallow strict mode directives (strict)

                                                                                                                                                                              A strict mode directive is a "use strict" literal at the beginning of a script or function body. It enables strict mode semantics.

                                                                                                                                                                              When a directive occurs in global scope, strict mode applies to the entire script:

                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              // strict mode
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  // strict mode
                                                                                                                                                                              }

                                                                                                                                                                              When a directive occurs at the beginning of a function body, strict mode applies only to that function, including all contained functions:

                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  // strict mode
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              function foo2() {
                                                                                                                                                                                  // not strict mode
                                                                                                                                                                              };
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      // strict mode
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              In the CommonJS module system, a hidden function wraps each module and limits the scope of a "global" strict mode directive.

                                                                                                                                                                              In ECMAScript modules, which always have strict mode semantics, the directives are unnecessary.

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule requires or disallows strict mode directives.

                                                                                                                                                                              This rule disallows strict mode directives, no matter which option is specified, if ESLint configuration specifies either of the following as [parser options](../user-guide/configuring#specifying-parser-options):

                                                                                                                                                                              • "sourceType": "module" that is, files are ECMAScript modules
                                                                                                                                                                              • "impliedStrict": true property in the ecmaFeatures object

                                                                                                                                                                              This rule disallows strict mode directives, no matter which option is specified, in functions with non-simple parameter lists (for example, parameter lists with default parameter values) because that is a syntax error in ECMAScript 2016 and later. See the examples of the function option.

                                                                                                                                                                              Options

                                                                                                                                                                              This rule has a string option:

                                                                                                                                                                              • "safe" (default) corresponds either of the following options:
                                                                                                                                                                                • "global" if ESLint considers a file to be a CommonJS module
                                                                                                                                                                                • "function" otherwise
                                                                                                                                                                              • "global" requires one strict mode directive in the global scope (and disallows any other strict mode directives)
                                                                                                                                                                              • "function" requires one strict mode directive in each top-level function declaration or expression (and disallows any other strict mode directives)
                                                                                                                                                                              • "never" disallows strict mode directives

                                                                                                                                                                              safe

                                                                                                                                                                              The "safe" option corresponds to the "global" option if ESLint considers a file to be a Node.js or CommonJS module because the configuration specifies either of the following:

                                                                                                                                                                              • node or commonjs [environments](../user-guide/configuring#specifying-environments)
                                                                                                                                                                              • "globalReturn": true property in the ecmaFeatures object of [parser options](../user-guide/configuring#specifying-parser-options)

                                                                                                                                                                              Otherwise the "safe" option corresponds to the "function" option.

                                                                                                                                                                              global

                                                                                                                                                                              Examples of incorrect code for this rule with the "global" option:

                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "global" option:

                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }

                                                                                                                                                                              function

                                                                                                                                                                              This option ensures that all function bodies are strict mode code, while global code is not. Particularly if a build step concatenates multiple scripts, a strict mode directive in global code of one script could unintentionally enable strict mode in another script that was not intended to be strict code.

                                                                                                                                                                              Examples of incorrect code for this rule with the "function" option:

                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());
                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              /*eslint-env es6*/
                                                                                                                                                                              
                                                                                                                                                                              // Illegal "use strict" directive in function with non-simple parameter list.
                                                                                                                                                                              // This is a syntax error since ES2016.
                                                                                                                                                                              function foo(a = 1) {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              // We cannot write "use strict" directive in this function.
                                                                                                                                                                              // So we have to wrap this function with a function with "use strict" directive.
                                                                                                                                                                              function foo(a = 1) {
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "function" option:

                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                  }
                                                                                                                                                                              
                                                                                                                                                                                  function baz(a = 1) {
                                                                                                                                                                                  }
                                                                                                                                                                              }());
                                                                                                                                                                              
                                                                                                                                                                              var foo = (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              
                                                                                                                                                                                  return function foo(a = 1) {
                                                                                                                                                                                  };
                                                                                                                                                                              }());

                                                                                                                                                                              never

                                                                                                                                                                              Examples of incorrect code for this rule with the "never" option:

                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "never" option:

                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }

                                                                                                                                                                              earlier default (removed)

                                                                                                                                                                              (removed) The default option (that is, no string option specified) for this rule was removed in ESLint v1.0. The "function" option is most similar to the removed option.

                                                                                                                                                                              This option ensures that all functions are executed in strict mode. A strict mode directive must be present in global code or in every top-level function declaration or expression. It does not concern itself with unnecessary strict mode directives in nested functions that are already strict, nor with multiple strict mode directives at the same level.

                                                                                                                                                                              Examples of incorrect code for this rule with the earlier default option which has been removed:

                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              Examples of correct code for this rule with the earlier default option which has been removed:

                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              When Not To Use It

                                                                                                                                                                              In a codebase that has both strict and non-strict code, either turn this rule off, or selectively disable it where necessary. For example, functions referencing arguments.callee are invalid in strict mode. A full list of strict mode differences is available on MDN. Source: http://eslint.org/docs/rules/

                                                                                                                                                                              Use the global form of 'use strict'.
                                                                                                                                                                              Open

                                                                                                                                                                                    'use strict';
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              require or disallow strict mode directives (strict)

                                                                                                                                                                              A strict mode directive is a "use strict" literal at the beginning of a script or function body. It enables strict mode semantics.

                                                                                                                                                                              When a directive occurs in global scope, strict mode applies to the entire script:

                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              // strict mode
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  // strict mode
                                                                                                                                                                              }

                                                                                                                                                                              When a directive occurs at the beginning of a function body, strict mode applies only to that function, including all contained functions:

                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  // strict mode
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              function foo2() {
                                                                                                                                                                                  // not strict mode
                                                                                                                                                                              };
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      // strict mode
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              In the CommonJS module system, a hidden function wraps each module and limits the scope of a "global" strict mode directive.

                                                                                                                                                                              In ECMAScript modules, which always have strict mode semantics, the directives are unnecessary.

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule requires or disallows strict mode directives.

                                                                                                                                                                              This rule disallows strict mode directives, no matter which option is specified, if ESLint configuration specifies either of the following as [parser options](../user-guide/configuring#specifying-parser-options):

                                                                                                                                                                              • "sourceType": "module" that is, files are ECMAScript modules
                                                                                                                                                                              • "impliedStrict": true property in the ecmaFeatures object

                                                                                                                                                                              This rule disallows strict mode directives, no matter which option is specified, in functions with non-simple parameter lists (for example, parameter lists with default parameter values) because that is a syntax error in ECMAScript 2016 and later. See the examples of the function option.

                                                                                                                                                                              Options

                                                                                                                                                                              This rule has a string option:

                                                                                                                                                                              • "safe" (default) corresponds either of the following options:
                                                                                                                                                                                • "global" if ESLint considers a file to be a CommonJS module
                                                                                                                                                                                • "function" otherwise
                                                                                                                                                                              • "global" requires one strict mode directive in the global scope (and disallows any other strict mode directives)
                                                                                                                                                                              • "function" requires one strict mode directive in each top-level function declaration or expression (and disallows any other strict mode directives)
                                                                                                                                                                              • "never" disallows strict mode directives

                                                                                                                                                                              safe

                                                                                                                                                                              The "safe" option corresponds to the "global" option if ESLint considers a file to be a Node.js or CommonJS module because the configuration specifies either of the following:

                                                                                                                                                                              • node or commonjs [environments](../user-guide/configuring#specifying-environments)
                                                                                                                                                                              • "globalReturn": true property in the ecmaFeatures object of [parser options](../user-guide/configuring#specifying-parser-options)

                                                                                                                                                                              Otherwise the "safe" option corresponds to the "function" option.

                                                                                                                                                                              global

                                                                                                                                                                              Examples of incorrect code for this rule with the "global" option:

                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "global" option:

                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }

                                                                                                                                                                              function

                                                                                                                                                                              This option ensures that all function bodies are strict mode code, while global code is not. Particularly if a build step concatenates multiple scripts, a strict mode directive in global code of one script could unintentionally enable strict mode in another script that was not intended to be strict code.

                                                                                                                                                                              Examples of incorrect code for this rule with the "function" option:

                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());
                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              /*eslint-env es6*/
                                                                                                                                                                              
                                                                                                                                                                              // Illegal "use strict" directive in function with non-simple parameter list.
                                                                                                                                                                              // This is a syntax error since ES2016.
                                                                                                                                                                              function foo(a = 1) {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              // We cannot write "use strict" directive in this function.
                                                                                                                                                                              // So we have to wrap this function with a function with "use strict" directive.
                                                                                                                                                                              function foo(a = 1) {
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "function" option:

                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                  }
                                                                                                                                                                              
                                                                                                                                                                                  function baz(a = 1) {
                                                                                                                                                                                  }
                                                                                                                                                                              }());
                                                                                                                                                                              
                                                                                                                                                                              var foo = (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              
                                                                                                                                                                                  return function foo(a = 1) {
                                                                                                                                                                                  };
                                                                                                                                                                              }());

                                                                                                                                                                              never

                                                                                                                                                                              Examples of incorrect code for this rule with the "never" option:

                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "never" option:

                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }

                                                                                                                                                                              earlier default (removed)

                                                                                                                                                                              (removed) The default option (that is, no string option specified) for this rule was removed in ESLint v1.0. The "function" option is most similar to the removed option.

                                                                                                                                                                              This option ensures that all functions are executed in strict mode. A strict mode directive must be present in global code or in every top-level function declaration or expression. It does not concern itself with unnecessary strict mode directives in nested functions that are already strict, nor with multiple strict mode directives at the same level.

                                                                                                                                                                              Examples of incorrect code for this rule with the earlier default option which has been removed:

                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              Examples of correct code for this rule with the earlier default option which has been removed:

                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              When Not To Use It

                                                                                                                                                                              In a codebase that has both strict and non-strict code, either turn this rule off, or selectively disable it where necessary. For example, functions referencing arguments.callee are invalid in strict mode. A full list of strict mode differences is available on MDN. Source: http://eslint.org/docs/rules/

                                                                                                                                                                              Use the global form of 'use strict'.
                                                                                                                                                                              Open

                                                                                                                                                                                    'use strict';
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              require or disallow strict mode directives (strict)

                                                                                                                                                                              A strict mode directive is a "use strict" literal at the beginning of a script or function body. It enables strict mode semantics.

                                                                                                                                                                              When a directive occurs in global scope, strict mode applies to the entire script:

                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              // strict mode
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  // strict mode
                                                                                                                                                                              }

                                                                                                                                                                              When a directive occurs at the beginning of a function body, strict mode applies only to that function, including all contained functions:

                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  // strict mode
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              function foo2() {
                                                                                                                                                                                  // not strict mode
                                                                                                                                                                              };
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      // strict mode
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              In the CommonJS module system, a hidden function wraps each module and limits the scope of a "global" strict mode directive.

                                                                                                                                                                              In ECMAScript modules, which always have strict mode semantics, the directives are unnecessary.

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule requires or disallows strict mode directives.

                                                                                                                                                                              This rule disallows strict mode directives, no matter which option is specified, if ESLint configuration specifies either of the following as [parser options](../user-guide/configuring#specifying-parser-options):

                                                                                                                                                                              • "sourceType": "module" that is, files are ECMAScript modules
                                                                                                                                                                              • "impliedStrict": true property in the ecmaFeatures object

                                                                                                                                                                              This rule disallows strict mode directives, no matter which option is specified, in functions with non-simple parameter lists (for example, parameter lists with default parameter values) because that is a syntax error in ECMAScript 2016 and later. See the examples of the function option.

                                                                                                                                                                              Options

                                                                                                                                                                              This rule has a string option:

                                                                                                                                                                              • "safe" (default) corresponds either of the following options:
                                                                                                                                                                                • "global" if ESLint considers a file to be a CommonJS module
                                                                                                                                                                                • "function" otherwise
                                                                                                                                                                              • "global" requires one strict mode directive in the global scope (and disallows any other strict mode directives)
                                                                                                                                                                              • "function" requires one strict mode directive in each top-level function declaration or expression (and disallows any other strict mode directives)
                                                                                                                                                                              • "never" disallows strict mode directives

                                                                                                                                                                              safe

                                                                                                                                                                              The "safe" option corresponds to the "global" option if ESLint considers a file to be a Node.js or CommonJS module because the configuration specifies either of the following:

                                                                                                                                                                              • node or commonjs [environments](../user-guide/configuring#specifying-environments)
                                                                                                                                                                              • "globalReturn": true property in the ecmaFeatures object of [parser options](../user-guide/configuring#specifying-parser-options)

                                                                                                                                                                              Otherwise the "safe" option corresponds to the "function" option.

                                                                                                                                                                              global

                                                                                                                                                                              Examples of incorrect code for this rule with the "global" option:

                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "global" option:

                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }

                                                                                                                                                                              function

                                                                                                                                                                              This option ensures that all function bodies are strict mode code, while global code is not. Particularly if a build step concatenates multiple scripts, a strict mode directive in global code of one script could unintentionally enable strict mode in another script that was not intended to be strict code.

                                                                                                                                                                              Examples of incorrect code for this rule with the "function" option:

                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());
                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              /*eslint-env es6*/
                                                                                                                                                                              
                                                                                                                                                                              // Illegal "use strict" directive in function with non-simple parameter list.
                                                                                                                                                                              // This is a syntax error since ES2016.
                                                                                                                                                                              function foo(a = 1) {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              // We cannot write "use strict" directive in this function.
                                                                                                                                                                              // So we have to wrap this function with a function with "use strict" directive.
                                                                                                                                                                              function foo(a = 1) {
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "function" option:

                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                  }
                                                                                                                                                                              
                                                                                                                                                                                  function baz(a = 1) {
                                                                                                                                                                                  }
                                                                                                                                                                              }());
                                                                                                                                                                              
                                                                                                                                                                              var foo = (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              
                                                                                                                                                                                  return function foo(a = 1) {
                                                                                                                                                                                  };
                                                                                                                                                                              }());

                                                                                                                                                                              never

                                                                                                                                                                              Examples of incorrect code for this rule with the "never" option:

                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "never" option:

                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }

                                                                                                                                                                              earlier default (removed)

                                                                                                                                                                              (removed) The default option (that is, no string option specified) for this rule was removed in ESLint v1.0. The "function" option is most similar to the removed option.

                                                                                                                                                                              This option ensures that all functions are executed in strict mode. A strict mode directive must be present in global code or in every top-level function declaration or expression. It does not concern itself with unnecessary strict mode directives in nested functions that are already strict, nor with multiple strict mode directives at the same level.

                                                                                                                                                                              Examples of incorrect code for this rule with the earlier default option which has been removed:

                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              Examples of correct code for this rule with the earlier default option which has been removed:

                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              When Not To Use It

                                                                                                                                                                              In a codebase that has both strict and non-strict code, either turn this rule off, or selectively disable it where necessary. For example, functions referencing arguments.callee are invalid in strict mode. A full list of strict mode differences is available on MDN. Source: http://eslint.org/docs/rules/

                                                                                                                                                                              Wrap only the function expression in parens.
                                                                                                                                                                              Open

                                                                                                                                                                                  (function () {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              Require IIFEs to be Wrapped (wrap-iife)

                                                                                                                                                                              You can immediately invoke function expressions, but not function declarations. A common technique to create an immediately-invoked function expression (IIFE) is to wrap a function declaration in parentheses. The opening parentheses causes the contained function to be parsed as an expression, rather than a declaration.

                                                                                                                                                                              // function expression could be unwrapped
                                                                                                                                                                              var x = function () { return { y: 1 };}();
                                                                                                                                                                              
                                                                                                                                                                              // function declaration must be wrapped
                                                                                                                                                                              function () { /* side effects */ }(); // SyntaxError

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule requires all immediately-invoked function expressions to be wrapped in parentheses.

                                                                                                                                                                              Options

                                                                                                                                                                              This rule has two options, a string option and an object option.

                                                                                                                                                                              String option:

                                                                                                                                                                              • "outside" enforces always wrapping the call expression. The default is "outside".
                                                                                                                                                                              • "inside" enforces always wrapping the function expression.
                                                                                                                                                                              • "any" enforces always wrapping, but allows either style.

                                                                                                                                                                              Object option:

                                                                                                                                                                              • "functionPrototypeMethods": true additionally enforces wrapping function expressions invoked using .call and .apply. The default is false.

                                                                                                                                                                              outside

                                                                                                                                                                              Examples of incorrect code for the default "outside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "outside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              Examples of correct code for the default "outside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "outside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression

                                                                                                                                                                              inside

                                                                                                                                                                              Examples of incorrect code for the "inside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "inside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression

                                                                                                                                                                              Examples of correct code for the "inside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "inside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              any

                                                                                                                                                                              Examples of incorrect code for the "any" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "any"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped

                                                                                                                                                                              Examples of correct code for the "any" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "any"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              functionPrototypeMethods

                                                                                                                                                                              Examples of incorrect code for this rule with the "inside", { "functionPrototypeMethods": true } options:

                                                                                                                                                                              /* eslint wrap-iife: [2, "inside", { functionPrototypeMethods: true }] */
                                                                                                                                                                              
                                                                                                                                                                              var x = function(){ foo(); }()
                                                                                                                                                                              var x = (function(){ foo(); }())
                                                                                                                                                                              var x = function(){ foo(); }.call(bar)
                                                                                                                                                                              var x = (function(){ foo(); }.call(bar))

                                                                                                                                                                              Examples of correct code for this rule with the "inside", { "functionPrototypeMethods": true } options:

                                                                                                                                                                              /* eslint wrap-iife: [2, "inside", { functionPrototypeMethods: true }] */
                                                                                                                                                                              
                                                                                                                                                                              var x = (function(){ foo(); })()
                                                                                                                                                                              var x = (function(){ foo(); }).call(bar)

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

                                                                                                                                                                              Use the global form of 'use strict'.
                                                                                                                                                                              Open

                                                                                                                                                                                    'use strict';
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              require or disallow strict mode directives (strict)

                                                                                                                                                                              A strict mode directive is a "use strict" literal at the beginning of a script or function body. It enables strict mode semantics.

                                                                                                                                                                              When a directive occurs in global scope, strict mode applies to the entire script:

                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              // strict mode
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  // strict mode
                                                                                                                                                                              }

                                                                                                                                                                              When a directive occurs at the beginning of a function body, strict mode applies only to that function, including all contained functions:

                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  // strict mode
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              function foo2() {
                                                                                                                                                                                  // not strict mode
                                                                                                                                                                              };
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      // strict mode
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              In the CommonJS module system, a hidden function wraps each module and limits the scope of a "global" strict mode directive.

                                                                                                                                                                              In ECMAScript modules, which always have strict mode semantics, the directives are unnecessary.

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule requires or disallows strict mode directives.

                                                                                                                                                                              This rule disallows strict mode directives, no matter which option is specified, if ESLint configuration specifies either of the following as [parser options](../user-guide/configuring#specifying-parser-options):

                                                                                                                                                                              • "sourceType": "module" that is, files are ECMAScript modules
                                                                                                                                                                              • "impliedStrict": true property in the ecmaFeatures object

                                                                                                                                                                              This rule disallows strict mode directives, no matter which option is specified, in functions with non-simple parameter lists (for example, parameter lists with default parameter values) because that is a syntax error in ECMAScript 2016 and later. See the examples of the function option.

                                                                                                                                                                              Options

                                                                                                                                                                              This rule has a string option:

                                                                                                                                                                              • "safe" (default) corresponds either of the following options:
                                                                                                                                                                                • "global" if ESLint considers a file to be a CommonJS module
                                                                                                                                                                                • "function" otherwise
                                                                                                                                                                              • "global" requires one strict mode directive in the global scope (and disallows any other strict mode directives)
                                                                                                                                                                              • "function" requires one strict mode directive in each top-level function declaration or expression (and disallows any other strict mode directives)
                                                                                                                                                                              • "never" disallows strict mode directives

                                                                                                                                                                              safe

                                                                                                                                                                              The "safe" option corresponds to the "global" option if ESLint considers a file to be a Node.js or CommonJS module because the configuration specifies either of the following:

                                                                                                                                                                              • node or commonjs [environments](../user-guide/configuring#specifying-environments)
                                                                                                                                                                              • "globalReturn": true property in the ecmaFeatures object of [parser options](../user-guide/configuring#specifying-parser-options)

                                                                                                                                                                              Otherwise the "safe" option corresponds to the "function" option.

                                                                                                                                                                              global

                                                                                                                                                                              Examples of incorrect code for this rule with the "global" option:

                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "global" option:

                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }

                                                                                                                                                                              function

                                                                                                                                                                              This option ensures that all function bodies are strict mode code, while global code is not. Particularly if a build step concatenates multiple scripts, a strict mode directive in global code of one script could unintentionally enable strict mode in another script that was not intended to be strict code.

                                                                                                                                                                              Examples of incorrect code for this rule with the "function" option:

                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());
                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              /*eslint-env es6*/
                                                                                                                                                                              
                                                                                                                                                                              // Illegal "use strict" directive in function with non-simple parameter list.
                                                                                                                                                                              // This is a syntax error since ES2016.
                                                                                                                                                                              function foo(a = 1) {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              // We cannot write "use strict" directive in this function.
                                                                                                                                                                              // So we have to wrap this function with a function with "use strict" directive.
                                                                                                                                                                              function foo(a = 1) {
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "function" option:

                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                  }
                                                                                                                                                                              
                                                                                                                                                                                  function baz(a = 1) {
                                                                                                                                                                                  }
                                                                                                                                                                              }());
                                                                                                                                                                              
                                                                                                                                                                              var foo = (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              
                                                                                                                                                                                  return function foo(a = 1) {
                                                                                                                                                                                  };
                                                                                                                                                                              }());

                                                                                                                                                                              never

                                                                                                                                                                              Examples of incorrect code for this rule with the "never" option:

                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "never" option:

                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }

                                                                                                                                                                              earlier default (removed)

                                                                                                                                                                              (removed) The default option (that is, no string option specified) for this rule was removed in ESLint v1.0. The "function" option is most similar to the removed option.

                                                                                                                                                                              This option ensures that all functions are executed in strict mode. A strict mode directive must be present in global code or in every top-level function declaration or expression. It does not concern itself with unnecessary strict mode directives in nested functions that are already strict, nor with multiple strict mode directives at the same level.

                                                                                                                                                                              Examples of incorrect code for this rule with the earlier default option which has been removed:

                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              Examples of correct code for this rule with the earlier default option which has been removed:

                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              When Not To Use It

                                                                                                                                                                              In a codebase that has both strict and non-strict code, either turn this rule off, or selectively disable it where necessary. For example, functions referencing arguments.callee are invalid in strict mode. A full list of strict mode differences is available on MDN. Source: http://eslint.org/docs/rules/

                                                                                                                                                                              Wrap only the function expression in parens.
                                                                                                                                                                              Open

                                                                                                                                                                                  (function () {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              Require IIFEs to be Wrapped (wrap-iife)

                                                                                                                                                                              You can immediately invoke function expressions, but not function declarations. A common technique to create an immediately-invoked function expression (IIFE) is to wrap a function declaration in parentheses. The opening parentheses causes the contained function to be parsed as an expression, rather than a declaration.

                                                                                                                                                                              // function expression could be unwrapped
                                                                                                                                                                              var x = function () { return { y: 1 };}();
                                                                                                                                                                              
                                                                                                                                                                              // function declaration must be wrapped
                                                                                                                                                                              function () { /* side effects */ }(); // SyntaxError

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule requires all immediately-invoked function expressions to be wrapped in parentheses.

                                                                                                                                                                              Options

                                                                                                                                                                              This rule has two options, a string option and an object option.

                                                                                                                                                                              String option:

                                                                                                                                                                              • "outside" enforces always wrapping the call expression. The default is "outside".
                                                                                                                                                                              • "inside" enforces always wrapping the function expression.
                                                                                                                                                                              • "any" enforces always wrapping, but allows either style.

                                                                                                                                                                              Object option:

                                                                                                                                                                              • "functionPrototypeMethods": true additionally enforces wrapping function expressions invoked using .call and .apply. The default is false.

                                                                                                                                                                              outside

                                                                                                                                                                              Examples of incorrect code for the default "outside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "outside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              Examples of correct code for the default "outside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "outside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression

                                                                                                                                                                              inside

                                                                                                                                                                              Examples of incorrect code for the "inside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "inside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression

                                                                                                                                                                              Examples of correct code for the "inside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "inside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              any

                                                                                                                                                                              Examples of incorrect code for the "any" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "any"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped

                                                                                                                                                                              Examples of correct code for the "any" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "any"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              functionPrototypeMethods

                                                                                                                                                                              Examples of incorrect code for this rule with the "inside", { "functionPrototypeMethods": true } options:

                                                                                                                                                                              /* eslint wrap-iife: [2, "inside", { functionPrototypeMethods: true }] */
                                                                                                                                                                              
                                                                                                                                                                              var x = function(){ foo(); }()
                                                                                                                                                                              var x = (function(){ foo(); }())
                                                                                                                                                                              var x = function(){ foo(); }.call(bar)
                                                                                                                                                                              var x = (function(){ foo(); }.call(bar))

                                                                                                                                                                              Examples of correct code for this rule with the "inside", { "functionPrototypeMethods": true } options:

                                                                                                                                                                              /* eslint wrap-iife: [2, "inside", { functionPrototypeMethods: true }] */
                                                                                                                                                                              
                                                                                                                                                                              var x = (function(){ foo(); })()
                                                                                                                                                                              var x = (function(){ foo(); }).call(bar)

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

                                                                                                                                                                              Wrap only the function expression in parens.
                                                                                                                                                                              Open

                                                                                                                                                                                  (function () {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              Require IIFEs to be Wrapped (wrap-iife)

                                                                                                                                                                              You can immediately invoke function expressions, but not function declarations. A common technique to create an immediately-invoked function expression (IIFE) is to wrap a function declaration in parentheses. The opening parentheses causes the contained function to be parsed as an expression, rather than a declaration.

                                                                                                                                                                              // function expression could be unwrapped
                                                                                                                                                                              var x = function () { return { y: 1 };}();
                                                                                                                                                                              
                                                                                                                                                                              // function declaration must be wrapped
                                                                                                                                                                              function () { /* side effects */ }(); // SyntaxError

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule requires all immediately-invoked function expressions to be wrapped in parentheses.

                                                                                                                                                                              Options

                                                                                                                                                                              This rule has two options, a string option and an object option.

                                                                                                                                                                              String option:

                                                                                                                                                                              • "outside" enforces always wrapping the call expression. The default is "outside".
                                                                                                                                                                              • "inside" enforces always wrapping the function expression.
                                                                                                                                                                              • "any" enforces always wrapping, but allows either style.

                                                                                                                                                                              Object option:

                                                                                                                                                                              • "functionPrototypeMethods": true additionally enforces wrapping function expressions invoked using .call and .apply. The default is false.

                                                                                                                                                                              outside

                                                                                                                                                                              Examples of incorrect code for the default "outside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "outside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              Examples of correct code for the default "outside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "outside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression

                                                                                                                                                                              inside

                                                                                                                                                                              Examples of incorrect code for the "inside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "inside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression

                                                                                                                                                                              Examples of correct code for the "inside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "inside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              any

                                                                                                                                                                              Examples of incorrect code for the "any" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "any"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped

                                                                                                                                                                              Examples of correct code for the "any" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "any"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              functionPrototypeMethods

                                                                                                                                                                              Examples of incorrect code for this rule with the "inside", { "functionPrototypeMethods": true } options:

                                                                                                                                                                              /* eslint wrap-iife: [2, "inside", { functionPrototypeMethods: true }] */
                                                                                                                                                                              
                                                                                                                                                                              var x = function(){ foo(); }()
                                                                                                                                                                              var x = (function(){ foo(); }())
                                                                                                                                                                              var x = function(){ foo(); }.call(bar)
                                                                                                                                                                              var x = (function(){ foo(); }.call(bar))

                                                                                                                                                                              Examples of correct code for this rule with the "inside", { "functionPrototypeMethods": true } options:

                                                                                                                                                                              /* eslint wrap-iife: [2, "inside", { functionPrototypeMethods: true }] */
                                                                                                                                                                              
                                                                                                                                                                              var x = (function(){ foo(); })()
                                                                                                                                                                              var x = (function(){ foo(); }).call(bar)

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

                                                                                                                                                                              Wrap only the function expression in parens.
                                                                                                                                                                              Open

                                                                                                                                                                                  (function (root, factory) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              Require IIFEs to be Wrapped (wrap-iife)

                                                                                                                                                                              You can immediately invoke function expressions, but not function declarations. A common technique to create an immediately-invoked function expression (IIFE) is to wrap a function declaration in parentheses. The opening parentheses causes the contained function to be parsed as an expression, rather than a declaration.

                                                                                                                                                                              // function expression could be unwrapped
                                                                                                                                                                              var x = function () { return { y: 1 };}();
                                                                                                                                                                              
                                                                                                                                                                              // function declaration must be wrapped
                                                                                                                                                                              function () { /* side effects */ }(); // SyntaxError

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule requires all immediately-invoked function expressions to be wrapped in parentheses.

                                                                                                                                                                              Options

                                                                                                                                                                              This rule has two options, a string option and an object option.

                                                                                                                                                                              String option:

                                                                                                                                                                              • "outside" enforces always wrapping the call expression. The default is "outside".
                                                                                                                                                                              • "inside" enforces always wrapping the function expression.
                                                                                                                                                                              • "any" enforces always wrapping, but allows either style.

                                                                                                                                                                              Object option:

                                                                                                                                                                              • "functionPrototypeMethods": true additionally enforces wrapping function expressions invoked using .call and .apply. The default is false.

                                                                                                                                                                              outside

                                                                                                                                                                              Examples of incorrect code for the default "outside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "outside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              Examples of correct code for the default "outside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "outside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression

                                                                                                                                                                              inside

                                                                                                                                                                              Examples of incorrect code for the "inside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "inside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression

                                                                                                                                                                              Examples of correct code for the "inside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "inside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              any

                                                                                                                                                                              Examples of incorrect code for the "any" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "any"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped

                                                                                                                                                                              Examples of correct code for the "any" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "any"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              functionPrototypeMethods

                                                                                                                                                                              Examples of incorrect code for this rule with the "inside", { "functionPrototypeMethods": true } options:

                                                                                                                                                                              /* eslint wrap-iife: [2, "inside", { functionPrototypeMethods: true }] */
                                                                                                                                                                              
                                                                                                                                                                              var x = function(){ foo(); }()
                                                                                                                                                                              var x = (function(){ foo(); }())
                                                                                                                                                                              var x = function(){ foo(); }.call(bar)
                                                                                                                                                                              var x = (function(){ foo(); }.call(bar))

                                                                                                                                                                              Examples of correct code for this rule with the "inside", { "functionPrototypeMethods": true } options:

                                                                                                                                                                              /* eslint wrap-iife: [2, "inside", { functionPrototypeMethods: true }] */
                                                                                                                                                                              
                                                                                                                                                                              var x = (function(){ foo(); })()
                                                                                                                                                                              var x = (function(){ foo(); }).call(bar)

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

                                                                                                                                                                              Use the global form of 'use strict'.
                                                                                                                                                                              Open

                                                                                                                                                                                    'use strict';
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              require or disallow strict mode directives (strict)

                                                                                                                                                                              A strict mode directive is a "use strict" literal at the beginning of a script or function body. It enables strict mode semantics.

                                                                                                                                                                              When a directive occurs in global scope, strict mode applies to the entire script:

                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              // strict mode
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  // strict mode
                                                                                                                                                                              }

                                                                                                                                                                              When a directive occurs at the beginning of a function body, strict mode applies only to that function, including all contained functions:

                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  // strict mode
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              function foo2() {
                                                                                                                                                                                  // not strict mode
                                                                                                                                                                              };
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      // strict mode
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              In the CommonJS module system, a hidden function wraps each module and limits the scope of a "global" strict mode directive.

                                                                                                                                                                              In ECMAScript modules, which always have strict mode semantics, the directives are unnecessary.

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule requires or disallows strict mode directives.

                                                                                                                                                                              This rule disallows strict mode directives, no matter which option is specified, if ESLint configuration specifies either of the following as [parser options](../user-guide/configuring#specifying-parser-options):

                                                                                                                                                                              • "sourceType": "module" that is, files are ECMAScript modules
                                                                                                                                                                              • "impliedStrict": true property in the ecmaFeatures object

                                                                                                                                                                              This rule disallows strict mode directives, no matter which option is specified, in functions with non-simple parameter lists (for example, parameter lists with default parameter values) because that is a syntax error in ECMAScript 2016 and later. See the examples of the function option.

                                                                                                                                                                              Options

                                                                                                                                                                              This rule has a string option:

                                                                                                                                                                              • "safe" (default) corresponds either of the following options:
                                                                                                                                                                                • "global" if ESLint considers a file to be a CommonJS module
                                                                                                                                                                                • "function" otherwise
                                                                                                                                                                              • "global" requires one strict mode directive in the global scope (and disallows any other strict mode directives)
                                                                                                                                                                              • "function" requires one strict mode directive in each top-level function declaration or expression (and disallows any other strict mode directives)
                                                                                                                                                                              • "never" disallows strict mode directives

                                                                                                                                                                              safe

                                                                                                                                                                              The "safe" option corresponds to the "global" option if ESLint considers a file to be a Node.js or CommonJS module because the configuration specifies either of the following:

                                                                                                                                                                              • node or commonjs [environments](../user-guide/configuring#specifying-environments)
                                                                                                                                                                              • "globalReturn": true property in the ecmaFeatures object of [parser options](../user-guide/configuring#specifying-parser-options)

                                                                                                                                                                              Otherwise the "safe" option corresponds to the "function" option.

                                                                                                                                                                              global

                                                                                                                                                                              Examples of incorrect code for this rule with the "global" option:

                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "global" option:

                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }

                                                                                                                                                                              function

                                                                                                                                                                              This option ensures that all function bodies are strict mode code, while global code is not. Particularly if a build step concatenates multiple scripts, a strict mode directive in global code of one script could unintentionally enable strict mode in another script that was not intended to be strict code.

                                                                                                                                                                              Examples of incorrect code for this rule with the "function" option:

                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());
                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              /*eslint-env es6*/
                                                                                                                                                                              
                                                                                                                                                                              // Illegal "use strict" directive in function with non-simple parameter list.
                                                                                                                                                                              // This is a syntax error since ES2016.
                                                                                                                                                                              function foo(a = 1) {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              // We cannot write "use strict" directive in this function.
                                                                                                                                                                              // So we have to wrap this function with a function with "use strict" directive.
                                                                                                                                                                              function foo(a = 1) {
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "function" option:

                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                  }
                                                                                                                                                                              
                                                                                                                                                                                  function baz(a = 1) {
                                                                                                                                                                                  }
                                                                                                                                                                              }());
                                                                                                                                                                              
                                                                                                                                                                              var foo = (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              
                                                                                                                                                                                  return function foo(a = 1) {
                                                                                                                                                                                  };
                                                                                                                                                                              }());

                                                                                                                                                                              never

                                                                                                                                                                              Examples of incorrect code for this rule with the "never" option:

                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "never" option:

                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }

                                                                                                                                                                              earlier default (removed)

                                                                                                                                                                              (removed) The default option (that is, no string option specified) for this rule was removed in ESLint v1.0. The "function" option is most similar to the removed option.

                                                                                                                                                                              This option ensures that all functions are executed in strict mode. A strict mode directive must be present in global code or in every top-level function declaration or expression. It does not concern itself with unnecessary strict mode directives in nested functions that are already strict, nor with multiple strict mode directives at the same level.

                                                                                                                                                                              Examples of incorrect code for this rule with the earlier default option which has been removed:

                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              Examples of correct code for this rule with the earlier default option which has been removed:

                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              When Not To Use It

                                                                                                                                                                              In a codebase that has both strict and non-strict code, either turn this rule off, or selectively disable it where necessary. For example, functions referencing arguments.callee are invalid in strict mode. A full list of strict mode differences is available on MDN. Source: http://eslint.org/docs/rules/

                                                                                                                                                                              Wrap only the function expression in parens.
                                                                                                                                                                              Open

                                                                                                                                                                                  (function () {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              Require IIFEs to be Wrapped (wrap-iife)

                                                                                                                                                                              You can immediately invoke function expressions, but not function declarations. A common technique to create an immediately-invoked function expression (IIFE) is to wrap a function declaration in parentheses. The opening parentheses causes the contained function to be parsed as an expression, rather than a declaration.

                                                                                                                                                                              // function expression could be unwrapped
                                                                                                                                                                              var x = function () { return { y: 1 };}();
                                                                                                                                                                              
                                                                                                                                                                              // function declaration must be wrapped
                                                                                                                                                                              function () { /* side effects */ }(); // SyntaxError

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule requires all immediately-invoked function expressions to be wrapped in parentheses.

                                                                                                                                                                              Options

                                                                                                                                                                              This rule has two options, a string option and an object option.

                                                                                                                                                                              String option:

                                                                                                                                                                              • "outside" enforces always wrapping the call expression. The default is "outside".
                                                                                                                                                                              • "inside" enforces always wrapping the function expression.
                                                                                                                                                                              • "any" enforces always wrapping, but allows either style.

                                                                                                                                                                              Object option:

                                                                                                                                                                              • "functionPrototypeMethods": true additionally enforces wrapping function expressions invoked using .call and .apply. The default is false.

                                                                                                                                                                              outside

                                                                                                                                                                              Examples of incorrect code for the default "outside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "outside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              Examples of correct code for the default "outside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "outside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression

                                                                                                                                                                              inside

                                                                                                                                                                              Examples of incorrect code for the "inside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "inside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression

                                                                                                                                                                              Examples of correct code for the "inside" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "inside"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              any

                                                                                                                                                                              Examples of incorrect code for the "any" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "any"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = function () { return { y: 1 };}(); // unwrapped

                                                                                                                                                                              Examples of correct code for the "any" option:

                                                                                                                                                                              /*eslint wrap-iife: ["error", "any"]*/
                                                                                                                                                                              
                                                                                                                                                                              var x = (function () { return { y: 1 };}()); // wrapped call expression
                                                                                                                                                                              var x = (function () { return { y: 1 };})(); // wrapped function expression

                                                                                                                                                                              functionPrototypeMethods

                                                                                                                                                                              Examples of incorrect code for this rule with the "inside", { "functionPrototypeMethods": true } options:

                                                                                                                                                                              /* eslint wrap-iife: [2, "inside", { functionPrototypeMethods: true }] */
                                                                                                                                                                              
                                                                                                                                                                              var x = function(){ foo(); }()
                                                                                                                                                                              var x = (function(){ foo(); }())
                                                                                                                                                                              var x = function(){ foo(); }.call(bar)
                                                                                                                                                                              var x = (function(){ foo(); }.call(bar))

                                                                                                                                                                              Examples of correct code for this rule with the "inside", { "functionPrototypeMethods": true } options:

                                                                                                                                                                              /* eslint wrap-iife: [2, "inside", { functionPrototypeMethods: true }] */
                                                                                                                                                                              
                                                                                                                                                                              var x = (function(){ foo(); })()
                                                                                                                                                                              var x = (function(){ foo(); }).call(bar)

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

                                                                                                                                                                              Use the global form of 'use strict'.
                                                                                                                                                                              Open

                                                                                                                                                                                    'use strict';
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              require or disallow strict mode directives (strict)

                                                                                                                                                                              A strict mode directive is a "use strict" literal at the beginning of a script or function body. It enables strict mode semantics.

                                                                                                                                                                              When a directive occurs in global scope, strict mode applies to the entire script:

                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              // strict mode
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  // strict mode
                                                                                                                                                                              }

                                                                                                                                                                              When a directive occurs at the beginning of a function body, strict mode applies only to that function, including all contained functions:

                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  // strict mode
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              function foo2() {
                                                                                                                                                                                  // not strict mode
                                                                                                                                                                              };
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      // strict mode
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              In the CommonJS module system, a hidden function wraps each module and limits the scope of a "global" strict mode directive.

                                                                                                                                                                              In ECMAScript modules, which always have strict mode semantics, the directives are unnecessary.

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule requires or disallows strict mode directives.

                                                                                                                                                                              This rule disallows strict mode directives, no matter which option is specified, if ESLint configuration specifies either of the following as [parser options](../user-guide/configuring#specifying-parser-options):

                                                                                                                                                                              • "sourceType": "module" that is, files are ECMAScript modules
                                                                                                                                                                              • "impliedStrict": true property in the ecmaFeatures object

                                                                                                                                                                              This rule disallows strict mode directives, no matter which option is specified, in functions with non-simple parameter lists (for example, parameter lists with default parameter values) because that is a syntax error in ECMAScript 2016 and later. See the examples of the function option.

                                                                                                                                                                              Options

                                                                                                                                                                              This rule has a string option:

                                                                                                                                                                              • "safe" (default) corresponds either of the following options:
                                                                                                                                                                                • "global" if ESLint considers a file to be a CommonJS module
                                                                                                                                                                                • "function" otherwise
                                                                                                                                                                              • "global" requires one strict mode directive in the global scope (and disallows any other strict mode directives)
                                                                                                                                                                              • "function" requires one strict mode directive in each top-level function declaration or expression (and disallows any other strict mode directives)
                                                                                                                                                                              • "never" disallows strict mode directives

                                                                                                                                                                              safe

                                                                                                                                                                              The "safe" option corresponds to the "global" option if ESLint considers a file to be a Node.js or CommonJS module because the configuration specifies either of the following:

                                                                                                                                                                              • node or commonjs [environments](../user-guide/configuring#specifying-environments)
                                                                                                                                                                              • "globalReturn": true property in the ecmaFeatures object of [parser options](../user-guide/configuring#specifying-parser-options)

                                                                                                                                                                              Otherwise the "safe" option corresponds to the "function" option.

                                                                                                                                                                              global

                                                                                                                                                                              Examples of incorrect code for this rule with the "global" option:

                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "global" option:

                                                                                                                                                                              /*eslint strict: ["error", "global"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }

                                                                                                                                                                              function

                                                                                                                                                                              This option ensures that all function bodies are strict mode code, while global code is not. Particularly if a build step concatenates multiple scripts, a strict mode directive in global code of one script could unintentionally enable strict mode in another script that was not intended to be strict code.

                                                                                                                                                                              Examples of incorrect code for this rule with the "function" option:

                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());
                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              /*eslint-env es6*/
                                                                                                                                                                              
                                                                                                                                                                              // Illegal "use strict" directive in function with non-simple parameter list.
                                                                                                                                                                              // This is a syntax error since ES2016.
                                                                                                                                                                              function foo(a = 1) {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              // We cannot write "use strict" directive in this function.
                                                                                                                                                                              // So we have to wrap this function with a function with "use strict" directive.
                                                                                                                                                                              function foo(a = 1) {
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "function" option:

                                                                                                                                                                              /*eslint strict: ["error", "function"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                  }
                                                                                                                                                                              
                                                                                                                                                                                  function baz(a = 1) {
                                                                                                                                                                                  }
                                                                                                                                                                              }());
                                                                                                                                                                              
                                                                                                                                                                              var foo = (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              
                                                                                                                                                                                  return function foo(a = 1) {
                                                                                                                                                                                  };
                                                                                                                                                                              }());

                                                                                                                                                                              never

                                                                                                                                                                              Examples of incorrect code for this rule with the "never" option:

                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }

                                                                                                                                                                              Examples of correct code for this rule with the "never" option:

                                                                                                                                                                              /*eslint strict: ["error", "never"]*/
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }

                                                                                                                                                                              earlier default (removed)

                                                                                                                                                                              (removed) The default option (that is, no string option specified) for this rule was removed in ESLint v1.0. The "function" option is most similar to the removed option.

                                                                                                                                                                              This option ensures that all functions are executed in strict mode. A strict mode directive must be present in global code or in every top-level function declaration or expression. It does not concern itself with unnecessary strict mode directives in nested functions that are already strict, nor with multiple strict mode directives at the same level.

                                                                                                                                                                              Examples of incorrect code for this rule with the earlier default option which has been removed:

                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              Examples of correct code for this rule with the earlier default option which has been removed:

                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              "use strict";
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              function foo() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                              }
                                                                                                                                                                              // "strict": "error"
                                                                                                                                                                              
                                                                                                                                                                              (function() {
                                                                                                                                                                                  "use strict";
                                                                                                                                                                                  function bar() {
                                                                                                                                                                                      "use strict";
                                                                                                                                                                                  }
                                                                                                                                                                              }());

                                                                                                                                                                              When Not To Use It

                                                                                                                                                                              In a codebase that has both strict and non-strict code, either turn this rule off, or selectively disable it where necessary. For example, functions referencing arguments.callee are invalid in strict mode. A full list of strict mode differences is available on MDN. Source: http://eslint.org/docs/rules/

                                                                                                                                                                              Expected 'undefined' and instead saw 'void'.
                                                                                                                                                                              Open

                                                                                                                                                                                  return {}.hasOwnProperty.call(require.modules, file) ? require.modules[file] : void 0;
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js by eslint

                                                                                                                                                                              Disallow use of the void operator. (no-void)

                                                                                                                                                                              The void operator takes an operand and returns undefined: void expression will evaluate expression and return undefined. It can be used to ignore any side effects expression may produce:

                                                                                                                                                                              The common case of using void operator is to get a "pure" undefined value as prior to ES5 the undefined variable was mutable:

                                                                                                                                                                              // will always return undefined
                                                                                                                                                                              (function(){
                                                                                                                                                                                  return void 0;
                                                                                                                                                                              })();
                                                                                                                                                                              
                                                                                                                                                                              // will return 1 in ES3 and undefined in ES5+
                                                                                                                                                                              (function(){
                                                                                                                                                                                  undefined = 1;
                                                                                                                                                                                  return undefined;
                                                                                                                                                                              })();
                                                                                                                                                                              
                                                                                                                                                                              // will throw TypeError in ES5+
                                                                                                                                                                              (function(){
                                                                                                                                                                                  'use strict';
                                                                                                                                                                                  undefined = 1;
                                                                                                                                                                              })();

                                                                                                                                                                              Another common case is to minify code as void 0 is shorter than undefined:

                                                                                                                                                                              foo = void 0;
                                                                                                                                                                              foo = undefined;

                                                                                                                                                                              When used with IIFE (immediately-invoked function expression), void can be used to force the function keyword to be treated as an expression instead of a declaration:

                                                                                                                                                                              var foo = 1;
                                                                                                                                                                              void function(){ foo = 1; }() // will assign foo a value of 1
                                                                                                                                                                              +function(){ foo = 1; }() // same as above
                                                                                                                                                                              function(){ foo = 1; }() // will throw SyntaxError

                                                                                                                                                                              Some code styles prohibit void operator, marking it as non-obvious and hard to read.

                                                                                                                                                                              Rule Details

                                                                                                                                                                              This rule aims to eliminate use of void operator.

                                                                                                                                                                              Examples of incorrect code for this rule:

                                                                                                                                                                              /*eslint no-void: "error"*/
                                                                                                                                                                              
                                                                                                                                                                              void foo
                                                                                                                                                                              
                                                                                                                                                                              var foo = void bar();

                                                                                                                                                                              When Not To Use It

                                                                                                                                                                              If you intentionally use the void operator then you can disable this rule.

                                                                                                                                                                              Further Reading

                                                                                                                                                                              Related Rules

                                                                                                                                                                              Similar blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                              Open

                                                                                                                                                                                      traverse(tree, {
                                                                                                                                                                                        leave: function (node) {
                                                                                                                                                                                          var comment;
                                                                                                                                                                                          while (cursor < comments.length) {
                                                                                                                                                                                            comment = comments[cursor];
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 1 day to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 4891..4916

                                                                                                                                                                              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 229.

                                                                                                                                                                              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

                                                                                                                                                                                      traverse(tree, {
                                                                                                                                                                                        enter: function (node) {
                                                                                                                                                                                          var comment;
                                                                                                                                                                                          while (cursor < comments.length) {
                                                                                                                                                                                            comment = comments[cursor];
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 1 day to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 4918..4943

                                                                                                                                                                              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 229.

                                                                                                                                                                              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

                                                                                                                                                                                      ClassExpression: function (expr, precedence, flags) {
                                                                                                                                                                                        var result, fragment;
                                                                                                                                                                                        result = ['class'];
                                                                                                                                                                                        if (expr.id) {
                                                                                                                                                                                          result = join(result, this.generateExpression(expr.id, Precedence.Sequence, E_TTT));
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 5 hrs to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 979..992

                                                                                                                                                                              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 153.

                                                                                                                                                                              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

                                                                                                                                                                                      ClassDeclaration: function (stmt, flags) {
                                                                                                                                                                                        var result, fragment;
                                                                                                                                                                                        result = ['class'];
                                                                                                                                                                                        if (stmt.id) {
                                                                                                                                                                                          result = join(result, this.generateExpression(stmt.id, Precedence.Sequence, E_TTT));
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 5 hrs to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 1759..1772

                                                                                                                                                                              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 153.

                                                                                                                                                                              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 (stmt.handlers) {
                                                                                                                                                                                          for (i = 0, iz = stmt.handlers.length; i < iz; ++i) {
                                                                                                                                                                                            result = join(result, this.generateStatement(stmt.handlers[i], S_TFFF));
                                                                                                                                                                                            if (stmt.finalizer || i + 1 !== iz) {
                                                                                                                                                                                              result = this.maybeBlockSuffix(stmt.handlers[i].body, result);
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 4 hrs to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 1276..1288

                                                                                                                                                                              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 120.

                                                                                                                                                                              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 (isArray(stmt.handler)) {
                                                                                                                                                                                              for (i = 0, iz = stmt.handler.length; i < iz; ++i) {
                                                                                                                                                                                                result = join(result, this.generateStatement(stmt.handler[i], S_TFFF));
                                                                                                                                                                                                if (stmt.finalizer || i + 1 !== iz) {
                                                                                                                                                                                                  result = this.maybeBlockSuffix(stmt.handler[i].body, result);
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 4 hrs to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 1260..1290

                                                                                                                                                                              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 120.

                                                                                                                                                                              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

                                                                                                                                                                                    Precedence = {
                                                                                                                                                                                      Sequence: 0,
                                                                                                                                                                                      Yield: 1,
                                                                                                                                                                                      Await: 1,
                                                                                                                                                                                      Assignment: 1,
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 4 hrs to fix
                                                                                                                                                                              lib/self-explain.js on lines 85..109

                                                                                                                                                                              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 117.

                                                                                                                                                                              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

                                                                                                                                                                                              for (i = 0, iz = stmt.specifiers.length; i < iz; ++i) {
                                                                                                                                                                                                result.push(indent);
                                                                                                                                                                                                result.push(that.generateExpression(stmt.specifiers[i], Precedence.Sequence, E_TTT));
                                                                                                                                                                                                if (i + 1 < iz) {
                                                                                                                                                                                                  result.push(',' + newline);
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 3 hrs to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 1849..1855

                                                                                                                                                                              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 110.

                                                                                                                                                                              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

                                                                                                                                                                                            for (i = 1, iz = expr.properties.length; i < iz; ++i) {
                                                                                                                                                                                              result.push(indent);
                                                                                                                                                                                              result.push(that.generateExpression(expr.properties[i], Precedence.Sequence, E_TTT));
                                                                                                                                                                                              if (i + 1 < iz) {
                                                                                                                                                                                                result.push(',' + newline);
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 3 hrs to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 1058..1064

                                                                                                                                                                              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 110.

                                                                                                                                                                              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

                                                                                                                                                                                      WhileStatement: function (stmt, flags) {
                                                                                                                                                                                        var result, that = this;
                                                                                                                                                                                        withIndent(function () {
                                                                                                                                                                                          result = [
                                                                                                                                                                                            'while' + space + '(',
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 3 hrs to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 1505..1516

                                                                                                                                                                              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 108.

                                                                                                                                                                              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

                                                                                                                                                                                      WithStatement: function (stmt, flags) {
                                                                                                                                                                                        var result, that = this;
                                                                                                                                                                                        withIndent(function () {
                                                                                                                                                                                          result = [
                                                                                                                                                                                            'with' + space + '(',
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 3 hrs to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 1493..1504

                                                                                                                                                                              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 108.

                                                                                                                                                                              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

                                                                                                                                                                                      ExportSpecifier: function (expr, precedence, flags) {
                                                                                                                                                                                        var local = expr.local;
                                                                                                                                                                                        var result = [local.name];
                                                                                                                                                                                        var exported = expr.exported;
                                                                                                                                                                                        if (exported && exported.name !== local.name) {
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 3 hrs to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 1929..1937

                                                                                                                                                                              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 107.

                                                                                                                                                                              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

                                                                                                                                                                                      ImportSpecifier: function (expr, precedence, flags) {
                                                                                                                                                                                        var imported = expr.imported;
                                                                                                                                                                                        var result = [imported.name];
                                                                                                                                                                                        var local = expr.local;
                                                                                                                                                                                        if (local && local.name !== imported.name) {
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 3 hrs to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 1938..1946

                                                                                                                                                                              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 107.

                                                                                                                                                                              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 (i > 0) {
                                                                                                                                                                                                if (!stmt.body[i - 1].trailingComments && !stmt.body[i].leadingComments) {
                                                                                                                                                                                                  generateBlankLines(stmt.body[i - 1].range[1], stmt.body[i].range[0], result);
                                                                                                                                                                                                }
                                                                                                                                                                                              }
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 3 hrs to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 1448..1452

                                                                                                                                                                              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 99.

                                                                                                                                                                              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 (i > 0) {
                                                                                                                                                                                              if (!stmt.body[i - 1].trailingComments && !stmt.body[i].leadingComments) {
                                                                                                                                                                                                generateBlankLines(stmt.body[i - 1].range[1], stmt.body[i].range[0], result);
                                                                                                                                                                                              }
                                                                                                                                                                                            }
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 3 hrs to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 909..913

                                                                                                                                                                              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 99.

                                                                                                                                                                              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

                                                                                                                                                                                    Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {
                                                                                                                                                                                      get: function () {
                                                                                                                                                                                        if (!this.__originalMappings) {
                                                                                                                                                                                          this.__generatedMappings = [];
                                                                                                                                                                                          this.__originalMappings = [];
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 2 hrs to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 3357..3366

                                                                                                                                                                              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 92.

                                                                                                                                                                              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

                                                                                                                                                                                    Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {
                                                                                                                                                                                      get: function () {
                                                                                                                                                                                        if (!this.__generatedMappings) {
                                                                                                                                                                                          this.__generatedMappings = [];
                                                                                                                                                                                          this.__originalMappings = [];
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 2 hrs to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 3368..3377

                                                                                                                                                                              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 92.

                                                                                                                                                                              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

                                                                                                                                                                                            } else if (sourceMappingActive) {
                                                                                                                                                                                              map.addMapping({
                                                                                                                                                                                                source: original.source,
                                                                                                                                                                                                original: {
                                                                                                                                                                                                  line: original.line,
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 2 hrs to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 2449..2462

                                                                                                                                                                              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 82.

                                                                                                                                                                              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 (lastOriginalSource !== original.source || lastOriginalLine !== original.line || lastOriginalColumn !== original.column || lastOriginalName !== original.name) {
                                                                                                                                                                                            map.addMapping({
                                                                                                                                                                                              source: original.source,
                                                                                                                                                                                              original: {
                                                                                                                                                                                                line: original.line,
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 2 hrs to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 2485..2498

                                                                                                                                                                              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 82.

                                                                                                                                                                              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 (stmt.test) {
                                                                                                                                                                                            result.push(space);
                                                                                                                                                                                            result.push(that.generateExpression(stmt.test, Precedence.Sequence, E_TTT));
                                                                                                                                                                                            result.push(';');
                                                                                                                                                                                          } else {
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 2 hrs to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 1410..1416

                                                                                                                                                                              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 77.

                                                                                                                                                                              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 (stmt.update) {
                                                                                                                                                                                            result.push(space);
                                                                                                                                                                                            result.push(that.generateExpression(stmt.update, Precedence.Sequence, E_TTT));
                                                                                                                                                                                            result.push(')');
                                                                                                                                                                                          } else {
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 2 hrs to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 1403..1409

                                                                                                                                                                              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 77.

                                                                                                                                                                              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 (count > 0) {
                                                                                                                                                                                            result.push(stringRepeat('\n', count));
                                                                                                                                                                                            result.push(addIndent(generateComment(comment)));
                                                                                                                                                                                          } else {
                                                                                                                                                                                            result.push(prefix);
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 2 hrs to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 615..621

                                                                                                                                                                              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 76.

                                                                                                                                                                              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 (preserveBlankLines) {
                                                                                                                                                                                            if (i === iz - 1) {
                                                                                                                                                                                              if (!stmt.body[i].trailingComments) {
                                                                                                                                                                                                generateBlankLines(stmt.body[i].range[1], stmt.range[1], result);
                                                                                                                                                                                              }
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 2 hrs to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 933..939

                                                                                                                                                                              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 76.

                                                                                                                                                                              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 (preserveBlankLines) {
                                                                                                                                                                                              if (i === iz - 1) {
                                                                                                                                                                                                if (!stmt.body[i].trailingComments) {
                                                                                                                                                                                                  generateBlankLines(stmt.body[i].range[1], stmt.range[1], result);
                                                                                                                                                                                                }
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 2 hrs to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 1465..1471

                                                                                                                                                                              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 76.

                                                                                                                                                                              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 (count > 0) {
                                                                                                                                                                                            result.push(stringRepeat('\n', count));
                                                                                                                                                                                            result.push(addIndent(generateComment(comment)));
                                                                                                                                                                                          } else {
                                                                                                                                                                                            result.push(prefix);
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 2 hrs to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 567..573

                                                                                                                                                                              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 76.

                                                                                                                                                                              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

                                                                                                                                                                                      return section.consumer.originalPositionFor({
                                                                                                                                                                                        line: needle.generatedLine - (section.generatedOffset.generatedLine - 1),
                                                                                                                                                                                        column: needle.generatedColumn - (section.generatedOffset.generatedLine === needle.generatedLine ? section.generatedOffset.generatedColumn - 1 : 0)
                                                                                                                                                                                      });
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 1 hr to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 3797..3800

                                                                                                                                                                              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 74.

                                                                                                                                                                              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

                                                                                                                                                                                          var ret = {
                                                                                                                                                                                              line: generatedPosition.line + (section.generatedOffset.generatedLine - 1),
                                                                                                                                                                                              column: generatedPosition.column + (section.generatedOffset.generatedLine === generatedPosition.line ? section.generatedOffset.generatedColumn - 1 : 0)
                                                                                                                                                                                            };
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 1 hr to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 3770..3773

                                                                                                                                                                              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 74.

                                                                                                                                                                              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

                                                                                                                                                                                        for (i = 0, iz = expr['arguments'].length; i < iz; ++i) {
                                                                                                                                                                                          result.push(this.generateExpression(expr['arguments'][i], Precedence.Assignment, E_TTT));
                                                                                                                                                                                          if (i + 1 < iz) {
                                                                                                                                                                                            result.push(',' + space);
                                                                                                                                                                                          }
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 1 hr to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 1615..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 67.

                                                                                                                                                                              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

                                                                                                                                                                                          for (i = 0, iz = length; i < iz; ++i) {
                                                                                                                                                                                            result.push(this.generateExpression(expr['arguments'][i], Precedence.Assignment, E_TTT));
                                                                                                                                                                                            if (i + 1 < iz) {
                                                                                                                                                                                              result.push(',' + space);
                                                                                                                                                                                            }
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 1 hr to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 1592..1597

                                                                                                                                                                              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 67.

                                                                                                                                                                              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

                                                                                                                                                                                      ContinueStatement: function (stmt, flags) {
                                                                                                                                                                                        if (stmt.label) {
                                                                                                                                                                                          return 'continue ' + stmt.label.name + this.semicolon(flags);
                                                                                                                                                                                        }
                                                                                                                                                                                        return 'continue' + this.semicolon(flags);
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 1 hr to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 945..950

                                                                                                                                                                              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 65.

                                                                                                                                                                              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

                                                                                                                                                                                      BreakStatement: function (stmt, flags) {
                                                                                                                                                                                        if (stmt.label) {
                                                                                                                                                                                          return 'break ' + stmt.label.name + this.semicolon(flags);
                                                                                                                                                                                        }
                                                                                                                                                                                        return 'break' + this.semicolon(flags);
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 1 hr to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 951..956

                                                                                                                                                                              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 65.

                                                                                                                                                                              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

                                                                                                                                                                                    module.exports = {
                                                                                                                                                                                      isKeywordES5: isKeywordES5,
                                                                                                                                                                                      isKeywordES6: isKeywordES6,
                                                                                                                                                                                      isReservedWordES5: isReservedWordES5,
                                                                                                                                                                                      isReservedWordES6: isReservedWordES6,
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 1 hr to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 4050..4060

                                                                                                                                                                              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 57.

                                                                                                                                                                              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

                                                                                                                                                                                    module.exports = {
                                                                                                                                                                                      isDecimalDigit: isDecimalDigit,
                                                                                                                                                                                      isHexDigit: isHexDigit,
                                                                                                                                                                                      isOctalDigit: isOctalDigit,
                                                                                                                                                                                      isWhiteSpace: isWhiteSpace,
                                                                                                                                                                              Severity: Major
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 1 hr to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 3963..3973

                                                                                                                                                                              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 57.

                                                                                                                                                                              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 ((leftCharCode === 43 || leftCharCode === 45) && leftCharCode === rightCharCode || esutils.code.isIdentifierPartES5(leftCharCode) && esutils.code.isIdentifierPartES5(rightCharCode)) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 55 mins to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 466..466

                                                                                                                                                                              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 53.

                                                                                                                                                                              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 ((leftCharCode === 43 || leftCharCode === 45) && leftCharCode === rightCharCode || esutils.code.isIdentifierPartES5(leftCharCode) && esutils.code.isIdentifierPartES5(rightCharCode) || leftCharCode === 47 && rightCharCode === 105) {
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 55 mins to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 1665..1665

                                                                                                                                                                              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 53.

                                                                                                                                                                              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

                                                                                                                                                                                      case 6:
                                                                                                                                                                                        return id === 'return' || id === 'typeof' || id === 'delete' || id === 'switch' || id === 'export' || id === 'import';
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 50 mins to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 3886..3887

                                                                                                                                                                              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 51.

                                                                                                                                                                              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

                                                                                                                                                                                      case 4:
                                                                                                                                                                                        return id === 'this' || id === 'else' || id === 'case' || id === 'void' || id === 'with' || id === 'enum';
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 50 mins to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 3890..3891

                                                                                                                                                                              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 51.

                                                                                                                                                                              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 (!candidates) {
                                                                                                                                                                                            if (this.__fallback) {
                                                                                                                                                                                              candidates = objectKeys(node);
                                                                                                                                                                                            } else {
                                                                                                                                                                                              throw new Error('Unknown node type ' + nodeType + '.');
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 45 mins to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 4800..4806

                                                                                                                                                                              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 50.

                                                                                                                                                                              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 (!candidates) {
                                                                                                                                                                                          if (this.__fallback) {
                                                                                                                                                                                            candidates = objectKeys(node);
                                                                                                                                                                                          } else {
                                                                                                                                                                                            throw new Error('Unknown node type ' + nodeType + '.');
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 45 mins to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 4692..4698

                                                                                                                                                                              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 50.

                                                                                                                                                                              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

                                                                                                                                                                                    exports.encode = function base64_encode(aNumber) {
                                                                                                                                                                                      if (aNumber in intToCharMap) {
                                                                                                                                                                                        return intToCharMap[aNumber];
                                                                                                                                                                                      }
                                                                                                                                                                                      throw new TypeError('Must be between 0 and 63: ' + aNumber);
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 40 mins to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 3324..3329

                                                                                                                                                                              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

                                                                                                                                                                                    exports.decode = function base64_decode(aChar) {
                                                                                                                                                                                      if (aChar in charToIntMap) {
                                                                                                                                                                                        return charToIntMap[aChar];
                                                                                                                                                                                      }
                                                                                                                                                                                      throw new TypeError('Not a valid base 64 digit: ' + aChar);
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 40 mins to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 3318..3323

                                                                                                                                                                              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

                                                                                                                                                                              Identical blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                              Open

                                                                                                                                                                                        return {
                                                                                                                                                                                          line: util.getArg(mapping, 'generatedLine', null),
                                                                                                                                                                                          column: util.getArg(mapping, 'generatedColumn', null),
                                                                                                                                                                                          lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
                                                                                                                                                                                        };
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 35 mins to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 3431..3435

                                                                                                                                                                              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

                                                                                                                                                                              Identical blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                              Open

                                                                                                                                                                                    if (!isArray) {
                                                                                                                                                                                      isArray = function isArray(array) {
                                                                                                                                                                                        return Object.prototype.toString.call(array) === '[object Array]';
                                                                                                                                                                                      };
                                                                                                                                                                                    }
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 35 mins to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 197..201

                                                                                                                                                                              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

                                                                                                                                                                              Identical blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                              Open

                                                                                                                                                                                          mappings.push({
                                                                                                                                                                                            line: util.getArg(mapping, 'generatedLine', null),
                                                                                                                                                                                            column: util.getArg(mapping, 'generatedColumn', null),
                                                                                                                                                                                            lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)
                                                                                                                                                                                          });
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 35 mins to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 3646..3650

                                                                                                                                                                              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

                                                                                                                                                                              Identical blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                              Open

                                                                                                                                                                                    if (!isArray) {
                                                                                                                                                                                      isArray = function isArray(array) {
                                                                                                                                                                                        return Object.prototype.toString.call(array) === '[object Array]';
                                                                                                                                                                                      };
                                                                                                                                                                                    }
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 35 mins to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 4195..4199

                                                                                                                                                                              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

                                                                                                                                                                              Identical blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                              Open

                                                                                                                                                                                          return code === 40 || esutils.code.isWhiteSpace(code) || code === 42 || esutils.code.isLineTerminator(code);
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 35 mins to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 1108..1108

                                                                                                                                                                              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

                                                                                                                                                                              Identical blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                              Open

                                                                                                                                                                                          return code === 40 || esutils.code.isWhiteSpace(code) || code === 42 || esutils.code.isLineTerminator(code);
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 35 mins to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 1130..1130

                                                                                                                                                                              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

                                                                                                                                                                              Identical blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                              Open

                                                                                                                                                                                        result = join(result, [
                                                                                                                                                                                          'from' + space,
                                                                                                                                                                                          this.generateExpression(stmt.source, Precedence.Sequence, E_TTT),
                                                                                                                                                                                          this.semicolon(flags)
                                                                                                                                                                                        ]);
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 35 mins to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 1072..1076

                                                                                                                                                                              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

                                                                                                                                                                              Identical blocks of code found in 2 locations. Consider refactoring.
                                                                                                                                                                              Open

                                                                                                                                                                                            result = join(result, [
                                                                                                                                                                                              'from' + space,
                                                                                                                                                                                              this.generateExpression(stmt.source, Precedence.Sequence, E_TTT),
                                                                                                                                                                                              this.semicolon(flags)
                                                                                                                                                                                            ]);
                                                                                                                                                                              Severity: Minor
                                                                                                                                                                              Found in dist/escodegen.browser.js and 1 other location - About 35 mins to fix
                                                                                                                                                                              dist/escodegen.browser.js on lines 1195..1199

                                                                                                                                                                              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