Ikagaka/named-kernel-manager.js

View on GitHub
lib/named-kernel-manager-ghost-module.js

Summary

Maintainability
F
1 wk
Test Coverage

Function NamedKernelManagerGhostModule has a Cognitive Complexity of 176 (exceeds 5 allowed). Consider refactoring.
Open

var NamedKernelManagerGhostModule = exports.NamedKernelManagerGhostModule = function () {
  function NamedKernelManagerGhostModule() {
    (0, _classCallCheck3.default)(this, NamedKernelManagerGhostModule);
  }

Severity: Minor
Found in lib/named-kernel-manager-ghost-module.js - About 3 days to fix

Cognitive Complexity

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

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

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

Further reading

Function NamedKernelManagerGhostModule has 452 lines of code (exceeds 25 allowed). Consider refactoring.
Open

var NamedKernelManagerGhostModule = exports.NamedKernelManagerGhostModule = function () {
  function NamedKernelManagerGhostModule() {
    (0, _classCallCheck3.default)(this, NamedKernelManagerGhostModule);
  }

Severity: Major
Found in lib/named-kernel-manager-ghost-module.js - About 2 days to fix

    File named-kernel-manager-ghost-module.js has 475 lines of code (exceeds 250 allowed). Consider refactoring.
    Open

    /* (C) 2016 Narazaka : Licensed under The MIT License - https://narazaka.net/license/MIT?2016 */
    'use strict';
    
    Object.defineProperty(exports, "__esModule", {
      value: true
    Severity: Minor
    Found in lib/named-kernel-manager-ghost-module.js - About 7 hrs to fix

      Function '_callee11$' has a complexity of 28.
      Open

              return _regenerator2.default.wrap(function _callee11$(_context11) {

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

          value: function () {
            var _ref13 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee11(target) {
              var from = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];
              var nanikaStorage, nar, dirpath, sakuraname, install_results, ghost_result, balloon_result, profile;
              return _regenerator2.default.wrap(function _callee11$(_context11) {
      Severity: Major
      Found in lib/named-kernel-manager-ghost-module.js - About 3 hrs to fix

        Function _callee11 has 92 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

              var _ref13 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee11(target) {
                var from = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];
                var nanikaStorage, nar, dirpath, sakuraname, install_results, ghost_result, balloon_result, profile;
                return _regenerator2.default.wrap(function _callee11$(_context11) {
                  while (1) {
        Severity: Major
        Found in lib/named-kernel-manager-ghost-module.js - About 3 hrs to fix

          Function _callee11$ has 88 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

                  return _regenerator2.default.wrap(function _callee11$(_context11) {
                    while (1) {
                      switch (_context11.prev = _context11.next) {
                        case 0:
                          nanikaStorage = this.components.NanikaStorage;
          Severity: Major
          Found in lib/named-kernel-manager-ghost-module.js - About 3 hrs to fix

            Function '_callee11$' has too many statements (15). Maximum allowed is 10.
            Open

                    return _regenerator2.default.wrap(function _callee11$(_context11) {

            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 '_callee$' has a complexity of 8.
            Open

                    return _regenerator2.default.wrap(function _callee$(_context) {

            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 '_callee2$' has a complexity of 8.
            Open

                    return _regenerator2.default.wrap(function _callee2$(_context2) {

            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 '_callee3$' has a complexity of 7.
            Open

                    return _regenerator2.default.wrap(function _callee3$(_context3) {

            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 '_callee6$' has a complexity of 7.
            Open

                    return _regenerator2.default.wrap(function _callee6$(_context6) {

            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 '_callee7$' has a complexity of 7.
            Open

                    return _regenerator2.default.wrap(function _callee7$(_context7) {

            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 '_callee9$' has a complexity of 7.
            Open

                    return _regenerator2.default.wrap(function _callee9$(_context9) {

            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 '_callee5$' has a complexity of 6.
            Open

                    return _regenerator2.default.wrap(function _callee5$(_context5) {

            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 '_callee8$' has a complexity of 6.
            Open

                    return _regenerator2.default.wrap(function _callee8$(_context8) {

            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 '_callee10$' has a complexity of 6.
            Open

                    return _regenerator2.default.wrap(function _callee10$(_context10) {

            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 '_callee4$' has a complexity of 5.
            Open

                    return _regenerator2.default.wrap(function _callee4$(_context4) {

            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/

            Line 60 exceeds the maximum line length of 100.
            Open

                  var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(namedId, profile, routes, controllers, GhostViewClass) {

            enforce a maximum line length (max-len)

            Very long lines of code in any language can be difficult to read. In order to aid in readability and maintainability many coders have developed a convention to limit lines of code to X number of characters (traditionally 80 characters).

            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" }; // very long

            Rule Details

            This rule enforces a maximum line length to increase code readability and maintainability. The length of a line is defined as the number of Unicode characters in the line.

            Options

            This rule has a number or object option:

            • "code" (default 80) enforces a maximum line length
            • "tabWidth" (default 4) specifies the character width for tab characters
            • "comments" enforces a maximum line length for comments; defaults to value of code
            • "ignorePattern" ignores lines matching a regular expression; can only match a single line and need to be double escaped when written in YAML or JSON
            • "ignoreComments": true ignores all trailing comments and comments on their own line
            • "ignoreTrailingComments": true ignores only trailing comments
            • "ignoreUrls": true ignores lines that contain a URL
            • "ignoreStrings": true ignores lines that contain a double-quoted or single-quoted string
            • "ignoreTemplateLiterals": true ignores lines that contain a template literal
            • "ignoreRegExpLiterals": true ignores lines that contain a RegExp literal

            code

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" };

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = {
              "bar": "This is a bar.",
              "baz": { "qux": "This is a qux" },
              "easier": "to read"
            };

            tabWidth

            Examples of incorrect code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" } };

            Examples of correct code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = {
            \t  \t  \t  \t  "bar": "This is a bar.",
            \t  \t  \t  \t  "baz": { "qux": "This is a qux" }
            \t  \t  };

            comments

            Examples of incorrect code for this rule with the { "comments": 65 } option:

            /*eslint max-len: ["error", { "comments": 65 }]*/
            
            /**
             * This is a comment that violates the maximum line length we have specified
            **/

            ignoreComments

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

            /*eslint max-len: ["error", { "ignoreComments": true }]*/
            
            /**
             * This is a really really really really really really really really really long comment
            **/

            ignoreTrailingComments

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

            /*eslint max-len: ["error", { "ignoreTrailingComments": true }]*/
            
            var foo = 'bar'; // This is a really really really really really really really long comment

            ignoreUrls

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

            /*eslint max-len: ["error", { "ignoreUrls": true }]*/
            
            var url = 'https://www.example.com/really/really/really/really/really/really/really/long';

            ignoreStrings

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

            /*eslint max-len: ["error", { "ignoreStrings": true }]*/
            
            var longString = 'this is a really really really really really long string!';

            ignoreTemplateLiterals

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

            /*eslint max-len: ["error", { "ignoreTemplateLiterals": true }]*/
            
            var longTemplateLiteral = `this is a really really really really really long template literal!`;

            ignoreRegExpLiterals

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

            /*eslint max-len: ["error", { "ignoreRegExpLiterals": true }]*/
            
            var longRegExpLiteral = /this is a really really really really really long regular expression!/;

            ignorePattern

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

            /*eslint max-len: ["error", { "ignorePattern": "^\\s*var\\s.+=\\s*require\\s*\\(/" }]*/
            
            var dep = require('really/really/really/really/really/really/really/really/long/module');

            Related Rules

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

            Too many nested callbacks (4). Maximum allowed is 3.
            Open

                    return _regenerator2.default.wrap(function _callee$(_context) {

            enforce a maximum depth that callbacks can be nested (max-nested-callbacks)

            Many JavaScript libraries use the callback pattern to manage asynchronous operations. A program of any complexity will most likely need to manage several asynchronous operations at various levels of concurrency. A common pitfall that is easy to fall into is nesting callbacks, which makes code more difficult to read the deeper the callbacks are nested.

            foo(function () {
                bar(function () {
                    baz(function() {
                        qux(function () {
            
                        });
                    });
                });
            });

            Rule Details

            This rule enforces a maximum depth that callbacks can be nested to increase code clarity.

            Options

            This rule has a number or object option:

            • "max" (default 10) enforces a maximum depth that callbacks can be nested

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

            max

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

            /*eslint max-nested-callbacks: ["error", 3]*/
            
            foo1(function() {
                foo2(function() {
                    foo3(function() {
                        foo4(function() {
                            // Do something
                        });
                    });
                });
            });

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

            /*eslint max-nested-callbacks: ["error", 3]*/
            
            foo1(handleFoo1);
            
            function handleFoo1() {
                foo2(handleFoo2);
            }
            
            function handleFoo2() {
                foo3(handleFoo3);
            }
            
            function handleFoo3() {
                foo4(handleFoo4);
            }
            
            function handleFoo4() {
                foo5();
            }

            Further Reading

            Related Rules

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

            Line 75 exceeds the maximum line length of 100.
            Open

                            return this._getGhostKernelAsProfile(namedId, profile, routes, controllers, GhostViewClass);

            enforce a maximum line length (max-len)

            Very long lines of code in any language can be difficult to read. In order to aid in readability and maintainability many coders have developed a convention to limit lines of code to X number of characters (traditionally 80 characters).

            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" }; // very long

            Rule Details

            This rule enforces a maximum line length to increase code readability and maintainability. The length of a line is defined as the number of Unicode characters in the line.

            Options

            This rule has a number or object option:

            • "code" (default 80) enforces a maximum line length
            • "tabWidth" (default 4) specifies the character width for tab characters
            • "comments" enforces a maximum line length for comments; defaults to value of code
            • "ignorePattern" ignores lines matching a regular expression; can only match a single line and need to be double escaped when written in YAML or JSON
            • "ignoreComments": true ignores all trailing comments and comments on their own line
            • "ignoreTrailingComments": true ignores only trailing comments
            • "ignoreUrls": true ignores lines that contain a URL
            • "ignoreStrings": true ignores lines that contain a double-quoted or single-quoted string
            • "ignoreTemplateLiterals": true ignores lines that contain a template literal
            • "ignoreRegExpLiterals": true ignores lines that contain a RegExp literal

            code

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" };

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = {
              "bar": "This is a bar.",
              "baz": { "qux": "This is a qux" },
              "easier": "to read"
            };

            tabWidth

            Examples of incorrect code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" } };

            Examples of correct code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = {
            \t  \t  \t  \t  "bar": "This is a bar.",
            \t  \t  \t  \t  "baz": { "qux": "This is a qux" }
            \t  \t  };

            comments

            Examples of incorrect code for this rule with the { "comments": 65 } option:

            /*eslint max-len: ["error", { "comments": 65 }]*/
            
            /**
             * This is a comment that violates the maximum line length we have specified
            **/

            ignoreComments

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

            /*eslint max-len: ["error", { "ignoreComments": true }]*/
            
            /**
             * This is a really really really really really really really really really long comment
            **/

            ignoreTrailingComments

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

            /*eslint max-len: ["error", { "ignoreTrailingComments": true }]*/
            
            var foo = 'bar'; // This is a really really really really really really really long comment

            ignoreUrls

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

            /*eslint max-len: ["error", { "ignoreUrls": true }]*/
            
            var url = 'https://www.example.com/really/really/really/really/really/really/really/long';

            ignoreStrings

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

            /*eslint max-len: ["error", { "ignoreStrings": true }]*/
            
            var longString = 'this is a really really really really really long string!';

            ignoreTemplateLiterals

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

            /*eslint max-len: ["error", { "ignoreTemplateLiterals": true }]*/
            
            var longTemplateLiteral = `this is a really really really really really long template literal!`;

            ignoreRegExpLiterals

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

            /*eslint max-len: ["error", { "ignoreRegExpLiterals": true }]*/
            
            var longRegExpLiteral = /this is a really really really really really long regular expression!/;

            ignorePattern

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

            /*eslint max-len: ["error", { "ignorePattern": "^\\s*var\\s.+=\\s*require\\s*\\(/" }]*/
            
            var dep = require('really/really/really/really/really/really/really/really/long/module');

            Related Rules

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

            Line 264 exceeds the maximum line length of 100.
            Open

                  var _ref7 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee5(namedId) {

            enforce a maximum line length (max-len)

            Very long lines of code in any language can be difficult to read. In order to aid in readability and maintainability many coders have developed a convention to limit lines of code to X number of characters (traditionally 80 characters).

            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" }; // very long

            Rule Details

            This rule enforces a maximum line length to increase code readability and maintainability. The length of a line is defined as the number of Unicode characters in the line.

            Options

            This rule has a number or object option:

            • "code" (default 80) enforces a maximum line length
            • "tabWidth" (default 4) specifies the character width for tab characters
            • "comments" enforces a maximum line length for comments; defaults to value of code
            • "ignorePattern" ignores lines matching a regular expression; can only match a single line and need to be double escaped when written in YAML or JSON
            • "ignoreComments": true ignores all trailing comments and comments on their own line
            • "ignoreTrailingComments": true ignores only trailing comments
            • "ignoreUrls": true ignores lines that contain a URL
            • "ignoreStrings": true ignores lines that contain a double-quoted or single-quoted string
            • "ignoreTemplateLiterals": true ignores lines that contain a template literal
            • "ignoreRegExpLiterals": true ignores lines that contain a RegExp literal

            code

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" };

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = {
              "bar": "This is a bar.",
              "baz": { "qux": "This is a qux" },
              "easier": "to read"
            };

            tabWidth

            Examples of incorrect code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" } };

            Examples of correct code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = {
            \t  \t  \t  \t  "bar": "This is a bar.",
            \t  \t  \t  \t  "baz": { "qux": "This is a qux" }
            \t  \t  };

            comments

            Examples of incorrect code for this rule with the { "comments": 65 } option:

            /*eslint max-len: ["error", { "comments": 65 }]*/
            
            /**
             * This is a comment that violates the maximum line length we have specified
            **/

            ignoreComments

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

            /*eslint max-len: ["error", { "ignoreComments": true }]*/
            
            /**
             * This is a really really really really really really really really really long comment
            **/

            ignoreTrailingComments

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

            /*eslint max-len: ["error", { "ignoreTrailingComments": true }]*/
            
            var foo = 'bar'; // This is a really really really really really really really long comment

            ignoreUrls

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

            /*eslint max-len: ["error", { "ignoreUrls": true }]*/
            
            var url = 'https://www.example.com/really/really/really/really/really/really/really/long';

            ignoreStrings

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

            /*eslint max-len: ["error", { "ignoreStrings": true }]*/
            
            var longString = 'this is a really really really really really long string!';

            ignoreTemplateLiterals

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

            /*eslint max-len: ["error", { "ignoreTemplateLiterals": true }]*/
            
            var longTemplateLiteral = `this is a really really really really really long template literal!`;

            ignoreRegExpLiterals

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

            /*eslint max-len: ["error", { "ignoreRegExpLiterals": true }]*/
            
            var longRegExpLiteral = /this is a really really really really really long regular expression!/;

            ignorePattern

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

            /*eslint max-len: ["error", { "ignorePattern": "^\\s*var\\s.+=\\s*require\\s*\\(/" }]*/
            
            var dep = require('really/really/really/really/really/really/really/really/long/module');

            Related Rules

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

            Line 107 exceeds the maximum line length of 100.
            Open

                  var _ref2 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee2(namedId, profile) {

            enforce a maximum line length (max-len)

            Very long lines of code in any language can be difficult to read. In order to aid in readability and maintainability many coders have developed a convention to limit lines of code to X number of characters (traditionally 80 characters).

            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" }; // very long

            Rule Details

            This rule enforces a maximum line length to increase code readability and maintainability. The length of a line is defined as the number of Unicode characters in the line.

            Options

            This rule has a number or object option:

            • "code" (default 80) enforces a maximum line length
            • "tabWidth" (default 4) specifies the character width for tab characters
            • "comments" enforces a maximum line length for comments; defaults to value of code
            • "ignorePattern" ignores lines matching a regular expression; can only match a single line and need to be double escaped when written in YAML or JSON
            • "ignoreComments": true ignores all trailing comments and comments on their own line
            • "ignoreTrailingComments": true ignores only trailing comments
            • "ignoreUrls": true ignores lines that contain a URL
            • "ignoreStrings": true ignores lines that contain a double-quoted or single-quoted string
            • "ignoreTemplateLiterals": true ignores lines that contain a template literal
            • "ignoreRegExpLiterals": true ignores lines that contain a RegExp literal

            code

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" };

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = {
              "bar": "This is a bar.",
              "baz": { "qux": "This is a qux" },
              "easier": "to read"
            };

            tabWidth

            Examples of incorrect code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" } };

            Examples of correct code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = {
            \t  \t  \t  \t  "bar": "This is a bar.",
            \t  \t  \t  \t  "baz": { "qux": "This is a qux" }
            \t  \t  };

            comments

            Examples of incorrect code for this rule with the { "comments": 65 } option:

            /*eslint max-len: ["error", { "comments": 65 }]*/
            
            /**
             * This is a comment that violates the maximum line length we have specified
            **/

            ignoreComments

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

            /*eslint max-len: ["error", { "ignoreComments": true }]*/
            
            /**
             * This is a really really really really really really really really really long comment
            **/

            ignoreTrailingComments

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

            /*eslint max-len: ["error", { "ignoreTrailingComments": true }]*/
            
            var foo = 'bar'; // This is a really really really really really really really long comment

            ignoreUrls

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

            /*eslint max-len: ["error", { "ignoreUrls": true }]*/
            
            var url = 'https://www.example.com/really/really/really/really/really/really/really/long';

            ignoreStrings

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

            /*eslint max-len: ["error", { "ignoreStrings": true }]*/
            
            var longString = 'this is a really really really really really long string!';

            ignoreTemplateLiterals

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

            /*eslint max-len: ["error", { "ignoreTemplateLiterals": true }]*/
            
            var longTemplateLiteral = `this is a really really really really really long template literal!`;

            ignoreRegExpLiterals

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

            /*eslint max-len: ["error", { "ignoreRegExpLiterals": true }]*/
            
            var longRegExpLiteral = /this is a really really really really really long regular expression!/;

            ignorePattern

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

            /*eslint max-len: ["error", { "ignorePattern": "^\\s*var\\s.+=\\s*require\\s*\\(/" }]*/
            
            var dep = require('really/really/really/really/really/really/really/really/long/module');

            Related Rules

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

            Line 155 exceeds the maximum line length of 100.
            Open

                  var _ref3 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee3(namedId, profile, routes, controllers, GhostViewClass) {

            enforce a maximum line length (max-len)

            Very long lines of code in any language can be difficult to read. In order to aid in readability and maintainability many coders have developed a convention to limit lines of code to X number of characters (traditionally 80 characters).

            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" }; // very long

            Rule Details

            This rule enforces a maximum line length to increase code readability and maintainability. The length of a line is defined as the number of Unicode characters in the line.

            Options

            This rule has a number or object option:

            • "code" (default 80) enforces a maximum line length
            • "tabWidth" (default 4) specifies the character width for tab characters
            • "comments" enforces a maximum line length for comments; defaults to value of code
            • "ignorePattern" ignores lines matching a regular expression; can only match a single line and need to be double escaped when written in YAML or JSON
            • "ignoreComments": true ignores all trailing comments and comments on their own line
            • "ignoreTrailingComments": true ignores only trailing comments
            • "ignoreUrls": true ignores lines that contain a URL
            • "ignoreStrings": true ignores lines that contain a double-quoted or single-quoted string
            • "ignoreTemplateLiterals": true ignores lines that contain a template literal
            • "ignoreRegExpLiterals": true ignores lines that contain a RegExp literal

            code

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" };

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = {
              "bar": "This is a bar.",
              "baz": { "qux": "This is a qux" },
              "easier": "to read"
            };

            tabWidth

            Examples of incorrect code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" } };

            Examples of correct code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = {
            \t  \t  \t  \t  "bar": "This is a bar.",
            \t  \t  \t  \t  "baz": { "qux": "This is a qux" }
            \t  \t  };

            comments

            Examples of incorrect code for this rule with the { "comments": 65 } option:

            /*eslint max-len: ["error", { "comments": 65 }]*/
            
            /**
             * This is a comment that violates the maximum line length we have specified
            **/

            ignoreComments

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

            /*eslint max-len: ["error", { "ignoreComments": true }]*/
            
            /**
             * This is a really really really really really really really really really long comment
            **/

            ignoreTrailingComments

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

            /*eslint max-len: ["error", { "ignoreTrailingComments": true }]*/
            
            var foo = 'bar'; // This is a really really really really really really really long comment

            ignoreUrls

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

            /*eslint max-len: ["error", { "ignoreUrls": true }]*/
            
            var url = 'https://www.example.com/really/really/really/really/really/really/really/long';

            ignoreStrings

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

            /*eslint max-len: ["error", { "ignoreStrings": true }]*/
            
            var longString = 'this is a really really really really really long string!';

            ignoreTemplateLiterals

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

            /*eslint max-len: ["error", { "ignoreTemplateLiterals": true }]*/
            
            var longTemplateLiteral = `this is a really really really really really long template literal!`;

            ignoreRegExpLiterals

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

            /*eslint max-len: ["error", { "ignoreRegExpLiterals": true }]*/
            
            var longRegExpLiteral = /this is a really really really really really long regular expression!/;

            ignorePattern

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

            /*eslint max-len: ["error", { "ignorePattern": "^\\s*var\\s.+=\\s*require\\s*\\(/" }]*/
            
            var dep = require('really/really/really/really/really/really/really/really/long/module');

            Related Rules

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

            Too many nested callbacks (4). Maximum allowed is 3.
            Open

                    return _regenerator2.default.wrap(function _callee4$(_context4) {

            enforce a maximum depth that callbacks can be nested (max-nested-callbacks)

            Many JavaScript libraries use the callback pattern to manage asynchronous operations. A program of any complexity will most likely need to manage several asynchronous operations at various levels of concurrency. A common pitfall that is easy to fall into is nesting callbacks, which makes code more difficult to read the deeper the callbacks are nested.

            foo(function () {
                bar(function () {
                    baz(function() {
                        qux(function () {
            
                        });
                    });
                });
            });

            Rule Details

            This rule enforces a maximum depth that callbacks can be nested to increase code clarity.

            Options

            This rule has a number or object option:

            • "max" (default 10) enforces a maximum depth that callbacks can be nested

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

            max

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

            /*eslint max-nested-callbacks: ["error", 3]*/
            
            foo1(function() {
                foo2(function() {
                    foo3(function() {
                        foo4(function() {
                            // Do something
                        });
                    });
                });
            });

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

            /*eslint max-nested-callbacks: ["error", 3]*/
            
            foo1(handleFoo1);
            
            function handleFoo1() {
                foo2(handleFoo2);
            }
            
            function handleFoo2() {
                foo3(handleFoo3);
            }
            
            function handleFoo3() {
                foo4(handleFoo4);
            }
            
            function handleFoo4() {
                foo5();
            }

            Further Reading

            Related Rules

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

            Too many nested callbacks (4). Maximum allowed is 3.
            Open

                    return _regenerator2.default.wrap(function _callee3$(_context3) {

            enforce a maximum depth that callbacks can be nested (max-nested-callbacks)

            Many JavaScript libraries use the callback pattern to manage asynchronous operations. A program of any complexity will most likely need to manage several asynchronous operations at various levels of concurrency. A common pitfall that is easy to fall into is nesting callbacks, which makes code more difficult to read the deeper the callbacks are nested.

            foo(function () {
                bar(function () {
                    baz(function() {
                        qux(function () {
            
                        });
                    });
                });
            });

            Rule Details

            This rule enforces a maximum depth that callbacks can be nested to increase code clarity.

            Options

            This rule has a number or object option:

            • "max" (default 10) enforces a maximum depth that callbacks can be nested

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

            max

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

            /*eslint max-nested-callbacks: ["error", 3]*/
            
            foo1(function() {
                foo2(function() {
                    foo3(function() {
                        foo4(function() {
                            // Do something
                        });
                    });
                });
            });

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

            /*eslint max-nested-callbacks: ["error", 3]*/
            
            foo1(handleFoo1);
            
            function handleFoo1() {
                foo2(handleFoo2);
            }
            
            function handleFoo2() {
                foo3(handleFoo3);
            }
            
            function handleFoo3() {
                foo4(handleFoo4);
            }
            
            function handleFoo4() {
                foo5();
            }

            Further Reading

            Related Rules

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

            Line 168 exceeds the maximum line length of 100.
            Open

                            return this._get_ghost_kernel(namedId, _profile.shellname, _profile.balloonname, routes, controllers, GhostViewClass);

            enforce a maximum line length (max-len)

            Very long lines of code in any language can be difficult to read. In order to aid in readability and maintainability many coders have developed a convention to limit lines of code to X number of characters (traditionally 80 characters).

            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" }; // very long

            Rule Details

            This rule enforces a maximum line length to increase code readability and maintainability. The length of a line is defined as the number of Unicode characters in the line.

            Options

            This rule has a number or object option:

            • "code" (default 80) enforces a maximum line length
            • "tabWidth" (default 4) specifies the character width for tab characters
            • "comments" enforces a maximum line length for comments; defaults to value of code
            • "ignorePattern" ignores lines matching a regular expression; can only match a single line and need to be double escaped when written in YAML or JSON
            • "ignoreComments": true ignores all trailing comments and comments on their own line
            • "ignoreTrailingComments": true ignores only trailing comments
            • "ignoreUrls": true ignores lines that contain a URL
            • "ignoreStrings": true ignores lines that contain a double-quoted or single-quoted string
            • "ignoreTemplateLiterals": true ignores lines that contain a template literal
            • "ignoreRegExpLiterals": true ignores lines that contain a RegExp literal

            code

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" };

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = {
              "bar": "This is a bar.",
              "baz": { "qux": "This is a qux" },
              "easier": "to read"
            };

            tabWidth

            Examples of incorrect code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" } };

            Examples of correct code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = {
            \t  \t  \t  \t  "bar": "This is a bar.",
            \t  \t  \t  \t  "baz": { "qux": "This is a qux" }
            \t  \t  };

            comments

            Examples of incorrect code for this rule with the { "comments": 65 } option:

            /*eslint max-len: ["error", { "comments": 65 }]*/
            
            /**
             * This is a comment that violates the maximum line length we have specified
            **/

            ignoreComments

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

            /*eslint max-len: ["error", { "ignoreComments": true }]*/
            
            /**
             * This is a really really really really really really really really really long comment
            **/

            ignoreTrailingComments

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

            /*eslint max-len: ["error", { "ignoreTrailingComments": true }]*/
            
            var foo = 'bar'; // This is a really really really really really really really long comment

            ignoreUrls

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

            /*eslint max-len: ["error", { "ignoreUrls": true }]*/
            
            var url = 'https://www.example.com/really/really/really/really/really/really/really/long';

            ignoreStrings

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

            /*eslint max-len: ["error", { "ignoreStrings": true }]*/
            
            var longString = 'this is a really really really really really long string!';

            ignoreTemplateLiterals

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

            /*eslint max-len: ["error", { "ignoreTemplateLiterals": true }]*/
            
            var longTemplateLiteral = `this is a really really really really really long template literal!`;

            ignoreRegExpLiterals

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

            /*eslint max-len: ["error", { "ignoreRegExpLiterals": true }]*/
            
            var longRegExpLiteral = /this is a really really really really really long regular expression!/;

            ignorePattern

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

            /*eslint max-len: ["error", { "ignorePattern": "^\\s*var\\s.+=\\s*require\\s*\\(/" }]*/
            
            var dep = require('really/really/really/really/really/really/really/really/long/module');

            Related Rules

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

            Line 202 exceeds the maximum line length of 100.
            Open

                  var _ref4 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee4(namedId, shellname, balloonname, routes, controllers, GhostViewClass) {

            enforce a maximum line length (max-len)

            Very long lines of code in any language can be difficult to read. In order to aid in readability and maintainability many coders have developed a convention to limit lines of code to X number of characters (traditionally 80 characters).

            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" }; // very long

            Rule Details

            This rule enforces a maximum line length to increase code readability and maintainability. The length of a line is defined as the number of Unicode characters in the line.

            Options

            This rule has a number or object option:

            • "code" (default 80) enforces a maximum line length
            • "tabWidth" (default 4) specifies the character width for tab characters
            • "comments" enforces a maximum line length for comments; defaults to value of code
            • "ignorePattern" ignores lines matching a regular expression; can only match a single line and need to be double escaped when written in YAML or JSON
            • "ignoreComments": true ignores all trailing comments and comments on their own line
            • "ignoreTrailingComments": true ignores only trailing comments
            • "ignoreUrls": true ignores lines that contain a URL
            • "ignoreStrings": true ignores lines that contain a double-quoted or single-quoted string
            • "ignoreTemplateLiterals": true ignores lines that contain a template literal
            • "ignoreRegExpLiterals": true ignores lines that contain a RegExp literal

            code

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" };

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = {
              "bar": "This is a bar.",
              "baz": { "qux": "This is a qux" },
              "easier": "to read"
            };

            tabWidth

            Examples of incorrect code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" } };

            Examples of correct code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = {
            \t  \t  \t  \t  "bar": "This is a bar.",
            \t  \t  \t  \t  "baz": { "qux": "This is a qux" }
            \t  \t  };

            comments

            Examples of incorrect code for this rule with the { "comments": 65 } option:

            /*eslint max-len: ["error", { "comments": 65 }]*/
            
            /**
             * This is a comment that violates the maximum line length we have specified
            **/

            ignoreComments

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

            /*eslint max-len: ["error", { "ignoreComments": true }]*/
            
            /**
             * This is a really really really really really really really really really long comment
            **/

            ignoreTrailingComments

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

            /*eslint max-len: ["error", { "ignoreTrailingComments": true }]*/
            
            var foo = 'bar'; // This is a really really really really really really really long comment

            ignoreUrls

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

            /*eslint max-len: ["error", { "ignoreUrls": true }]*/
            
            var url = 'https://www.example.com/really/really/really/really/really/really/really/long';

            ignoreStrings

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

            /*eslint max-len: ["error", { "ignoreStrings": true }]*/
            
            var longString = 'this is a really really really really really long string!';

            ignoreTemplateLiterals

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

            /*eslint max-len: ["error", { "ignoreTemplateLiterals": true }]*/
            
            var longTemplateLiteral = `this is a really really really really really long template literal!`;

            ignoreRegExpLiterals

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

            /*eslint max-len: ["error", { "ignoreRegExpLiterals": true }]*/
            
            var longRegExpLiteral = /this is a really really really really really long regular expression!/;

            ignorePattern

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

            /*eslint max-len: ["error", { "ignorePattern": "^\\s*var\\s.+=\\s*require\\s*\\(/" }]*/
            
            var dep = require('really/really/really/really/really/really/really/really/long/module');

            Related Rules

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

            Too many nested callbacks (4). Maximum allowed is 3.
            Open

                    return _regenerator2.default.wrap(function _callee2$(_context2) {

            enforce a maximum depth that callbacks can be nested (max-nested-callbacks)

            Many JavaScript libraries use the callback pattern to manage asynchronous operations. A program of any complexity will most likely need to manage several asynchronous operations at various levels of concurrency. A common pitfall that is easy to fall into is nesting callbacks, which makes code more difficult to read the deeper the callbacks are nested.

            foo(function () {
                bar(function () {
                    baz(function() {
                        qux(function () {
            
                        });
                    });
                });
            });

            Rule Details

            This rule enforces a maximum depth that callbacks can be nested to increase code clarity.

            Options

            This rule has a number or object option:

            • "max" (default 10) enforces a maximum depth that callbacks can be nested

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

            max

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

            /*eslint max-nested-callbacks: ["error", 3]*/
            
            foo1(function() {
                foo2(function() {
                    foo3(function() {
                        foo4(function() {
                            // Do something
                        });
                    });
                });
            });

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

            /*eslint max-nested-callbacks: ["error", 3]*/
            
            foo1(handleFoo1);
            
            function handleFoo1() {
                foo2(handleFoo2);
            }
            
            function handleFoo2() {
                foo3(handleFoo3);
            }
            
            function handleFoo3() {
                foo4(handleFoo4);
            }
            
            function handleFoo4() {
                foo5();
            }

            Further Reading

            Related Rules

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

            Line 209 exceeds the maximum line length of 100.
            Open

                            return _context4.abrupt('return', _promise2.default.all([this._get_ghost(namedId), this._get_shell(namedId, shellname, GhostViewClass), this._get_balloon(balloonname, GhostViewClass)]).then(function (_ref5) {

            enforce a maximum line length (max-len)

            Very long lines of code in any language can be difficult to read. In order to aid in readability and maintainability many coders have developed a convention to limit lines of code to X number of characters (traditionally 80 characters).

            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" }; // very long

            Rule Details

            This rule enforces a maximum line length to increase code readability and maintainability. The length of a line is defined as the number of Unicode characters in the line.

            Options

            This rule has a number or object option:

            • "code" (default 80) enforces a maximum line length
            • "tabWidth" (default 4) specifies the character width for tab characters
            • "comments" enforces a maximum line length for comments; defaults to value of code
            • "ignorePattern" ignores lines matching a regular expression; can only match a single line and need to be double escaped when written in YAML or JSON
            • "ignoreComments": true ignores all trailing comments and comments on their own line
            • "ignoreTrailingComments": true ignores only trailing comments
            • "ignoreUrls": true ignores lines that contain a URL
            • "ignoreStrings": true ignores lines that contain a double-quoted or single-quoted string
            • "ignoreTemplateLiterals": true ignores lines that contain a template literal
            • "ignoreRegExpLiterals": true ignores lines that contain a RegExp literal

            code

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" };

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = {
              "bar": "This is a bar.",
              "baz": { "qux": "This is a qux" },
              "easier": "to read"
            };

            tabWidth

            Examples of incorrect code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" } };

            Examples of correct code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = {
            \t  \t  \t  \t  "bar": "This is a bar.",
            \t  \t  \t  \t  "baz": { "qux": "This is a qux" }
            \t  \t  };

            comments

            Examples of incorrect code for this rule with the { "comments": 65 } option:

            /*eslint max-len: ["error", { "comments": 65 }]*/
            
            /**
             * This is a comment that violates the maximum line length we have specified
            **/

            ignoreComments

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

            /*eslint max-len: ["error", { "ignoreComments": true }]*/
            
            /**
             * This is a really really really really really really really really really long comment
            **/

            ignoreTrailingComments

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

            /*eslint max-len: ["error", { "ignoreTrailingComments": true }]*/
            
            var foo = 'bar'; // This is a really really really really really really really long comment

            ignoreUrls

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

            /*eslint max-len: ["error", { "ignoreUrls": true }]*/
            
            var url = 'https://www.example.com/really/really/really/really/really/really/really/long';

            ignoreStrings

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

            /*eslint max-len: ["error", { "ignoreStrings": true }]*/
            
            var longString = 'this is a really really really really really long string!';

            ignoreTemplateLiterals

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

            /*eslint max-len: ["error", { "ignoreTemplateLiterals": true }]*/
            
            var longTemplateLiteral = `this is a really really really really really long template literal!`;

            ignoreRegExpLiterals

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

            /*eslint max-len: ["error", { "ignoreRegExpLiterals": true }]*/
            
            var longRegExpLiteral = /this is a really really really really really long regular expression!/;

            ignorePattern

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

            /*eslint max-len: ["error", { "ignorePattern": "^\\s*var\\s.+=\\s*require\\s*\\(/" }]*/
            
            var dep = require('really/really/really/really/really/really/really/really/long/module');

            Related Rules

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

            Too many nested callbacks (5). Maximum allowed is 3.
            Open

                            return _context4.abrupt('return', _promise2.default.all([this._get_ghost(namedId), this._get_shell(namedId, shellname, GhostViewClass), this._get_balloon(balloonname, GhostViewClass)]).then(function (_ref5) {

            enforce a maximum depth that callbacks can be nested (max-nested-callbacks)

            Many JavaScript libraries use the callback pattern to manage asynchronous operations. A program of any complexity will most likely need to manage several asynchronous operations at various levels of concurrency. A common pitfall that is easy to fall into is nesting callbacks, which makes code more difficult to read the deeper the callbacks are nested.

            foo(function () {
                bar(function () {
                    baz(function() {
                        qux(function () {
            
                        });
                    });
                });
            });

            Rule Details

            This rule enforces a maximum depth that callbacks can be nested to increase code clarity.

            Options

            This rule has a number or object option:

            • "max" (default 10) enforces a maximum depth that callbacks can be nested

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

            max

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

            /*eslint max-nested-callbacks: ["error", 3]*/
            
            foo1(function() {
                foo2(function() {
                    foo3(function() {
                        foo4(function() {
                            // Do something
                        });
                    });
                });
            });

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

            /*eslint max-nested-callbacks: ["error", 3]*/
            
            foo1(handleFoo1);
            
            function handleFoo1() {
                foo2(handleFoo2);
            }
            
            function handleFoo2() {
                foo3(handleFoo3);
            }
            
            function handleFoo3() {
                foo4(handleFoo4);
            }
            
            function handleFoo4() {
                foo5();
            }

            Further Reading

            Related Rules

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

            Line 317 exceeds the maximum line length of 100.
            Open

                  var _ref8 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee6(fs, dirpath) {

            enforce a maximum line length (max-len)

            Very long lines of code in any language can be difficult to read. In order to aid in readability and maintainability many coders have developed a convention to limit lines of code to X number of characters (traditionally 80 characters).

            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" }; // very long

            Rule Details

            This rule enforces a maximum line length to increase code readability and maintainability. The length of a line is defined as the number of Unicode characters in the line.

            Options

            This rule has a number or object option:

            • "code" (default 80) enforces a maximum line length
            • "tabWidth" (default 4) specifies the character width for tab characters
            • "comments" enforces a maximum line length for comments; defaults to value of code
            • "ignorePattern" ignores lines matching a regular expression; can only match a single line and need to be double escaped when written in YAML or JSON
            • "ignoreComments": true ignores all trailing comments and comments on their own line
            • "ignoreTrailingComments": true ignores only trailing comments
            • "ignoreUrls": true ignores lines that contain a URL
            • "ignoreStrings": true ignores lines that contain a double-quoted or single-quoted string
            • "ignoreTemplateLiterals": true ignores lines that contain a template literal
            • "ignoreRegExpLiterals": true ignores lines that contain a RegExp literal

            code

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" };

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = {
              "bar": "This is a bar.",
              "baz": { "qux": "This is a qux" },
              "easier": "to read"
            };

            tabWidth

            Examples of incorrect code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" } };

            Examples of correct code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = {
            \t  \t  \t  \t  "bar": "This is a bar.",
            \t  \t  \t  \t  "baz": { "qux": "This is a qux" }
            \t  \t  };

            comments

            Examples of incorrect code for this rule with the { "comments": 65 } option:

            /*eslint max-len: ["error", { "comments": 65 }]*/
            
            /**
             * This is a comment that violates the maximum line length we have specified
            **/

            ignoreComments

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

            /*eslint max-len: ["error", { "ignoreComments": true }]*/
            
            /**
             * This is a really really really really really really really really really long comment
            **/

            ignoreTrailingComments

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

            /*eslint max-len: ["error", { "ignoreTrailingComments": true }]*/
            
            var foo = 'bar'; // This is a really really really really really really really long comment

            ignoreUrls

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

            /*eslint max-len: ["error", { "ignoreUrls": true }]*/
            
            var url = 'https://www.example.com/really/really/really/really/really/really/really/long';

            ignoreStrings

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

            /*eslint max-len: ["error", { "ignoreStrings": true }]*/
            
            var longString = 'this is a really really really really really long string!';

            ignoreTemplateLiterals

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

            /*eslint max-len: ["error", { "ignoreTemplateLiterals": true }]*/
            
            var longTemplateLiteral = `this is a really really really really really long template literal!`;

            ignoreRegExpLiterals

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

            /*eslint max-len: ["error", { "ignoreRegExpLiterals": true }]*/
            
            var longRegExpLiteral = /this is a really really really really really long regular expression!/;

            ignorePattern

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

            /*eslint max-len: ["error", { "ignorePattern": "^\\s*var\\s.+=\\s*require\\s*\\(/" }]*/
            
            var dep = require('really/really/really/really/really/really/really/really/long/module');

            Related Rules

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

            Line 461 exceeds the maximum line length of 100.
            Open

                  var _ref11 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee9(balloonname, GhostViewClass) {

            enforce a maximum line length (max-len)

            Very long lines of code in any language can be difficult to read. In order to aid in readability and maintainability many coders have developed a convention to limit lines of code to X number of characters (traditionally 80 characters).

            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" }; // very long

            Rule Details

            This rule enforces a maximum line length to increase code readability and maintainability. The length of a line is defined as the number of Unicode characters in the line.

            Options

            This rule has a number or object option:

            • "code" (default 80) enforces a maximum line length
            • "tabWidth" (default 4) specifies the character width for tab characters
            • "comments" enforces a maximum line length for comments; defaults to value of code
            • "ignorePattern" ignores lines matching a regular expression; can only match a single line and need to be double escaped when written in YAML or JSON
            • "ignoreComments": true ignores all trailing comments and comments on their own line
            • "ignoreTrailingComments": true ignores only trailing comments
            • "ignoreUrls": true ignores lines that contain a URL
            • "ignoreStrings": true ignores lines that contain a double-quoted or single-quoted string
            • "ignoreTemplateLiterals": true ignores lines that contain a template literal
            • "ignoreRegExpLiterals": true ignores lines that contain a RegExp literal

            code

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" };

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = {
              "bar": "This is a bar.",
              "baz": { "qux": "This is a qux" },
              "easier": "to read"
            };

            tabWidth

            Examples of incorrect code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" } };

            Examples of correct code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = {
            \t  \t  \t  \t  "bar": "This is a bar.",
            \t  \t  \t  \t  "baz": { "qux": "This is a qux" }
            \t  \t  };

            comments

            Examples of incorrect code for this rule with the { "comments": 65 } option:

            /*eslint max-len: ["error", { "comments": 65 }]*/
            
            /**
             * This is a comment that violates the maximum line length we have specified
            **/

            ignoreComments

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

            /*eslint max-len: ["error", { "ignoreComments": true }]*/
            
            /**
             * This is a really really really really really really really really really long comment
            **/

            ignoreTrailingComments

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

            /*eslint max-len: ["error", { "ignoreTrailingComments": true }]*/
            
            var foo = 'bar'; // This is a really really really really really really really long comment

            ignoreUrls

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

            /*eslint max-len: ["error", { "ignoreUrls": true }]*/
            
            var url = 'https://www.example.com/really/really/really/really/really/really/really/long';

            ignoreStrings

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

            /*eslint max-len: ["error", { "ignoreStrings": true }]*/
            
            var longString = 'this is a really really really really really long string!';

            ignoreTemplateLiterals

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

            /*eslint max-len: ["error", { "ignoreTemplateLiterals": true }]*/
            
            var longTemplateLiteral = `this is a really really really really really long template literal!`;

            ignoreRegExpLiterals

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

            /*eslint max-len: ["error", { "ignoreRegExpLiterals": true }]*/
            
            var longRegExpLiteral = /this is a really really really really really long regular expression!/;

            ignorePattern

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

            /*eslint max-len: ["error", { "ignorePattern": "^\\s*var\\s.+=\\s*require\\s*\\(/" }]*/
            
            var dep = require('really/really/really/really/really/really/really/really/long/module');

            Related Rules

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

            Line 409 exceeds the maximum line length of 100.
            Open

                  var _ref10 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee8(namedId, shellname) {

            enforce a maximum line length (max-len)

            Very long lines of code in any language can be difficult to read. In order to aid in readability and maintainability many coders have developed a convention to limit lines of code to X number of characters (traditionally 80 characters).

            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" }; // very long

            Rule Details

            This rule enforces a maximum line length to increase code readability and maintainability. The length of a line is defined as the number of Unicode characters in the line.

            Options

            This rule has a number or object option:

            • "code" (default 80) enforces a maximum line length
            • "tabWidth" (default 4) specifies the character width for tab characters
            • "comments" enforces a maximum line length for comments; defaults to value of code
            • "ignorePattern" ignores lines matching a regular expression; can only match a single line and need to be double escaped when written in YAML or JSON
            • "ignoreComments": true ignores all trailing comments and comments on their own line
            • "ignoreTrailingComments": true ignores only trailing comments
            • "ignoreUrls": true ignores lines that contain a URL
            • "ignoreStrings": true ignores lines that contain a double-quoted or single-quoted string
            • "ignoreTemplateLiterals": true ignores lines that contain a template literal
            • "ignoreRegExpLiterals": true ignores lines that contain a RegExp literal

            code

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" };

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = {
              "bar": "This is a bar.",
              "baz": { "qux": "This is a qux" },
              "easier": "to read"
            };

            tabWidth

            Examples of incorrect code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" } };

            Examples of correct code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = {
            \t  \t  \t  \t  "bar": "This is a bar.",
            \t  \t  \t  \t  "baz": { "qux": "This is a qux" }
            \t  \t  };

            comments

            Examples of incorrect code for this rule with the { "comments": 65 } option:

            /*eslint max-len: ["error", { "comments": 65 }]*/
            
            /**
             * This is a comment that violates the maximum line length we have specified
            **/

            ignoreComments

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

            /*eslint max-len: ["error", { "ignoreComments": true }]*/
            
            /**
             * This is a really really really really really really really really really long comment
            **/

            ignoreTrailingComments

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

            /*eslint max-len: ["error", { "ignoreTrailingComments": true }]*/
            
            var foo = 'bar'; // This is a really really really really really really really long comment

            ignoreUrls

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

            /*eslint max-len: ["error", { "ignoreUrls": true }]*/
            
            var url = 'https://www.example.com/really/really/really/really/really/really/really/long';

            ignoreStrings

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

            /*eslint max-len: ["error", { "ignoreStrings": true }]*/
            
            var longString = 'this is a really really really really really long string!';

            ignoreTemplateLiterals

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

            /*eslint max-len: ["error", { "ignoreTemplateLiterals": true }]*/
            
            var longTemplateLiteral = `this is a really really really really really long template literal!`;

            ignoreRegExpLiterals

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

            /*eslint max-len: ["error", { "ignoreRegExpLiterals": true }]*/
            
            var longRegExpLiteral = /this is a really really really really really long regular expression!/;

            ignorePattern

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

            /*eslint max-len: ["error", { "ignorePattern": "^\\s*var\\s.+=\\s*require\\s*\\(/" }]*/
            
            var dep = require('really/really/really/really/really/really/really/really/long/module');

            Related Rules

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

            Line 445 exceeds the maximum line length of 100.
            Open

                  var GhostViewClass = arguments.length <= 1 || arguments[1] === undefined ? this.GhostViewClass : arguments[1];

            enforce a maximum line length (max-len)

            Very long lines of code in any language can be difficult to read. In order to aid in readability and maintainability many coders have developed a convention to limit lines of code to X number of characters (traditionally 80 characters).

            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" }; // very long

            Rule Details

            This rule enforces a maximum line length to increase code readability and maintainability. The length of a line is defined as the number of Unicode characters in the line.

            Options

            This rule has a number or object option:

            • "code" (default 80) enforces a maximum line length
            • "tabWidth" (default 4) specifies the character width for tab characters
            • "comments" enforces a maximum line length for comments; defaults to value of code
            • "ignorePattern" ignores lines matching a regular expression; can only match a single line and need to be double escaped when written in YAML or JSON
            • "ignoreComments": true ignores all trailing comments and comments on their own line
            • "ignoreTrailingComments": true ignores only trailing comments
            • "ignoreUrls": true ignores lines that contain a URL
            • "ignoreStrings": true ignores lines that contain a double-quoted or single-quoted string
            • "ignoreTemplateLiterals": true ignores lines that contain a template literal
            • "ignoreRegExpLiterals": true ignores lines that contain a RegExp literal

            code

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" };

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = {
              "bar": "This is a bar.",
              "baz": { "qux": "This is a qux" },
              "easier": "to read"
            };

            tabWidth

            Examples of incorrect code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" } };

            Examples of correct code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = {
            \t  \t  \t  \t  "bar": "This is a bar.",
            \t  \t  \t  \t  "baz": { "qux": "This is a qux" }
            \t  \t  };

            comments

            Examples of incorrect code for this rule with the { "comments": 65 } option:

            /*eslint max-len: ["error", { "comments": 65 }]*/
            
            /**
             * This is a comment that violates the maximum line length we have specified
            **/

            ignoreComments

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

            /*eslint max-len: ["error", { "ignoreComments": true }]*/
            
            /**
             * This is a really really really really really really really really really long comment
            **/

            ignoreTrailingComments

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

            /*eslint max-len: ["error", { "ignoreTrailingComments": true }]*/
            
            var foo = 'bar'; // This is a really really really really really really really long comment

            ignoreUrls

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

            /*eslint max-len: ["error", { "ignoreUrls": true }]*/
            
            var url = 'https://www.example.com/really/really/really/really/really/really/really/long';

            ignoreStrings

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

            /*eslint max-len: ["error", { "ignoreStrings": true }]*/
            
            var longString = 'this is a really really really really really long string!';

            ignoreTemplateLiterals

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

            /*eslint max-len: ["error", { "ignoreTemplateLiterals": true }]*/
            
            var longTemplateLiteral = `this is a really really really really really long template literal!`;

            ignoreRegExpLiterals

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

            /*eslint max-len: ["error", { "ignoreRegExpLiterals": true }]*/
            
            var longRegExpLiteral = /this is a really really really really really long regular expression!/;

            ignorePattern

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

            /*eslint max-len: ["error", { "ignorePattern": "^\\s*var\\s.+=\\s*require\\s*\\(/" }]*/
            
            var dep = require('really/really/really/really/really/really/really/really/long/module');

            Related Rules

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

            Line 508 exceeds the maximum line length of 100.
            Open

                  var _ref12 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee10(balloonname) {

            enforce a maximum line length (max-len)

            Very long lines of code in any language can be difficult to read. In order to aid in readability and maintainability many coders have developed a convention to limit lines of code to X number of characters (traditionally 80 characters).

            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" }; // very long

            Rule Details

            This rule enforces a maximum line length to increase code readability and maintainability. The length of a line is defined as the number of Unicode characters in the line.

            Options

            This rule has a number or object option:

            • "code" (default 80) enforces a maximum line length
            • "tabWidth" (default 4) specifies the character width for tab characters
            • "comments" enforces a maximum line length for comments; defaults to value of code
            • "ignorePattern" ignores lines matching a regular expression; can only match a single line and need to be double escaped when written in YAML or JSON
            • "ignoreComments": true ignores all trailing comments and comments on their own line
            • "ignoreTrailingComments": true ignores only trailing comments
            • "ignoreUrls": true ignores lines that contain a URL
            • "ignoreStrings": true ignores lines that contain a double-quoted or single-quoted string
            • "ignoreTemplateLiterals": true ignores lines that contain a template literal
            • "ignoreRegExpLiterals": true ignores lines that contain a RegExp literal

            code

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" };

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = {
              "bar": "This is a bar.",
              "baz": { "qux": "This is a qux" },
              "easier": "to read"
            };

            tabWidth

            Examples of incorrect code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" } };

            Examples of correct code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = {
            \t  \t  \t  \t  "bar": "This is a bar.",
            \t  \t  \t  \t  "baz": { "qux": "This is a qux" }
            \t  \t  };

            comments

            Examples of incorrect code for this rule with the { "comments": 65 } option:

            /*eslint max-len: ["error", { "comments": 65 }]*/
            
            /**
             * This is a comment that violates the maximum line length we have specified
            **/

            ignoreComments

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

            /*eslint max-len: ["error", { "ignoreComments": true }]*/
            
            /**
             * This is a really really really really really really really really really long comment
            **/

            ignoreTrailingComments

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

            /*eslint max-len: ["error", { "ignoreTrailingComments": true }]*/
            
            var foo = 'bar'; // This is a really really really really really really really long comment

            ignoreUrls

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

            /*eslint max-len: ["error", { "ignoreUrls": true }]*/
            
            var url = 'https://www.example.com/really/really/really/really/really/really/really/long';

            ignoreStrings

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

            /*eslint max-len: ["error", { "ignoreStrings": true }]*/
            
            var longString = 'this is a really really really really really long string!';

            ignoreTemplateLiterals

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

            /*eslint max-len: ["error", { "ignoreTemplateLiterals": true }]*/
            
            var longTemplateLiteral = `this is a really really really really really long template literal!`;

            ignoreRegExpLiterals

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

            /*eslint max-len: ["error", { "ignoreRegExpLiterals": true }]*/
            
            var longRegExpLiteral = /this is a really really really really really long regular expression!/;

            ignorePattern

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

            /*eslint max-len: ["error", { "ignorePattern": "^\\s*var\\s.+=\\s*require\\s*\\(/" }]*/
            
            var dep = require('really/really/really/really/really/really/really/really/long/module');

            Related Rules

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

            Line 361 exceeds the maximum line length of 100.
            Open

                  var _ref9 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee7(namedId, shellname, GhostViewClass) {

            enforce a maximum line length (max-len)

            Very long lines of code in any language can be difficult to read. In order to aid in readability and maintainability many coders have developed a convention to limit lines of code to X number of characters (traditionally 80 characters).

            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" }; // very long

            Rule Details

            This rule enforces a maximum line length to increase code readability and maintainability. The length of a line is defined as the number of Unicode characters in the line.

            Options

            This rule has a number or object option:

            • "code" (default 80) enforces a maximum line length
            • "tabWidth" (default 4) specifies the character width for tab characters
            • "comments" enforces a maximum line length for comments; defaults to value of code
            • "ignorePattern" ignores lines matching a regular expression; can only match a single line and need to be double escaped when written in YAML or JSON
            • "ignoreComments": true ignores all trailing comments and comments on their own line
            • "ignoreTrailingComments": true ignores only trailing comments
            • "ignoreUrls": true ignores lines that contain a URL
            • "ignoreStrings": true ignores lines that contain a double-quoted or single-quoted string
            • "ignoreTemplateLiterals": true ignores lines that contain a template literal
            • "ignoreRegExpLiterals": true ignores lines that contain a RegExp literal

            code

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" };

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = {
              "bar": "This is a bar.",
              "baz": { "qux": "This is a qux" },
              "easier": "to read"
            };

            tabWidth

            Examples of incorrect code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" } };

            Examples of correct code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = {
            \t  \t  \t  \t  "bar": "This is a bar.",
            \t  \t  \t  \t  "baz": { "qux": "This is a qux" }
            \t  \t  };

            comments

            Examples of incorrect code for this rule with the { "comments": 65 } option:

            /*eslint max-len: ["error", { "comments": 65 }]*/
            
            /**
             * This is a comment that violates the maximum line length we have specified
            **/

            ignoreComments

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

            /*eslint max-len: ["error", { "ignoreComments": true }]*/
            
            /**
             * This is a really really really really really really really really really long comment
            **/

            ignoreTrailingComments

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

            /*eslint max-len: ["error", { "ignoreTrailingComments": true }]*/
            
            var foo = 'bar'; // This is a really really really really really really really long comment

            ignoreUrls

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

            /*eslint max-len: ["error", { "ignoreUrls": true }]*/
            
            var url = 'https://www.example.com/really/really/really/really/really/really/really/long';

            ignoreStrings

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

            /*eslint max-len: ["error", { "ignoreStrings": true }]*/
            
            var longString = 'this is a really really really really really long string!';

            ignoreTemplateLiterals

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

            /*eslint max-len: ["error", { "ignoreTemplateLiterals": true }]*/
            
            var longTemplateLiteral = `this is a really really really really really long template literal!`;

            ignoreRegExpLiterals

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

            /*eslint max-len: ["error", { "ignoreRegExpLiterals": true }]*/
            
            var longRegExpLiteral = /this is a really really really really really long regular expression!/;

            ignorePattern

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

            /*eslint max-len: ["error", { "ignorePattern": "^\\s*var\\s.+=\\s*require\\s*\\(/" }]*/
            
            var dep = require('really/really/really/really/really/really/really/really/long/module');

            Related Rules

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

            Line 560 exceeds the maximum line length of 100.
            Open

                  var _ref13 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee11(target) {

            enforce a maximum line length (max-len)

            Very long lines of code in any language can be difficult to read. In order to aid in readability and maintainability many coders have developed a convention to limit lines of code to X number of characters (traditionally 80 characters).

            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" }; // very long

            Rule Details

            This rule enforces a maximum line length to increase code readability and maintainability. The length of a line is defined as the number of Unicode characters in the line.

            Options

            This rule has a number or object option:

            • "code" (default 80) enforces a maximum line length
            • "tabWidth" (default 4) specifies the character width for tab characters
            • "comments" enforces a maximum line length for comments; defaults to value of code
            • "ignorePattern" ignores lines matching a regular expression; can only match a single line and need to be double escaped when written in YAML or JSON
            • "ignoreComments": true ignores all trailing comments and comments on their own line
            • "ignoreTrailingComments": true ignores only trailing comments
            • "ignoreUrls": true ignores lines that contain a URL
            • "ignoreStrings": true ignores lines that contain a double-quoted or single-quoted string
            • "ignoreTemplateLiterals": true ignores lines that contain a template literal
            • "ignoreRegExpLiterals": true ignores lines that contain a RegExp literal

            code

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" };

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = {
              "bar": "This is a bar.",
              "baz": { "qux": "This is a qux" },
              "easier": "to read"
            };

            tabWidth

            Examples of incorrect code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" } };

            Examples of correct code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = {
            \t  \t  \t  \t  "bar": "This is a bar.",
            \t  \t  \t  \t  "baz": { "qux": "This is a qux" }
            \t  \t  };

            comments

            Examples of incorrect code for this rule with the { "comments": 65 } option:

            /*eslint max-len: ["error", { "comments": 65 }]*/
            
            /**
             * This is a comment that violates the maximum line length we have specified
            **/

            ignoreComments

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

            /*eslint max-len: ["error", { "ignoreComments": true }]*/
            
            /**
             * This is a really really really really really really really really really long comment
            **/

            ignoreTrailingComments

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

            /*eslint max-len: ["error", { "ignoreTrailingComments": true }]*/
            
            var foo = 'bar'; // This is a really really really really really really really long comment

            ignoreUrls

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

            /*eslint max-len: ["error", { "ignoreUrls": true }]*/
            
            var url = 'https://www.example.com/really/really/really/really/really/really/really/long';

            ignoreStrings

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

            /*eslint max-len: ["error", { "ignoreStrings": true }]*/
            
            var longString = 'this is a really really really really really long string!';

            ignoreTemplateLiterals

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

            /*eslint max-len: ["error", { "ignoreTemplateLiterals": true }]*/
            
            var longTemplateLiteral = `this is a really really really really really long template literal!`;

            ignoreRegExpLiterals

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

            /*eslint max-len: ["error", { "ignoreRegExpLiterals": true }]*/
            
            var longRegExpLiteral = /this is a really really really really really long regular expression!/;

            ignorePattern

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

            /*eslint max-len: ["error", { "ignorePattern": "^\\s*var\\s.+=\\s*require\\s*\\(/" }]*/
            
            var dep = require('really/really/really/really/really/really/really/really/long/module');

            Related Rules

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

            Line 544 exceeds the maximum line length of 100.
            Open

                  var GhostViewClass = arguments.length <= 1 || arguments[1] === undefined ? this.GhostViewClass : arguments[1];

            enforce a maximum line length (max-len)

            Very long lines of code in any language can be difficult to read. In order to aid in readability and maintainability many coders have developed a convention to limit lines of code to X number of characters (traditionally 80 characters).

            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" }; // very long

            Rule Details

            This rule enforces a maximum line length to increase code readability and maintainability. The length of a line is defined as the number of Unicode characters in the line.

            Options

            This rule has a number or object option:

            • "code" (default 80) enforces a maximum line length
            • "tabWidth" (default 4) specifies the character width for tab characters
            • "comments" enforces a maximum line length for comments; defaults to value of code
            • "ignorePattern" ignores lines matching a regular expression; can only match a single line and need to be double escaped when written in YAML or JSON
            • "ignoreComments": true ignores all trailing comments and comments on their own line
            • "ignoreTrailingComments": true ignores only trailing comments
            • "ignoreUrls": true ignores lines that contain a URL
            • "ignoreStrings": true ignores lines that contain a double-quoted or single-quoted string
            • "ignoreTemplateLiterals": true ignores lines that contain a template literal
            • "ignoreRegExpLiterals": true ignores lines that contain a RegExp literal

            code

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" };

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = {
              "bar": "This is a bar.",
              "baz": { "qux": "This is a qux" },
              "easier": "to read"
            };

            tabWidth

            Examples of incorrect code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" } };

            Examples of correct code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = {
            \t  \t  \t  \t  "bar": "This is a bar.",
            \t  \t  \t  \t  "baz": { "qux": "This is a qux" }
            \t  \t  };

            comments

            Examples of incorrect code for this rule with the { "comments": 65 } option:

            /*eslint max-len: ["error", { "comments": 65 }]*/
            
            /**
             * This is a comment that violates the maximum line length we have specified
            **/

            ignoreComments

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

            /*eslint max-len: ["error", { "ignoreComments": true }]*/
            
            /**
             * This is a really really really really really really really really really long comment
            **/

            ignoreTrailingComments

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

            /*eslint max-len: ["error", { "ignoreTrailingComments": true }]*/
            
            var foo = 'bar'; // This is a really really really really really really really long comment

            ignoreUrls

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

            /*eslint max-len: ["error", { "ignoreUrls": true }]*/
            
            var url = 'https://www.example.com/really/really/really/really/really/really/really/long';

            ignoreStrings

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

            /*eslint max-len: ["error", { "ignoreStrings": true }]*/
            
            var longString = 'this is a really really really really really long string!';

            ignoreTemplateLiterals

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

            /*eslint max-len: ["error", { "ignoreTemplateLiterals": true }]*/
            
            var longTemplateLiteral = `this is a really really really really really long template literal!`;

            ignoreRegExpLiterals

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

            /*eslint max-len: ["error", { "ignoreRegExpLiterals": true }]*/
            
            var longRegExpLiteral = /this is a really really really really really long regular expression!/;

            ignorePattern

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

            /*eslint max-len: ["error", { "ignorePattern": "^\\s*var\\s.+=\\s*require\\s*\\(/" }]*/
            
            var dep = require('really/really/really/really/really/really/really/really/long/module');

            Related Rules

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

            Line 587 exceeds the maximum line length of 100.
            Open

                            if (!(target instanceof URL || target instanceof String || typeof target === 'string')) {

            enforce a maximum line length (max-len)

            Very long lines of code in any language can be difficult to read. In order to aid in readability and maintainability many coders have developed a convention to limit lines of code to X number of characters (traditionally 80 characters).

            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" }; // very long

            Rule Details

            This rule enforces a maximum line length to increase code readability and maintainability. The length of a line is defined as the number of Unicode characters in the line.

            Options

            This rule has a number or object option:

            • "code" (default 80) enforces a maximum line length
            • "tabWidth" (default 4) specifies the character width for tab characters
            • "comments" enforces a maximum line length for comments; defaults to value of code
            • "ignorePattern" ignores lines matching a regular expression; can only match a single line and need to be double escaped when written in YAML or JSON
            • "ignoreComments": true ignores all trailing comments and comments on their own line
            • "ignoreTrailingComments": true ignores only trailing comments
            • "ignoreUrls": true ignores lines that contain a URL
            • "ignoreStrings": true ignores lines that contain a double-quoted or single-quoted string
            • "ignoreTemplateLiterals": true ignores lines that contain a template literal
            • "ignoreRegExpLiterals": true ignores lines that contain a RegExp literal

            code

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" };

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = {
              "bar": "This is a bar.",
              "baz": { "qux": "This is a qux" },
              "easier": "to read"
            };

            tabWidth

            Examples of incorrect code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" } };

            Examples of correct code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = {
            \t  \t  \t  \t  "bar": "This is a bar.",
            \t  \t  \t  \t  "baz": { "qux": "This is a qux" }
            \t  \t  };

            comments

            Examples of incorrect code for this rule with the { "comments": 65 } option:

            /*eslint max-len: ["error", { "comments": 65 }]*/
            
            /**
             * This is a comment that violates the maximum line length we have specified
            **/

            ignoreComments

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

            /*eslint max-len: ["error", { "ignoreComments": true }]*/
            
            /**
             * This is a really really really really really really really really really long comment
            **/

            ignoreTrailingComments

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

            /*eslint max-len: ["error", { "ignoreTrailingComments": true }]*/
            
            var foo = 'bar'; // This is a really really really really really really really long comment

            ignoreUrls

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

            /*eslint max-len: ["error", { "ignoreUrls": true }]*/
            
            var url = 'https://www.example.com/really/really/really/really/really/really/really/long';

            ignoreStrings

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

            /*eslint max-len: ["error", { "ignoreStrings": true }]*/
            
            var longString = 'this is a really really really really really long string!';

            ignoreTemplateLiterals

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

            /*eslint max-len: ["error", { "ignoreTemplateLiterals": true }]*/
            
            var longTemplateLiteral = `this is a really really really really really long template literal!`;

            ignoreRegExpLiterals

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

            /*eslint max-len: ["error", { "ignoreRegExpLiterals": true }]*/
            
            var longRegExpLiteral = /this is a really really really really really long regular expression!/;

            ignorePattern

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

            /*eslint max-len: ["error", { "ignorePattern": "^\\s*var\\s.+=\\s*require\\s*\\(/" }]*/
            
            var dep = require('really/really/really/really/really/really/really/really/long/module');

            Related Rules

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

            Line 562 exceeds the maximum line length of 100.
            Open

                    var nanikaStorage, nar, dirpath, sakuraname, install_results, ghost_result, balloon_result, profile;

            enforce a maximum line length (max-len)

            Very long lines of code in any language can be difficult to read. In order to aid in readability and maintainability many coders have developed a convention to limit lines of code to X number of characters (traditionally 80 characters).

            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" }; // very long

            Rule Details

            This rule enforces a maximum line length to increase code readability and maintainability. The length of a line is defined as the number of Unicode characters in the line.

            Options

            This rule has a number or object option:

            • "code" (default 80) enforces a maximum line length
            • "tabWidth" (default 4) specifies the character width for tab characters
            • "comments" enforces a maximum line length for comments; defaults to value of code
            • "ignorePattern" ignores lines matching a regular expression; can only match a single line and need to be double escaped when written in YAML or JSON
            • "ignoreComments": true ignores all trailing comments and comments on their own line
            • "ignoreTrailingComments": true ignores only trailing comments
            • "ignoreUrls": true ignores lines that contain a URL
            • "ignoreStrings": true ignores lines that contain a double-quoted or single-quoted string
            • "ignoreTemplateLiterals": true ignores lines that contain a template literal
            • "ignoreRegExpLiterals": true ignores lines that contain a RegExp literal

            code

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" };

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = {
              "bar": "This is a bar.",
              "baz": { "qux": "This is a qux" },
              "easier": "to read"
            };

            tabWidth

            Examples of incorrect code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" } };

            Examples of correct code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = {
            \t  \t  \t  \t  "bar": "This is a bar.",
            \t  \t  \t  \t  "baz": { "qux": "This is a qux" }
            \t  \t  };

            comments

            Examples of incorrect code for this rule with the { "comments": 65 } option:

            /*eslint max-len: ["error", { "comments": 65 }]*/
            
            /**
             * This is a comment that violates the maximum line length we have specified
            **/

            ignoreComments

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

            /*eslint max-len: ["error", { "ignoreComments": true }]*/
            
            /**
             * This is a really really really really really really really really really long comment
            **/

            ignoreTrailingComments

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

            /*eslint max-len: ["error", { "ignoreTrailingComments": true }]*/
            
            var foo = 'bar'; // This is a really really really really really really really long comment

            ignoreUrls

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

            /*eslint max-len: ["error", { "ignoreUrls": true }]*/
            
            var url = 'https://www.example.com/really/really/really/really/really/really/really/long';

            ignoreStrings

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

            /*eslint max-len: ["error", { "ignoreStrings": true }]*/
            
            var longString = 'this is a really really really really really long string!';

            ignoreTemplateLiterals

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

            /*eslint max-len: ["error", { "ignoreTemplateLiterals": true }]*/
            
            var longTemplateLiteral = `this is a really really really really really long template literal!`;

            ignoreRegExpLiterals

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

            /*eslint max-len: ["error", { "ignoreRegExpLiterals": true }]*/
            
            var longRegExpLiteral = /this is a really really really really really long regular expression!/;

            ignorePattern

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

            /*eslint max-len: ["error", { "ignorePattern": "^\\s*var\\s.+=\\s*require\\s*\\(/" }]*/
            
            var dep = require('really/really/really/really/really/really/really/really/long/module');

            Related Rules

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

            Line 611 exceeds the maximum line length of 100.
            Open

                              dirpath = typeof from === 'string' || from instanceof String ? from : this.namedId(from);

            enforce a maximum line length (max-len)

            Very long lines of code in any language can be difficult to read. In order to aid in readability and maintainability many coders have developed a convention to limit lines of code to X number of characters (traditionally 80 characters).

            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" }; // very long

            Rule Details

            This rule enforces a maximum line length to increase code readability and maintainability. The length of a line is defined as the number of Unicode characters in the line.

            Options

            This rule has a number or object option:

            • "code" (default 80) enforces a maximum line length
            • "tabWidth" (default 4) specifies the character width for tab characters
            • "comments" enforces a maximum line length for comments; defaults to value of code
            • "ignorePattern" ignores lines matching a regular expression; can only match a single line and need to be double escaped when written in YAML or JSON
            • "ignoreComments": true ignores all trailing comments and comments on their own line
            • "ignoreTrailingComments": true ignores only trailing comments
            • "ignoreUrls": true ignores lines that contain a URL
            • "ignoreStrings": true ignores lines that contain a double-quoted or single-quoted string
            • "ignoreTemplateLiterals": true ignores lines that contain a template literal
            • "ignoreRegExpLiterals": true ignores lines that contain a RegExp literal

            code

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" }, "difficult": "to read" };

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

            /*eslint max-len: ["error", 80]*/
            
            var foo = {
              "bar": "This is a bar.",
              "baz": { "qux": "This is a qux" },
              "easier": "to read"
            };

            tabWidth

            Examples of incorrect code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = { "bar": "This is a bar.", "baz": { "qux": "This is a qux" } };

            Examples of correct code for this rule with the default { "tabWidth": 4 } option:

            /*eslint max-len: ["error", 80, 4]*/
            
            \t  \t  var foo = {
            \t  \t  \t  \t  "bar": "This is a bar.",
            \t  \t  \t  \t  "baz": { "qux": "This is a qux" }
            \t  \t  };

            comments

            Examples of incorrect code for this rule with the { "comments": 65 } option:

            /*eslint max-len: ["error", { "comments": 65 }]*/
            
            /**
             * This is a comment that violates the maximum line length we have specified
            **/

            ignoreComments

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

            /*eslint max-len: ["error", { "ignoreComments": true }]*/
            
            /**
             * This is a really really really really really really really really really long comment
            **/

            ignoreTrailingComments

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

            /*eslint max-len: ["error", { "ignoreTrailingComments": true }]*/
            
            var foo = 'bar'; // This is a really really really really really really really long comment

            ignoreUrls

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

            /*eslint max-len: ["error", { "ignoreUrls": true }]*/
            
            var url = 'https://www.example.com/really/really/really/really/really/really/really/long';

            ignoreStrings

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

            /*eslint max-len: ["error", { "ignoreStrings": true }]*/
            
            var longString = 'this is a really really really really really long string!';

            ignoreTemplateLiterals

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

            /*eslint max-len: ["error", { "ignoreTemplateLiterals": true }]*/
            
            var longTemplateLiteral = `this is a really really really really really long template literal!`;

            ignoreRegExpLiterals

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

            /*eslint max-len: ["error", { "ignoreRegExpLiterals": true }]*/
            
            var longRegExpLiteral = /this is a really really really really really long regular expression!/;

            ignorePattern

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

            /*eslint max-len: ["error", { "ignorePattern": "^\\s*var\\s.+=\\s*require\\s*\\(/" }]*/
            
            var dep = require('really/really/really/really/really/really/really/really/long/module');

            Related Rules

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

            Too many nested callbacks (4). Maximum allowed is 3.
            Open

                            install_results.forEach(function (install_result) {

            enforce a maximum depth that callbacks can be nested (max-nested-callbacks)

            Many JavaScript libraries use the callback pattern to manage asynchronous operations. A program of any complexity will most likely need to manage several asynchronous operations at various levels of concurrency. A common pitfall that is easy to fall into is nesting callbacks, which makes code more difficult to read the deeper the callbacks are nested.

            foo(function () {
                bar(function () {
                    baz(function() {
                        qux(function () {
            
                        });
                    });
                });
            });

            Rule Details

            This rule enforces a maximum depth that callbacks can be nested to increase code clarity.

            Options

            This rule has a number or object option:

            • "max" (default 10) enforces a maximum depth that callbacks can be nested

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

            max

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

            /*eslint max-nested-callbacks: ["error", 3]*/
            
            foo1(function() {
                foo2(function() {
                    foo3(function() {
                        foo4(function() {
                            // Do something
                        });
                    });
                });
            });

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

            /*eslint max-nested-callbacks: ["error", 3]*/
            
            foo1(handleFoo1);
            
            function handleFoo1() {
                foo2(handleFoo2);
            }
            
            function handleFoo2() {
                foo3(handleFoo3);
            }
            
            function handleFoo3() {
                foo4(handleFoo4);
            }
            
            function handleFoo4() {
                foo5();
            }

            Further Reading

            Related Rules

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

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

                value: function () {
                  var _ref4 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee4(namedId, shellname, balloonname, routes, controllers, GhostViewClass) {
                    var _this = this;
            
                    return _regenerator2.default.wrap(function _callee4$(_context4) {
            Severity: Minor
            Found in lib/named-kernel-manager-ghost-module.js - About 1 hr to fix

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

                  value: function () {
                    var _ref9 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee7(namedId, shellname, GhostViewClass) {
                      var directory, shell;
                      return _regenerator2.default.wrap(function _callee7$(_context7) {
                        while (1) {
              Severity: Minor
              Found in lib/named-kernel-manager-ghost-module.js - About 1 hr to fix

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

                    value: function () {
                      var _ref11 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee9(balloonname, GhostViewClass) {
                        var directory, balloon;
                        return _regenerator2.default.wrap(function _callee9$(_context9) {
                          while (1) {
                Severity: Minor
                Found in lib/named-kernel-manager-ghost-module.js - About 1 hr to fix

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

                      value: function () {
                        var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(namedId, profile, routes, controllers, GhostViewClass) {
                          var kernel;
                          return _regenerator2.default.wrap(function _callee$(_context) {
                            while (1) {
                  Severity: Minor
                  Found in lib/named-kernel-manager-ghost-module.js - About 1 hr to fix

                    Function value has 27 lines of code (exceeds 25 allowed). Consider refactoring.
                    Open

                        value: function () {
                          var _ref2 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee2(namedId, profile) {
                            return _regenerator2.default.wrap(function _callee2$(_context2) {
                              while (1) {
                                switch (_context2.prev = _context2.next) {
                    Severity: Minor
                    Found in lib/named-kernel-manager-ghost-module.js - About 1 hr to fix

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

                          value: function () {
                            var _ref8 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee6(fs, dirpath) {
                              var shiori, result;
                              return _regenerator2.default.wrap(function _callee6$(_context6) {
                                while (1) {
                      Severity: Minor
                      Found in lib/named-kernel-manager-ghost-module.js - About 1 hr to fix

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

                              var _ref4 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee4(namedId, shellname, balloonname, routes, controllers, GhostViewClass) {
                                var _this = this;
                        
                                return _regenerator2.default.wrap(function _callee4$(_context4) {
                                  while (1) {
                        Severity: Minor
                        Found in lib/named-kernel-manager-ghost-module.js - About 1 hr to fix

                          Function _get_ghost_kernel has 6 arguments (exceeds 4 allowed). Consider refactoring.
                          Open

                                function _get_ghost_kernel(_x13, _x14, _x15, _x16, _x17, _x18) {
                          Severity: Minor
                          Found in lib/named-kernel-manager-ghost-module.js - About 45 mins to fix

                            Function _ref4 has 6 arguments (exceeds 4 allowed). Consider refactoring.
                            Open

                                  var _ref4 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee4(namedId, shellname, balloonname, routes, controllers, GhostViewClass) {
                            Severity: Minor
                            Found in lib/named-kernel-manager-ghost-module.js - About 45 mins to fix

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

                                    function _getGhostKernelAsProfile(_x8, _x9, _x10, _x11, _x12) {
                              Severity: Minor
                              Found in lib/named-kernel-manager-ghost-module.js - About 35 mins to fix

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

                                      function loadGhost(_x, _x2, _x3, _x4, _x5) {
                                Severity: Minor
                                Found in lib/named-kernel-manager-ghost-module.js - About 35 mins to fix

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

                                        var _ref3 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee3(namedId, profile, routes, controllers, GhostViewClass) {
                                  Severity: Minor
                                  Found in lib/named-kernel-manager-ghost-module.js - About 35 mins to fix

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

                                          var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(namedId, profile, routes, controllers, GhostViewClass) {
                                    Severity: Minor
                                    Found in lib/named-kernel-manager-ghost-module.js - About 35 mins to fix

                                      Avoid too many return statements within this function.
                                      Open

                                                      return nanikaStorage.ghost_profile(ghost_result.directory);
                                      Severity: Major
                                      Found in lib/named-kernel-manager-ghost-module.js - About 30 mins to fix

                                        Avoid too many return statements within this function.
                                        Open

                                                        return nanikaStorage.ghost_profile(ghost_result.directory, profile);
                                        Severity: Major
                                        Found in lib/named-kernel-manager-ghost-module.js - About 30 mins to fix

                                          All 'var' declarations must be at the top of the function scope.
                                          Open

                                          var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray');

                                          Require Variable Declarations to be at the top of their scope (vars-on-top)

                                          The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

                                          Rule Details

                                          This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

                                          Examples of incorrect code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variable declarations in a block:
                                          function doSomething() {
                                              var first;
                                              if (true) {
                                                  first = true;
                                              }
                                              var second;
                                          }
                                          
                                          // Variable declaration in for initializer:
                                          function doSomething() {
                                              for (var i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variables after other statements:
                                          f();
                                          var a;

                                          Examples of correct code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          function doSomething() {
                                              var first;
                                              var second; //multiple declarations are allowed at the top
                                              if (true) {
                                                  first = true;
                                              }
                                          }
                                          
                                          function doSomething() {
                                              var i;
                                              for (i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          var a;
                                          f();
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Directives may precede variable declarations.
                                          "use strict";
                                          var a;
                                          f();
                                          
                                          // Comments can describe variables.
                                          function doSomething() {
                                              // this is the first var.
                                              var first;
                                              // this is the second var.
                                              var second
                                          }

                                          Further Reading

                                          All 'var' declarations must be at the top of the function scope.
                                          Open

                                          var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');

                                          Require Variable Declarations to be at the top of their scope (vars-on-top)

                                          The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

                                          Rule Details

                                          This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

                                          Examples of incorrect code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variable declarations in a block:
                                          function doSomething() {
                                              var first;
                                              if (true) {
                                                  first = true;
                                              }
                                              var second;
                                          }
                                          
                                          // Variable declaration in for initializer:
                                          function doSomething() {
                                              for (var i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variables after other statements:
                                          f();
                                          var a;

                                          Examples of correct code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          function doSomething() {
                                              var first;
                                              var second; //multiple declarations are allowed at the top
                                              if (true) {
                                                  first = true;
                                              }
                                          }
                                          
                                          function doSomething() {
                                              var i;
                                              for (i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          var a;
                                          f();
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Directives may precede variable declarations.
                                          "use strict";
                                          var a;
                                          f();
                                          
                                          // Comments can describe variables.
                                          function doSomething() {
                                              // this is the first var.
                                              var first;
                                              // this is the second var.
                                              var second
                                          }

                                          Further Reading

                                          All 'var' declarations must be at the top of the function scope.
                                          Open

                                          var _createClass3 = _interopRequireDefault(_createClass2);

                                          Require Variable Declarations to be at the top of their scope (vars-on-top)

                                          The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

                                          Rule Details

                                          This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

                                          Examples of incorrect code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variable declarations in a block:
                                          function doSomething() {
                                              var first;
                                              if (true) {
                                                  first = true;
                                              }
                                              var second;
                                          }
                                          
                                          // Variable declaration in for initializer:
                                          function doSomething() {
                                              for (var i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variables after other statements:
                                          f();
                                          var a;

                                          Examples of correct code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          function doSomething() {
                                              var first;
                                              var second; //multiple declarations are allowed at the top
                                              if (true) {
                                                  first = true;
                                              }
                                          }
                                          
                                          function doSomething() {
                                              var i;
                                              for (i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          var a;
                                          f();
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Directives may precede variable declarations.
                                          "use strict";
                                          var a;
                                          f();
                                          
                                          // Comments can describe variables.
                                          function doSomething() {
                                              // this is the first var.
                                              var first;
                                              // this is the second var.
                                              var second
                                          }

                                          Further Reading

                                          All 'var' declarations must be at the top of the function scope.
                                          Open

                                          var _regenerator = require('babel-runtime/regenerator');

                                          Require Variable Declarations to be at the top of their scope (vars-on-top)

                                          The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

                                          Rule Details

                                          This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

                                          Examples of incorrect code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variable declarations in a block:
                                          function doSomething() {
                                              var first;
                                              if (true) {
                                                  first = true;
                                              }
                                              var second;
                                          }
                                          
                                          // Variable declaration in for initializer:
                                          function doSomething() {
                                              for (var i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variables after other statements:
                                          f();
                                          var a;

                                          Examples of correct code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          function doSomething() {
                                              var first;
                                              var second; //multiple declarations are allowed at the top
                                              if (true) {
                                                  first = true;
                                              }
                                          }
                                          
                                          function doSomething() {
                                              var i;
                                              for (i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          var a;
                                          f();
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Directives may precede variable declarations.
                                          "use strict";
                                          var a;
                                          f();
                                          
                                          // Comments can describe variables.
                                          function doSomething() {
                                              // this is the first var.
                                              var first;
                                              // this is the second var.
                                              var second
                                          }

                                          Further Reading

                                          Missing JSDoc comment.
                                          Open

                                          function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

                                          require JSDoc comments (require-jsdoc)

                                          JSDoc is a JavaScript API documentation generator. It uses specially-formatted comments inside of code to generate API documentation automatically. For example, this is what a JSDoc comment looks like for a function:

                                          /**
                                           * Adds two numbers together.
                                           * @param {int} num1 The first number.
                                           * @param {int} num2 The second number.
                                           * @returns {int} The sum of the two numbers.
                                           */
                                          function sum(num1, num2) {
                                              return num1 + num2;
                                          }

                                          Some style guides require JSDoc comments for all functions as a way of explaining function behavior.

                                          Rule Details

                                          This rule requires JSDoc comments for specified nodes. Supported nodes:

                                          • "FunctionDeclaration"
                                          • "ClassDeclaration"
                                          • "MethodDefinition"
                                          • "ArrowFunctionExpression"

                                          Options

                                          This rule has a single object option:

                                          • "require" requires JSDoc comments for the specified nodes

                                          Default option settings are:

                                          {
                                              "require-jsdoc": ["error", {
                                                  "require": {
                                                      "FunctionDeclaration": true,
                                                      "MethodDefinition": false,
                                                      "ClassDeclaration": false,
                                                      "ArrowFunctionExpression": false
                                                  }
                                              }]
                                          }

                                          require

                                          Examples of incorrect code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true } } option:

                                          /*eslint "require-jsdoc": ["error", {
                                              "require": {
                                                  "FunctionDeclaration": true,
                                                  "MethodDefinition": true,
                                                  "ClassDeclaration": true
                                              }
                                          }]*/
                                          
                                          function foo() {
                                              return 10;
                                          }
                                          
                                          var foo = () => {
                                              return 10;
                                          }
                                          
                                          class Test{
                                              getDate(){}
                                          }

                                          Examples of correct code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true } } option:

                                          /*eslint "require-jsdoc": ["error", {
                                              "require": {
                                                  "FunctionDeclaration": true,
                                                  "MethodDefinition": true,
                                                  "ClassDeclaration": true
                                              }
                                          }]*/
                                          
                                          /**
                                           * It returns 10
                                           */
                                          function foo() {
                                              return 10;
                                          }
                                          
                                          /**
                                           * It returns test + 10
                                           * @params {int} test - some number
                                           * @returns {int} sum of test and 10
                                           */
                                          var foo = (test) => {
                                              return test + 10;
                                          }
                                          
                                          /**
                                           * It returns 10
                                           */
                                          var foo = () => {
                                              return 10;
                                          }
                                          
                                          /**
                                           * It returns 10
                                           */
                                          var foo = function() {
                                              return 10;
                                          }
                                          
                                          var array = [1,2,3];
                                          array.filter(function(item) {
                                              return item > 2;
                                          });
                                          
                                          /**
                                           * It returns 10
                                           */
                                          class Test{
                                              /**
                                              * returns the date
                                              */
                                              getDate(){}
                                          }
                                          
                                          setTimeout(() => {}, 10); // since it's an anonymous arrow function

                                          When Not To Use It

                                          If you do not require JSDoc for your functions, then you can leave this rule off.

                                          Related Rules

                                          Unexpected var, use let or const instead.
                                          Open

                                          var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          All 'var' declarations must be at the top of the function scope.
                                          Open

                                          var _createClass2 = require('babel-runtime/helpers/createClass');

                                          Require Variable Declarations to be at the top of their scope (vars-on-top)

                                          The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

                                          Rule Details

                                          This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

                                          Examples of incorrect code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variable declarations in a block:
                                          function doSomething() {
                                              var first;
                                              if (true) {
                                                  first = true;
                                              }
                                              var second;
                                          }
                                          
                                          // Variable declaration in for initializer:
                                          function doSomething() {
                                              for (var i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variables after other statements:
                                          f();
                                          var a;

                                          Examples of correct code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          function doSomething() {
                                              var first;
                                              var second; //multiple declarations are allowed at the top
                                              if (true) {
                                                  first = true;
                                              }
                                          }
                                          
                                          function doSomething() {
                                              var i;
                                              for (i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          var a;
                                          f();
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Directives may precede variable declarations.
                                          "use strict";
                                          var a;
                                          f();
                                          
                                          // Comments can describe variables.
                                          function doSomething() {
                                              // this is the first var.
                                              var first;
                                              // this is the second var.
                                              var second
                                          }

                                          Further Reading

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                              /**

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Unexpected var, use let or const instead.
                                          Open

                                                var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(namedId, profile, routes, controllers, GhostViewClass) {

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          No magic number: 7.
                                          Open

                                                        case 7:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Unexpected var, use let or const instead.
                                          Open

                                          var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          All 'var' declarations must be at the top of the function scope.
                                          Open

                                          var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);

                                          Require Variable Declarations to be at the top of their scope (vars-on-top)

                                          The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

                                          Rule Details

                                          This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

                                          Examples of incorrect code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variable declarations in a block:
                                          function doSomething() {
                                              var first;
                                              if (true) {
                                                  first = true;
                                              }
                                              var second;
                                          }
                                          
                                          // Variable declaration in for initializer:
                                          function doSomething() {
                                              for (var i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variables after other statements:
                                          f();
                                          var a;

                                          Examples of correct code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          function doSomething() {
                                              var first;
                                              var second; //multiple declarations are allowed at the top
                                              if (true) {
                                                  first = true;
                                              }
                                          }
                                          
                                          function doSomething() {
                                              var i;
                                              for (i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          var a;
                                          f();
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Directives may precede variable declarations.
                                          "use strict";
                                          var a;
                                          f();
                                          
                                          // Comments can describe variables.
                                          function doSomething() {
                                              // this is the first var.
                                              var first;
                                              // this is the second var.
                                              var second
                                          }

                                          Further Reading

                                          All 'var' declarations must be at the top of the function scope.
                                          Open

                                          var NamedKernelManagerGhostModule = exports.NamedKernelManagerGhostModule = function () {

                                          Require Variable Declarations to be at the top of their scope (vars-on-top)

                                          The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

                                          Rule Details

                                          This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

                                          Examples of incorrect code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variable declarations in a block:
                                          function doSomething() {
                                              var first;
                                              if (true) {
                                                  first = true;
                                              }
                                              var second;
                                          }
                                          
                                          // Variable declaration in for initializer:
                                          function doSomething() {
                                              for (var i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variables after other statements:
                                          f();
                                          var a;

                                          Examples of correct code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          function doSomething() {
                                              var first;
                                              var second; //multiple declarations are allowed at the top
                                              if (true) {
                                                  first = true;
                                              }
                                          }
                                          
                                          function doSomething() {
                                              var i;
                                              for (i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          var a;
                                          f();
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Directives may precede variable declarations.
                                          "use strict";
                                          var a;
                                          f();
                                          
                                          // Comments can describe variables.
                                          function doSomething() {
                                              // this is the first var.
                                              var first;
                                              // this is the second var.
                                              var second
                                          }

                                          Further Reading

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {GhostProfile} [profile] - profile

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {cuttlebone} [GhostViewClass] ghost view class

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          No magic number: 0.
                                          Open

                                                var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(namedId, profile, routes, controllers, GhostViewClass) {

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Missing JSDoc comment.
                                          Open

                                                function loadGhost(_x, _x2, _x3, _x4, _x5) {

                                          require JSDoc comments (require-jsdoc)

                                          JSDoc is a JavaScript API documentation generator. It uses specially-formatted comments inside of code to generate API documentation automatically. For example, this is what a JSDoc comment looks like for a function:

                                          /**
                                           * Adds two numbers together.
                                           * @param {int} num1 The first number.
                                           * @param {int} num2 The second number.
                                           * @returns {int} The sum of the two numbers.
                                           */
                                          function sum(num1, num2) {
                                              return num1 + num2;
                                          }

                                          Some style guides require JSDoc comments for all functions as a way of explaining function behavior.

                                          Rule Details

                                          This rule requires JSDoc comments for specified nodes. Supported nodes:

                                          • "FunctionDeclaration"
                                          • "ClassDeclaration"
                                          • "MethodDefinition"
                                          • "ArrowFunctionExpression"

                                          Options

                                          This rule has a single object option:

                                          • "require" requires JSDoc comments for the specified nodes

                                          Default option settings are:

                                          {
                                              "require-jsdoc": ["error", {
                                                  "require": {
                                                      "FunctionDeclaration": true,
                                                      "MethodDefinition": false,
                                                      "ClassDeclaration": false,
                                                      "ArrowFunctionExpression": false
                                                  }
                                              }]
                                          }

                                          require

                                          Examples of incorrect code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true } } option:

                                          /*eslint "require-jsdoc": ["error", {
                                              "require": {
                                                  "FunctionDeclaration": true,
                                                  "MethodDefinition": true,
                                                  "ClassDeclaration": true
                                              }
                                          }]*/
                                          
                                          function foo() {
                                              return 10;
                                          }
                                          
                                          var foo = () => {
                                              return 10;
                                          }
                                          
                                          class Test{
                                              getDate(){}
                                          }

                                          Examples of correct code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true } } option:

                                          /*eslint "require-jsdoc": ["error", {
                                              "require": {
                                                  "FunctionDeclaration": true,
                                                  "MethodDefinition": true,
                                                  "ClassDeclaration": true
                                              }
                                          }]*/
                                          
                                          /**
                                           * It returns 10
                                           */
                                          function foo() {
                                              return 10;
                                          }
                                          
                                          /**
                                           * It returns test + 10
                                           * @params {int} test - some number
                                           * @returns {int} sum of test and 10
                                           */
                                          var foo = (test) => {
                                              return test + 10;
                                          }
                                          
                                          /**
                                           * It returns 10
                                           */
                                          var foo = () => {
                                              return 10;
                                          }
                                          
                                          /**
                                           * It returns 10
                                           */
                                          var foo = function() {
                                              return 10;
                                          }
                                          
                                          var array = [1,2,3];
                                          array.filter(function(item) {
                                              return item > 2;
                                          });
                                          
                                          /**
                                           * It returns 10
                                           */
                                          class Test{
                                              /**
                                              * returns the date
                                              */
                                              getDate(){}
                                          }
                                          
                                          setTimeout(() => {}, 10); // since it's an anonymous arrow function

                                          When Not To Use It

                                          If you do not require JSDoc for your functions, then you can leave this rule off.

                                          Related Rules

                                          Unexpected var, use let or const instead.
                                          Open

                                          var _createClass3 = _interopRequireDefault(_createClass2);

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          All 'var' declarations must be at the top of the function scope.
                                          Open

                                          var _promise = require('babel-runtime/core-js/promise');

                                          Require Variable Declarations to be at the top of their scope (vars-on-top)

                                          The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

                                          Rule Details

                                          This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

                                          Examples of incorrect code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variable declarations in a block:
                                          function doSomething() {
                                              var first;
                                              if (true) {
                                                  first = true;
                                              }
                                              var second;
                                          }
                                          
                                          // Variable declaration in for initializer:
                                          function doSomething() {
                                              for (var i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variables after other statements:
                                          f();
                                          var a;

                                          Examples of correct code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          function doSomething() {
                                              var first;
                                              var second; //multiple declarations are allowed at the top
                                              if (true) {
                                                  first = true;
                                              }
                                          }
                                          
                                          function doSomething() {
                                              var i;
                                              for (i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          var a;
                                          f();
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Directives may precede variable declarations.
                                          "use strict";
                                          var a;
                                          f();
                                          
                                          // Comments can describe variables.
                                          function doSomething() {
                                              // this is the first var.
                                              var first;
                                              // this is the second var.
                                              var second
                                          }

                                          Further Reading

                                          Unexpected var, use let or const instead.
                                          Open

                                          var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Unexpected space before function parentheses.
                                          Open

                                          var NamedKernelManagerGhostModule = exports.NamedKernelManagerGhostModule = function () {

                                          Require or disallow a space before function parenthesis (space-before-function-paren)

                                          When formatting a function, whitespace is allowed between the function name or function keyword and the opening paren. Named functions also require a space between the function keyword and the function name, but anonymous functions require no whitespace. For example:

                                          function withoutSpace(x) {
                                              // ...
                                          }
                                          
                                          function withSpace (x) {
                                              // ...
                                          }
                                          
                                          var anonymousWithoutSpace = function() {};
                                          
                                          var anonymousWithSpace = function () {};

                                          Style guides may require a space after the function keyword for anonymous functions, while others specify no whitespace. Similarly, the space after a function name may or may not be required.

                                          Rule Details

                                          This rule aims to enforce consistent spacing before function parentheses and as such, will warn whenever whitespace doesn't match the preferences specified.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "space-before-function-paren": ["error", "always"],
                                              // or
                                              "space-before-function-paren": ["error", {
                                                  "anonymous": "always",
                                                  "named": "always",
                                                  "asyncArrow": "ignore"
                                              }],
                                          }
                                          • always (default) requires a space followed by the ( of arguments.
                                          • never disallows any space followed by the ( of arguments.

                                          The string option does not check async arrow function expressions for backward compatibility.

                                          You can also use a separate option for each type of function. Each of the following options can be set to "always", "never", or "ignore". Default is "always" basically.

                                          • anonymous is for anonymous function expressions (e.g. function () {}).
                                          • named is for named function expressions (e.g. function foo () {}).
                                          • asyncArrow is for async arrow function expressions (e.g. async () => {}). asyncArrow is set to "ignore" by default for backwards compatibility.

                                          "always"

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

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

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

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          "never"

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

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

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

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          {"anonymous": "always", "named": "never", "asyncArrow": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async(a) => await a

                                          Examples of correct code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async (a) => await a

                                          {"anonymous": "never", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          {"anonymous": "ignore", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with the consistency of spacing before function parenthesis.

                                          Related Rules

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {Hash<GhostKernelController>} [controllers] - コントローラ

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          No magic number: 2.
                                          Open

                                                        case 2:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          All 'var' declarations must be at the top of the function scope.
                                          Open

                                          var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');

                                          Require Variable Declarations to be at the top of their scope (vars-on-top)

                                          The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

                                          Rule Details

                                          This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

                                          Examples of incorrect code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variable declarations in a block:
                                          function doSomething() {
                                              var first;
                                              if (true) {
                                                  first = true;
                                              }
                                              var second;
                                          }
                                          
                                          // Variable declaration in for initializer:
                                          function doSomething() {
                                              for (var i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variables after other statements:
                                          f();
                                          var a;

                                          Examples of correct code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          function doSomething() {
                                              var first;
                                              var second; //multiple declarations are allowed at the top
                                              if (true) {
                                                  first = true;
                                              }
                                          }
                                          
                                          function doSomething() {
                                              var i;
                                              for (i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          var a;
                                          f();
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Directives may precede variable declarations.
                                          "use strict";
                                          var a;
                                          f();
                                          
                                          // Comments can describe variables.
                                          function doSomething() {
                                              // this is the first var.
                                              var first;
                                              // this is the second var.
                                              var second
                                          }

                                          Further Reading

                                          Unexpected var, use let or const instead.
                                          Open

                                          var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * load ghost

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          No magic number: 0.
                                          Open

                                                        case 0:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Unexpected var, use let or const instead.
                                          Open

                                          var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Unexpected var, use let or const instead.
                                          Open

                                          var _namedKernelManager = require('./named-kernel-manager');

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Wrap an immediate function invocation in parentheses.
                                          Open

                                          var NamedKernelManagerGhostModule = exports.NamedKernelManagerGhostModule = function () {

                                          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/

                                          Missing JSDoc comment.
                                          Open

                                            function NamedKernelManagerGhostModule() {

                                          require JSDoc comments (require-jsdoc)

                                          JSDoc is a JavaScript API documentation generator. It uses specially-formatted comments inside of code to generate API documentation automatically. For example, this is what a JSDoc comment looks like for a function:

                                          /**
                                           * Adds two numbers together.
                                           * @param {int} num1 The first number.
                                           * @param {int} num2 The second number.
                                           * @returns {int} The sum of the two numbers.
                                           */
                                          function sum(num1, num2) {
                                              return num1 + num2;
                                          }

                                          Some style guides require JSDoc comments for all functions as a way of explaining function behavior.

                                          Rule Details

                                          This rule requires JSDoc comments for specified nodes. Supported nodes:

                                          • "FunctionDeclaration"
                                          • "ClassDeclaration"
                                          • "MethodDefinition"
                                          • "ArrowFunctionExpression"

                                          Options

                                          This rule has a single object option:

                                          • "require" requires JSDoc comments for the specified nodes

                                          Default option settings are:

                                          {
                                              "require-jsdoc": ["error", {
                                                  "require": {
                                                      "FunctionDeclaration": true,
                                                      "MethodDefinition": false,
                                                      "ClassDeclaration": false,
                                                      "ArrowFunctionExpression": false
                                                  }
                                              }]
                                          }

                                          require

                                          Examples of incorrect code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true } } option:

                                          /*eslint "require-jsdoc": ["error", {
                                              "require": {
                                                  "FunctionDeclaration": true,
                                                  "MethodDefinition": true,
                                                  "ClassDeclaration": true
                                              }
                                          }]*/
                                          
                                          function foo() {
                                              return 10;
                                          }
                                          
                                          var foo = () => {
                                              return 10;
                                          }
                                          
                                          class Test{
                                              getDate(){}
                                          }

                                          Examples of correct code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true } } option:

                                          /*eslint "require-jsdoc": ["error", {
                                              "require": {
                                                  "FunctionDeclaration": true,
                                                  "MethodDefinition": true,
                                                  "ClassDeclaration": true
                                              }
                                          }]*/
                                          
                                          /**
                                           * It returns 10
                                           */
                                          function foo() {
                                              return 10;
                                          }
                                          
                                          /**
                                           * It returns test + 10
                                           * @params {int} test - some number
                                           * @returns {int} sum of test and 10
                                           */
                                          var foo = (test) => {
                                              return test + 10;
                                          }
                                          
                                          /**
                                           * It returns 10
                                           */
                                          var foo = () => {
                                              return 10;
                                          }
                                          
                                          /**
                                           * It returns 10
                                           */
                                          var foo = function() {
                                              return 10;
                                          }
                                          
                                          var array = [1,2,3];
                                          array.filter(function(item) {
                                              return item > 2;
                                          });
                                          
                                          /**
                                           * It returns 10
                                           */
                                          class Test{
                                              /**
                                              * returns the date
                                              */
                                              getDate(){}
                                          }
                                          
                                          setTimeout(() => {}, 10); // since it's an anonymous arrow function

                                          When Not To Use It

                                          If you do not require JSDoc for your functions, then you can leave this rule off.

                                          Related Rules

                                          All 'var' declarations must be at the top of the function scope.
                                          Open

                                          var _promise2 = _interopRequireDefault(_promise);

                                          Require Variable Declarations to be at the top of their scope (vars-on-top)

                                          The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

                                          Rule Details

                                          This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

                                          Examples of incorrect code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variable declarations in a block:
                                          function doSomething() {
                                              var first;
                                              if (true) {
                                                  first = true;
                                              }
                                              var second;
                                          }
                                          
                                          // Variable declaration in for initializer:
                                          function doSomething() {
                                              for (var i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variables after other statements:
                                          f();
                                          var a;

                                          Examples of correct code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          function doSomething() {
                                              var first;
                                              var second; //multiple declarations are allowed at the top
                                              if (true) {
                                                  first = true;
                                              }
                                          }
                                          
                                          function doSomething() {
                                              var i;
                                              for (i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          var a;
                                          f();
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Directives may precede variable declarations.
                                          "use strict";
                                          var a;
                                          f();
                                          
                                          // Comments can describe variables.
                                          function doSomething() {
                                              // this is the first var.
                                              var first;
                                              // this is the second var.
                                              var second
                                          }

                                          Further Reading

                                          No magic number: 0.
                                          Open

                                            (0, _createClass3.default)(NamedKernelManagerGhostModule, [{

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {RoutableComponentRoutes} [routes] - ルーティング

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          All 'var' declarations must be at the top of the function scope.
                                          Open

                                          var _regenerator2 = _interopRequireDefault(_regenerator);

                                          Require Variable Declarations to be at the top of their scope (vars-on-top)

                                          The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

                                          Rule Details

                                          This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

                                          Examples of incorrect code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variable declarations in a block:
                                          function doSomething() {
                                              var first;
                                              if (true) {
                                                  first = true;
                                              }
                                              var second;
                                          }
                                          
                                          // Variable declaration in for initializer:
                                          function doSomething() {
                                              for (var i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variables after other statements:
                                          f();
                                          var a;

                                          Examples of correct code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          function doSomething() {
                                              var first;
                                              var second; //multiple declarations are allowed at the top
                                              if (true) {
                                                  first = true;
                                              }
                                          }
                                          
                                          function doSomething() {
                                              var i;
                                              for (i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          var a;
                                          f();
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Directives may precede variable declarations.
                                          "use strict";
                                          var a;
                                          f();
                                          
                                          // Comments can describe variables.
                                          function doSomething() {
                                              // this is the first var.
                                              var first;
                                              // this is the second var.
                                              var second
                                          }

                                          Further Reading

                                          All 'var' declarations must be at the top of the function scope.
                                          Open

                                          var _ghostKernel = require('ghost-kernel');

                                          Require Variable Declarations to be at the top of their scope (vars-on-top)

                                          The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

                                          Rule Details

                                          This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

                                          Examples of incorrect code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variable declarations in a block:
                                          function doSomething() {
                                              var first;
                                              if (true) {
                                                  first = true;
                                              }
                                              var second;
                                          }
                                          
                                          // Variable declaration in for initializer:
                                          function doSomething() {
                                              for (var i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variables after other statements:
                                          f();
                                          var a;

                                          Examples of correct code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          function doSomething() {
                                              var first;
                                              var second; //multiple declarations are allowed at the top
                                              if (true) {
                                                  first = true;
                                              }
                                          }
                                          
                                          function doSomething() {
                                              var i;
                                              for (i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          var a;
                                          f();
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Directives may precede variable declarations.
                                          "use strict";
                                          var a;
                                          f();
                                          
                                          // Comments can describe variables.
                                          function doSomething() {
                                              // this is the first var.
                                              var first;
                                              // this is the second var.
                                              var second
                                          }

                                          Further Reading

                                          No magic number: 0.
                                          Open

                                              (0, _classCallCheck3.default)(this, NamedKernelManagerGhostModule);

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          All 'var' declarations must be at the top of the function scope.
                                          Open

                                          var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);

                                          Require Variable Declarations to be at the top of their scope (vars-on-top)

                                          The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

                                          Rule Details

                                          This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

                                          Examples of incorrect code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variable declarations in a block:
                                          function doSomething() {
                                              var first;
                                              if (true) {
                                                  first = true;
                                              }
                                              var second;
                                          }
                                          
                                          // Variable declaration in for initializer:
                                          function doSomething() {
                                              for (var i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variables after other statements:
                                          f();
                                          var a;

                                          Examples of correct code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          function doSomething() {
                                              var first;
                                              var second; //multiple declarations are allowed at the top
                                              if (true) {
                                                  first = true;
                                              }
                                          }
                                          
                                          function doSomething() {
                                              var i;
                                              for (i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          var a;
                                          f();
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Directives may precede variable declarations.
                                          "use strict";
                                          var a;
                                          f();
                                          
                                          // Comments can describe variables.
                                          function doSomething() {
                                              // this is the first var.
                                              var first;
                                              // this is the second var.
                                              var second
                                          }

                                          Further Reading

                                          Unexpected var, use let or const instead.
                                          Open

                                          var _ghostKernel = require('ghost-kernel');

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          'use strict' is unnecessary inside of modules.
                                          Open

                                          'use strict';

                                          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/

                                          All 'var' declarations must be at the top of the function scope.
                                          Open

                                          var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);

                                          Require Variable Declarations to be at the top of their scope (vars-on-top)

                                          The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

                                          Rule Details

                                          This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

                                          Examples of incorrect code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variable declarations in a block:
                                          function doSomething() {
                                              var first;
                                              if (true) {
                                                  first = true;
                                              }
                                              var second;
                                          }
                                          
                                          // Variable declaration in for initializer:
                                          function doSomething() {
                                              for (var i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variables after other statements:
                                          f();
                                          var a;

                                          Examples of correct code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          function doSomething() {
                                              var first;
                                              var second; //multiple declarations are allowed at the top
                                              if (true) {
                                                  first = true;
                                              }
                                          }
                                          
                                          function doSomething() {
                                              var i;
                                              for (i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          var a;
                                          f();
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Directives may precede variable declarations.
                                          "use strict";
                                          var a;
                                          f();
                                          
                                          // Comments can describe variables.
                                          function doSomething() {
                                              // this is the first var.
                                              var first;
                                              // this is the second var.
                                              var second
                                          }

                                          Further Reading

                                          Unexpected var, use let or const instead.
                                          Open

                                          var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray');

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          All 'var' declarations must be at the top of the function scope.
                                          Open

                                          var _shiorif = require('shiorif');

                                          Require Variable Declarations to be at the top of their scope (vars-on-top)

                                          The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

                                          Rule Details

                                          This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

                                          Examples of incorrect code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variable declarations in a block:
                                          function doSomething() {
                                              var first;
                                              if (true) {
                                                  first = true;
                                              }
                                              var second;
                                          }
                                          
                                          // Variable declaration in for initializer:
                                          function doSomething() {
                                              for (var i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variables after other statements:
                                          f();
                                          var a;

                                          Examples of correct code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          function doSomething() {
                                              var first;
                                              var second; //multiple declarations are allowed at the top
                                              if (true) {
                                                  first = true;
                                              }
                                          }
                                          
                                          function doSomething() {
                                              var i;
                                              for (i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          var a;
                                          f();
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Directives may precede variable declarations.
                                          "use strict";
                                          var a;
                                          f();
                                          
                                          // Comments can describe variables.
                                          function doSomething() {
                                              // this is the first var.
                                              var first;
                                              // this is the second var.
                                              var second
                                          }

                                          Further Reading

                                          There should be no space after '{'.
                                          Open

                                          function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

                                          enforce consistent spacing inside braces (object-curly-spacing)

                                          While formatting preferences are very personal, a number of style guides require or disallow spaces between curly braces in the following situations:

                                          // simple object literals
                                          var obj = { foo: "bar" };
                                          
                                          // nested object literals
                                          var obj = { foo: { zoo: "bar" } };
                                          
                                          // destructuring assignment (EcmaScript 6)
                                          var { x, y } = y;
                                          
                                          // import/export declarations (EcmaScript 6)
                                          import { foo } from "bar";
                                          export { foo };

                                          Rule Details

                                          This rule enforce consistent spacing inside braces of object literals, destructuring assignments, and import/export specifiers.

                                          Options

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

                                          String option:

                                          • "never" (default) disallows spacing inside of braces
                                          • "always" requires spacing inside of braces (except {})

                                          Object option:

                                          • "arraysInObjects": true requires spacing inside of braces of objects beginning and/or ending with an array element (applies when the first option is set to never)
                                          • "arraysInObjects": false disallows spacing inside of braces of objects beginning and/or ending with an array element (applies when the first option is set to always)
                                          • "objectsInObjects": true requires spacing inside of braces of objects beginning and/or ending with an object element (applies when the first option is set to never)
                                          • "objectsInObjects": false disallows spacing inside of braces of objects beginning and/or ending with an object element (applies when the first option is set to always)

                                          never

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

                                          /*eslint object-curly-spacing: ["error", "never"]*/
                                          
                                          var obj = { 'foo': 'bar' };
                                          var obj = {'foo': 'bar' };
                                          var obj = { baz: {'foo': 'qux'}, bar};
                                          var obj = {baz: { 'foo': 'qux'}, bar};
                                          var {x } = y;
                                          import { foo } from 'bar';

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

                                          /*eslint object-curly-spacing: ["error", "never"]*/
                                          
                                          var obj = {'foo': 'bar'};
                                          var obj = {'foo': {'bar': 'baz'}, 'qux': 'quxx'};
                                          var obj = {
                                            'foo': 'bar'
                                          };
                                          var obj = {'foo': 'bar'
                                          };
                                          var obj = {
                                            'foo':'bar'};
                                          var obj = {};
                                          var {x} = y;
                                          import {foo} from 'bar';

                                          always

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

                                          /*eslint object-curly-spacing: ["error", "always"]*/
                                          
                                          var obj = {'foo': 'bar'};
                                          var obj = {'foo': 'bar' };
                                          var obj = { baz: {'foo': 'qux'}, bar};
                                          var obj = {baz: { 'foo': 'qux' }, bar};
                                          var obj = {'foo': 'bar'
                                          };
                                          var obj = {
                                            'foo':'bar'};
                                          var {x} = y;
                                          import {foo } from 'bar';

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

                                          /*eslint object-curly-spacing: ["error", "always"]*/
                                          
                                          var obj = {};
                                          var obj = { 'foo': 'bar' };
                                          var obj = { 'foo': { 'bar': 'baz' }, 'qux': 'quxx' };
                                          var obj = {
                                            'foo': 'bar'
                                          };
                                          var { x } = y;
                                          import { foo } from 'bar';

                                          arraysInObjects

                                          Examples of additional correct code for this rule with the "never", { "arraysInObjects": true } options:

                                          /*eslint object-curly-spacing: ["error", "never", { "arraysInObjects": true }]*/
                                          
                                          var obj = {"foo": [ 1, 2 ] };
                                          var obj = {"foo": [ "baz", "bar" ] };

                                          Examples of additional correct code for this rule with the "always", { "arraysInObjects": false } options:

                                          /*eslint object-curly-spacing: ["error", "always", { "arraysInObjects": false }]*/
                                          
                                          var obj = { "foo": [ 1, 2 ]};
                                          var obj = { "foo": [ "baz", "bar" ]};

                                          objectsInObjects

                                          Examples of additional correct code for this rule with the "never", { "objectsInObjects": true } options:

                                          /*eslint object-curly-spacing: ["error", "never", { "objectsInObjects": true }]*/
                                          
                                          var obj = {"foo": {"baz": 1, "bar": 2} };

                                          Examples of additional correct code for this rule with the "always", { "objectsInObjects": false } options:

                                          /*eslint object-curly-spacing: ["error", "always", { "objectsInObjects": false }]*/
                                          
                                          var obj = { "foo": { "baz": 1, "bar": 2 }};

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with the consistency of spacing between curly braces.

                                          Related Rules

                                          There should be no space before '}'.
                                          Open

                                          function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

                                          enforce consistent spacing inside braces (object-curly-spacing)

                                          While formatting preferences are very personal, a number of style guides require or disallow spaces between curly braces in the following situations:

                                          // simple object literals
                                          var obj = { foo: "bar" };
                                          
                                          // nested object literals
                                          var obj = { foo: { zoo: "bar" } };
                                          
                                          // destructuring assignment (EcmaScript 6)
                                          var { x, y } = y;
                                          
                                          // import/export declarations (EcmaScript 6)
                                          import { foo } from "bar";
                                          export { foo };

                                          Rule Details

                                          This rule enforce consistent spacing inside braces of object literals, destructuring assignments, and import/export specifiers.

                                          Options

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

                                          String option:

                                          • "never" (default) disallows spacing inside of braces
                                          • "always" requires spacing inside of braces (except {})

                                          Object option:

                                          • "arraysInObjects": true requires spacing inside of braces of objects beginning and/or ending with an array element (applies when the first option is set to never)
                                          • "arraysInObjects": false disallows spacing inside of braces of objects beginning and/or ending with an array element (applies when the first option is set to always)
                                          • "objectsInObjects": true requires spacing inside of braces of objects beginning and/or ending with an object element (applies when the first option is set to never)
                                          • "objectsInObjects": false disallows spacing inside of braces of objects beginning and/or ending with an object element (applies when the first option is set to always)

                                          never

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

                                          /*eslint object-curly-spacing: ["error", "never"]*/
                                          
                                          var obj = { 'foo': 'bar' };
                                          var obj = {'foo': 'bar' };
                                          var obj = { baz: {'foo': 'qux'}, bar};
                                          var obj = {baz: { 'foo': 'qux'}, bar};
                                          var {x } = y;
                                          import { foo } from 'bar';

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

                                          /*eslint object-curly-spacing: ["error", "never"]*/
                                          
                                          var obj = {'foo': 'bar'};
                                          var obj = {'foo': {'bar': 'baz'}, 'qux': 'quxx'};
                                          var obj = {
                                            'foo': 'bar'
                                          };
                                          var obj = {'foo': 'bar'
                                          };
                                          var obj = {
                                            'foo':'bar'};
                                          var obj = {};
                                          var {x} = y;
                                          import {foo} from 'bar';

                                          always

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

                                          /*eslint object-curly-spacing: ["error", "always"]*/
                                          
                                          var obj = {'foo': 'bar'};
                                          var obj = {'foo': 'bar' };
                                          var obj = { baz: {'foo': 'qux'}, bar};
                                          var obj = {baz: { 'foo': 'qux' }, bar};
                                          var obj = {'foo': 'bar'
                                          };
                                          var obj = {
                                            'foo':'bar'};
                                          var {x} = y;
                                          import {foo } from 'bar';

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

                                          /*eslint object-curly-spacing: ["error", "always"]*/
                                          
                                          var obj = {};
                                          var obj = { 'foo': 'bar' };
                                          var obj = { 'foo': { 'bar': 'baz' }, 'qux': 'quxx' };
                                          var obj = {
                                            'foo': 'bar'
                                          };
                                          var { x } = y;
                                          import { foo } from 'bar';

                                          arraysInObjects

                                          Examples of additional correct code for this rule with the "never", { "arraysInObjects": true } options:

                                          /*eslint object-curly-spacing: ["error", "never", { "arraysInObjects": true }]*/
                                          
                                          var obj = {"foo": [ 1, 2 ] };
                                          var obj = {"foo": [ "baz", "bar" ] };

                                          Examples of additional correct code for this rule with the "always", { "arraysInObjects": false } options:

                                          /*eslint object-curly-spacing: ["error", "always", { "arraysInObjects": false }]*/
                                          
                                          var obj = { "foo": [ 1, 2 ]};
                                          var obj = { "foo": [ "baz", "bar" ]};

                                          objectsInObjects

                                          Examples of additional correct code for this rule with the "never", { "objectsInObjects": true } options:

                                          /*eslint object-curly-spacing: ["error", "never", { "objectsInObjects": true }]*/
                                          
                                          var obj = {"foo": {"baz": 1, "bar": 2} };

                                          Examples of additional correct code for this rule with the "always", { "objectsInObjects": false } options:

                                          /*eslint object-curly-spacing: ["error", "always", { "objectsInObjects": false }]*/
                                          
                                          var obj = { "foo": { "baz": 1, "bar": 2 }};

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with the consistency of spacing between curly braces.

                                          Related Rules

                                          Unexpected space before function parentheses.
                                          Open

                                              value: function () {

                                          Require or disallow a space before function parenthesis (space-before-function-paren)

                                          When formatting a function, whitespace is allowed between the function name or function keyword and the opening paren. Named functions also require a space between the function keyword and the function name, but anonymous functions require no whitespace. For example:

                                          function withoutSpace(x) {
                                              // ...
                                          }
                                          
                                          function withSpace (x) {
                                              // ...
                                          }
                                          
                                          var anonymousWithoutSpace = function() {};
                                          
                                          var anonymousWithSpace = function () {};

                                          Style guides may require a space after the function keyword for anonymous functions, while others specify no whitespace. Similarly, the space after a function name may or may not be required.

                                          Rule Details

                                          This rule aims to enforce consistent spacing before function parentheses and as such, will warn whenever whitespace doesn't match the preferences specified.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "space-before-function-paren": ["error", "always"],
                                              // or
                                              "space-before-function-paren": ["error", {
                                                  "anonymous": "always",
                                                  "named": "always",
                                                  "asyncArrow": "ignore"
                                              }],
                                          }
                                          • always (default) requires a space followed by the ( of arguments.
                                          • never disallows any space followed by the ( of arguments.

                                          The string option does not check async arrow function expressions for backward compatibility.

                                          You can also use a separate option for each type of function. Each of the following options can be set to "always", "never", or "ignore". Default is "always" basically.

                                          • anonymous is for anonymous function expressions (e.g. function () {}).
                                          • named is for named function expressions (e.g. function foo () {}).
                                          • asyncArrow is for async arrow function expressions (e.g. async () => {}). asyncArrow is set to "ignore" by default for backwards compatibility.

                                          "always"

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

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

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

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          "never"

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

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

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

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          {"anonymous": "always", "named": "never", "asyncArrow": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async(a) => await a

                                          Examples of correct code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async (a) => await a

                                          {"anonymous": "never", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          {"anonymous": "ignore", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with the consistency of spacing before function parenthesis.

                                          Related Rules

                                          Strings must use singlequote.
                                          Open

                                          Object.defineProperty(exports, "__esModule", {

                                          enforce the consistent use of either backticks, double, or single quotes (quotes)

                                          JavaScript allows you to define strings in one of three ways: double quotes, single quotes, and backticks (as of ECMAScript 6). For example:

                                          /*eslint-env es6*/
                                          
                                          var double = "double";
                                          var single = 'single';
                                          var backtick = `backtick`;    // ES6 only

                                          Each of these lines creates a string and, in some cases, can be used interchangeably. The choice of how to define strings in a codebase is a stylistic one outside of template literals (which allow embedded of expressions to be interpreted).

                                          Many codebases require strings to be defined in a consistent manner.

                                          Rule Details

                                          This rule enforces the consistent use of either backticks, double, or single quotes.

                                          Options

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

                                          String option:

                                          • "double" (default) requires the use of double quotes wherever possible
                                          • "single" requires the use of single quotes wherever possible
                                          • "backtick" requires the use of backticks wherever possible

                                          Object option:

                                          • "avoidEscape": true allows strings to use single-quotes or double-quotes so long as the string contains a quote that would have to be escaped otherwise
                                          • "allowTemplateLiterals": true allows strings to use backticks

                                          Deprecated: The object property avoid-escape is deprecated; please use the object property avoidEscape instead.

                                          double

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

                                          /*eslint quotes: ["error", "double"]*/
                                          
                                          var single = 'single';
                                          var unescaped = 'a string containing "double" quotes';

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

                                          /*eslint quotes: ["error", "double"]*/
                                          /*eslint-env es6*/
                                          
                                          var double = "double";
                                          var backtick = `back\ntick`;  // backticks are allowed due to newline
                                          var backtick = tag`backtick`; // backticks are allowed due to tag

                                          single

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

                                          /*eslint quotes: ["error", "single"]*/
                                          
                                          var double = "double";
                                          var unescaped = "a string containing 'single' quotes";

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

                                          /*eslint quotes: ["error", "single"]*/
                                          /*eslint-env es6*/
                                          
                                          var single = 'single';
                                          var backtick = `back${x}tick`; // backticks are allowed due to substitution

                                          backticks

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

                                          /*eslint quotes: ["error", "backtick"]*/
                                          
                                          var single = 'single';
                                          var double = "double";
                                          var unescaped = 'a string containing `backticks`';

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

                                          /*eslint quotes: ["error", "backtick"]*/
                                          /*eslint-env es6*/
                                          
                                          var backtick = `backtick`;

                                          avoidEscape

                                          Examples of additional correct code for this rule with the "double", { "avoidEscape": true } options:

                                          /*eslint quotes: ["error", "double", { "avoidEscape": true }]*/
                                          
                                          var single = 'a string containing "double" quotes';

                                          Examples of additional correct code for this rule with the "single", { "avoidEscape": true } options:

                                          /*eslint quotes: ["error", "single", { "avoidEscape": true }]*/
                                          
                                          var double = "a string containing 'single' quotes";

                                          Examples of additional correct code for this rule with the "backtick", { "avoidEscape": true } options:

                                          /*eslint quotes: ["error", "backtick", { "avoidEscape": true }]*/
                                          
                                          var double = "a string containing `backtick` quotes"

                                          allowTemplateLiterals

                                          Examples of additional correct code for this rule with the "double", { "allowTemplateLiterals": true } options:

                                          /*eslint quotes: ["error", "double", { "allowTemplateLiterals": true }]*/
                                          
                                          var double = "double";
                                          var double = `double`;

                                          Examples of additional correct code for this rule with the "single", { "allowTemplateLiterals": true } options:

                                          /*eslint quotes: ["error", "single", { "allowTemplateLiterals": true }]*/
                                          
                                          var single = 'single';
                                          var single = `single`;

                                          When Not To Use It

                                          If you do not need consistency in your string styles, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected var, use let or const instead.
                                          Open

                                          var _promise = require('babel-runtime/core-js/promise');

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Unexpected var, use let or const instead.
                                          Open

                                          var _promise2 = _interopRequireDefault(_promise);

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Unexpected var, use let or const instead.
                                          Open

                                          var _createClass2 = require('babel-runtime/helpers/createClass');

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Unexpected var, use let or const instead.
                                          Open

                                          var NamedKernelManagerGhostModule = exports.NamedKernelManagerGhostModule = function () {

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {string} namedId - named id

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @return {Promise<GhostKernel>} ghost kernel instance

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Wrap an immediate function invocation in parentheses.
                                          Open

                                              value: function () {

                                          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/

                                          Unexpected var, use let or const instead.
                                          Open

                                                  var kernel;

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          No magic number: 4.
                                          Open

                                                        case 4:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Unexpected var, use let or const instead.
                                          Open

                                          var _regenerator = require('babel-runtime/regenerator');

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Unexpected var, use let or const instead.
                                          Open

                                          var _regenerator2 = _interopRequireDefault(_regenerator);

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Unexpected var, use let or const instead.
                                          Open

                                          var _shiorif = require('shiorif');

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          All 'var' declarations must be at the top of the function scope.
                                          Open

                                          var _namedKernelManager = require('./named-kernel-manager');

                                          Require Variable Declarations to be at the top of their scope (vars-on-top)

                                          The vars-on-top rule generates warnings when variable declarations are not used serially at the top of a function scope or the top of a program. By default variable declarations are always moved (“hoisted”) invisibly to the top of their containing scope by the JavaScript interpreter. This rule forces the programmer to represent that behaviour by manually moving the variable declaration to the top of its containing scope.

                                          Rule Details

                                          This rule aims to keep all variable declarations in the leading series of statements. Allowing multiple declarations helps promote maintainability and is thus allowed.

                                          Examples of incorrect code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variable declarations in a block:
                                          function doSomething() {
                                              var first;
                                              if (true) {
                                                  first = true;
                                              }
                                              var second;
                                          }
                                          
                                          // Variable declaration in for initializer:
                                          function doSomething() {
                                              for (var i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Variables after other statements:
                                          f();
                                          var a;

                                          Examples of correct code for this rule:

                                          /*eslint vars-on-top: "error"*/
                                          
                                          function doSomething() {
                                              var first;
                                              var second; //multiple declarations are allowed at the top
                                              if (true) {
                                                  first = true;
                                              }
                                          }
                                          
                                          function doSomething() {
                                              var i;
                                              for (i=0; i<10; i++) {}
                                          }
                                          /*eslint vars-on-top: "error"*/
                                          
                                          var a;
                                          f();
                                          /*eslint vars-on-top: "error"*/
                                          
                                          // Directives may precede variable declarations.
                                          "use strict";
                                          var a;
                                          f();
                                          
                                          // Comments can describe variables.
                                          function doSomething() {
                                              // this is the first var.
                                              var first;
                                              // this is the second var.
                                              var second
                                          }

                                          Further Reading

                                          No magic number: 1.
                                          Open

                                                    while (1) {

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * load ghost

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Use the rest parameters instead of 'arguments'.
                                          Open

                                                  return _ref3.apply(this, arguments);

                                          Suggest using the rest parameters instead of arguments (prefer-rest-params)

                                          There are rest parameters in ES2015. We can use that feature for variadic functions instead of the arguments variable.

                                          arguments does not have methods of Array.prototype, so it's a bit of an inconvenience.

                                          Rule Details

                                          This rule is aimed to flag usage of arguments variables.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          function foo() {
                                              console.log(arguments);
                                          }
                                          
                                          function foo(action) {
                                              var args = Array.prototype.slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }
                                          
                                          function foo(action) {
                                              var args = [].slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }

                                          Examples of correct code for this rule:

                                          function foo(...args) {
                                              console.log(args);
                                          }
                                          
                                          function foo(action, ...args) {
                                              action.apply(null, args); // or `action(...args)`, related to the `prefer-spread` rule.
                                          }
                                          
                                          // Note: the implicit arguments can be overwritten.
                                          function foo(arguments) {
                                              console.log(arguments); // This is the first argument.
                                          }
                                          function foo() {
                                              var arguments = 0;
                                              console.log(arguments); // This is a local variable.
                                          }

                                          When Not To Use It

                                          This rule should not be used in ES3/5 environments.

                                          In ES2015 (ES6) or later, if you don't want to be notified about arguments variables, then it's safe to disable this rule.

                                          Related Rules

                                          No magic number: 1.
                                          Open

                                                        case 1:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          No magic number: 5.
                                          Open

                                                        case 5:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          No magic number: 6.
                                          Open

                                                        case 6:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Use the rest parameters instead of 'arguments'.
                                          Open

                                                  return _ref2.apply(this, arguments);

                                          Suggest using the rest parameters instead of arguments (prefer-rest-params)

                                          There are rest parameters in ES2015. We can use that feature for variadic functions instead of the arguments variable.

                                          arguments does not have methods of Array.prototype, so it's a bit of an inconvenience.

                                          Rule Details

                                          This rule is aimed to flag usage of arguments variables.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          function foo() {
                                              console.log(arguments);
                                          }
                                          
                                          function foo(action) {
                                              var args = Array.prototype.slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }
                                          
                                          function foo(action) {
                                              var args = [].slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }

                                          Examples of correct code for this rule:

                                          function foo(...args) {
                                              console.log(args);
                                          }
                                          
                                          function foo(action, ...args) {
                                              action.apply(null, args); // or `action(...args)`, related to the `prefer-spread` rule.
                                          }
                                          
                                          // Note: the implicit arguments can be overwritten.
                                          function foo(arguments) {
                                              console.log(arguments); // This is the first argument.
                                          }
                                          function foo() {
                                              var arguments = 0;
                                              console.log(arguments); // This is a local variable.
                                          }

                                          When Not To Use It

                                          This rule should not be used in ES3/5 environments.

                                          In ES2015 (ES6) or later, if you don't want to be notified about arguments variables, then it's safe to disable this rule.

                                          Related Rules

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {string} namedId - named id

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Unexpected var, use let or const instead.
                                          Open

                                                            var shiori = _ref6[0];

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Unexpected space before function parentheses.
                                          Open

                                              value: function () {

                                          Require or disallow a space before function parenthesis (space-before-function-paren)

                                          When formatting a function, whitespace is allowed between the function name or function keyword and the opening paren. Named functions also require a space between the function keyword and the function name, but anonymous functions require no whitespace. For example:

                                          function withoutSpace(x) {
                                              // ...
                                          }
                                          
                                          function withSpace (x) {
                                              // ...
                                          }
                                          
                                          var anonymousWithoutSpace = function() {};
                                          
                                          var anonymousWithSpace = function () {};

                                          Style guides may require a space after the function keyword for anonymous functions, while others specify no whitespace. Similarly, the space after a function name may or may not be required.

                                          Rule Details

                                          This rule aims to enforce consistent spacing before function parentheses and as such, will warn whenever whitespace doesn't match the preferences specified.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "space-before-function-paren": ["error", "always"],
                                              // or
                                              "space-before-function-paren": ["error", {
                                                  "anonymous": "always",
                                                  "named": "always",
                                                  "asyncArrow": "ignore"
                                              }],
                                          }
                                          • always (default) requires a space followed by the ( of arguments.
                                          • never disallows any space followed by the ( of arguments.

                                          The string option does not check async arrow function expressions for backward compatibility.

                                          You can also use a separate option for each type of function. Each of the following options can be set to "always", "never", or "ignore". Default is "always" basically.

                                          • anonymous is for anonymous function expressions (e.g. function () {}).
                                          • named is for named function expressions (e.g. function foo () {}).
                                          • asyncArrow is for async arrow function expressions (e.g. async () => {}). asyncArrow is set to "ignore" by default for backwards compatibility.

                                          "always"

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

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

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

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          "never"

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

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

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

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          {"anonymous": "always", "named": "never", "asyncArrow": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async(a) => await a

                                          Examples of correct code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async (a) => await a

                                          {"anonymous": "never", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          {"anonymous": "ignore", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with the consistency of spacing before function parenthesis.

                                          Related Rules

                                          Unexpected space before function parentheses.
                                          Open

                                              value: function () {

                                          Require or disallow a space before function parenthesis (space-before-function-paren)

                                          When formatting a function, whitespace is allowed between the function name or function keyword and the opening paren. Named functions also require a space between the function keyword and the function name, but anonymous functions require no whitespace. For example:

                                          function withoutSpace(x) {
                                              // ...
                                          }
                                          
                                          function withSpace (x) {
                                              // ...
                                          }
                                          
                                          var anonymousWithoutSpace = function() {};
                                          
                                          var anonymousWithSpace = function () {};

                                          Style guides may require a space after the function keyword for anonymous functions, while others specify no whitespace. Similarly, the space after a function name may or may not be required.

                                          Rule Details

                                          This rule aims to enforce consistent spacing before function parentheses and as such, will warn whenever whitespace doesn't match the preferences specified.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "space-before-function-paren": ["error", "always"],
                                              // or
                                              "space-before-function-paren": ["error", {
                                                  "anonymous": "always",
                                                  "named": "always",
                                                  "asyncArrow": "ignore"
                                              }],
                                          }
                                          • always (default) requires a space followed by the ( of arguments.
                                          • never disallows any space followed by the ( of arguments.

                                          The string option does not check async arrow function expressions for backward compatibility.

                                          You can also use a separate option for each type of function. Each of the following options can be set to "always", "never", or "ignore". Default is "always" basically.

                                          • anonymous is for anonymous function expressions (e.g. function () {}).
                                          • named is for named function expressions (e.g. function foo () {}).
                                          • asyncArrow is for async arrow function expressions (e.g. async () => {}). asyncArrow is set to "ignore" by default for backwards compatibility.

                                          "always"

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

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

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

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          "never"

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

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

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

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          {"anonymous": "always", "named": "never", "asyncArrow": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async(a) => await a

                                          Examples of correct code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async (a) => await a

                                          {"anonymous": "never", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          {"anonymous": "ignore", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with the consistency of spacing before function parenthesis.

                                          Related Rules

                                          No magic number: 4.
                                          Open

                                                        case 4:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {string} shellname - shellname

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @return {Promise<GhostKernel>} ghost kernel instance

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Unexpected var, use let or const instead.
                                          Open

                                                  var _this = this;

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {string} namedId - named id

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Unexpected var, use let or const instead.
                                          Open

                                                var _ref3 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee3(namedId, profile, routes, controllers, GhostViewClass) {

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          No magic number: 1.
                                          Open

                                                    while (1) {

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {GhostProfile} [profile] - profile

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Wrap an immediate function invocation in parentheses.
                                          Open

                                              value: function () {

                                          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/

                                          Unexpected var, use let or const instead.
                                          Open

                                                  var _profile;

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * ensure path separator at dirpath' end

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {RoutableComponentRoutes} [routes] - ルーティング

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * get ghost(shiori) instance

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          No magic number: 1.
                                          Open

                                                    while (1) {

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Unexpected var, use let or const instead.
                                          Open

                                                var _ref7 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee5(namedId) {

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {RoutableComponentRoutes} [routes] - ルーティング

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Unexpected space before function parentheses.
                                          Open

                                              value: function () {

                                          Require or disallow a space before function parenthesis (space-before-function-paren)

                                          When formatting a function, whitespace is allowed between the function name or function keyword and the opening paren. Named functions also require a space between the function keyword and the function name, but anonymous functions require no whitespace. For example:

                                          function withoutSpace(x) {
                                              // ...
                                          }
                                          
                                          function withSpace (x) {
                                              // ...
                                          }
                                          
                                          var anonymousWithoutSpace = function() {};
                                          
                                          var anonymousWithSpace = function () {};

                                          Style guides may require a space after the function keyword for anonymous functions, while others specify no whitespace. Similarly, the space after a function name may or may not be required.

                                          Rule Details

                                          This rule aims to enforce consistent spacing before function parentheses and as such, will warn whenever whitespace doesn't match the preferences specified.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "space-before-function-paren": ["error", "always"],
                                              // or
                                              "space-before-function-paren": ["error", {
                                                  "anonymous": "always",
                                                  "named": "always",
                                                  "asyncArrow": "ignore"
                                              }],
                                          }
                                          • always (default) requires a space followed by the ( of arguments.
                                          • never disallows any space followed by the ( of arguments.

                                          The string option does not check async arrow function expressions for backward compatibility.

                                          You can also use a separate option for each type of function. Each of the following options can be set to "always", "never", or "ignore". Default is "always" basically.

                                          • anonymous is for anonymous function expressions (e.g. function () {}).
                                          • named is for named function expressions (e.g. function foo () {}).
                                          • asyncArrow is for async arrow function expressions (e.g. async () => {}). asyncArrow is set to "ignore" by default for backwards compatibility.

                                          "always"

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

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

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

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          "never"

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

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

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

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          {"anonymous": "always", "named": "never", "asyncArrow": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async(a) => await a

                                          Examples of correct code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async (a) => await a

                                          {"anonymous": "never", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          {"anonymous": "ignore", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with the consistency of spacing before function parenthesis.

                                          Related Rules

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                              /**

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Unexpected var, use let or const instead.
                                          Open

                                                            var _ref6 = (0, _slicedToArray3.default)(_ref5, 3);

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Unexpected var, use let or const instead.
                                          Open

                                                var path_separator = dirpath.match(/[\\\/]/)[0];

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Wrap an immediate function invocation in parentheses.
                                          Open

                                              value: function () {

                                          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/

                                          Unexpected space before function parentheses.
                                          Open

                                              value: function () {

                                          Require or disallow a space before function parenthesis (space-before-function-paren)

                                          When formatting a function, whitespace is allowed between the function name or function keyword and the opening paren. Named functions also require a space between the function keyword and the function name, but anonymous functions require no whitespace. For example:

                                          function withoutSpace(x) {
                                              // ...
                                          }
                                          
                                          function withSpace (x) {
                                              // ...
                                          }
                                          
                                          var anonymousWithoutSpace = function() {};
                                          
                                          var anonymousWithSpace = function () {};

                                          Style guides may require a space after the function keyword for anonymous functions, while others specify no whitespace. Similarly, the space after a function name may or may not be required.

                                          Rule Details

                                          This rule aims to enforce consistent spacing before function parentheses and as such, will warn whenever whitespace doesn't match the preferences specified.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "space-before-function-paren": ["error", "always"],
                                              // or
                                              "space-before-function-paren": ["error", {
                                                  "anonymous": "always",
                                                  "named": "always",
                                                  "asyncArrow": "ignore"
                                              }],
                                          }
                                          • always (default) requires a space followed by the ( of arguments.
                                          • never disallows any space followed by the ( of arguments.

                                          The string option does not check async arrow function expressions for backward compatibility.

                                          You can also use a separate option for each type of function. Each of the following options can be set to "always", "never", or "ignore". Default is "always" basically.

                                          • anonymous is for anonymous function expressions (e.g. function () {}).
                                          • named is for named function expressions (e.g. function foo () {}).
                                          • asyncArrow is for async arrow function expressions (e.g. async () => {}). asyncArrow is set to "ignore" by default for backwards compatibility.

                                          "always"

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

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

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

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          "never"

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

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

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

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          {"anonymous": "always", "named": "never", "asyncArrow": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async(a) => await a

                                          Examples of correct code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async (a) => await a

                                          {"anonymous": "never", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          {"anonymous": "ignore", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with the consistency of spacing before function parenthesis.

                                          Related Rules

                                          No magic number: 3.
                                          Open

                                                            var _ref6 = (0, _slicedToArray3.default)(_ref5, 3);

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Unexpected var, use let or const instead.
                                          Open

                                                            var named = _this.components.NamedManager.materialize2(shell, balloon);

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @return {Promise<Shiori>} ghost(shiori) instance

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                              /**

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {Hash<GhostKernelController>} [controllers] - コントローラ

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          No magic number: 7.
                                          Open

                                                        case 7:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          No magic number: 2.
                                          Open

                                                        case 2:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Use the rest parameters instead of 'arguments'.
                                          Open

                                                  return _ref4.apply(this, arguments);

                                          Suggest using the rest parameters instead of arguments (prefer-rest-params)

                                          There are rest parameters in ES2015. We can use that feature for variadic functions instead of the arguments variable.

                                          arguments does not have methods of Array.prototype, so it's a bit of an inconvenience.

                                          Rule Details

                                          This rule is aimed to flag usage of arguments variables.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          function foo() {
                                              console.log(arguments);
                                          }
                                          
                                          function foo(action) {
                                              var args = Array.prototype.slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }
                                          
                                          function foo(action) {
                                              var args = [].slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }

                                          Examples of correct code for this rule:

                                          function foo(...args) {
                                              console.log(args);
                                          }
                                          
                                          function foo(action, ...args) {
                                              action.apply(null, args); // or `action(...args)`, related to the `prefer-spread` rule.
                                          }
                                          
                                          // Note: the implicit arguments can be overwritten.
                                          function foo(arguments) {
                                              console.log(arguments); // This is the first argument.
                                          }
                                          function foo() {
                                              var arguments = 0;
                                              console.log(arguments); // This is a local variable.
                                          }

                                          When Not To Use It

                                          This rule should not be used in ES3/5 environments.

                                          In ES2015 (ES6) or later, if you don't want to be notified about arguments variables, then it's safe to disable this rule.

                                          Related Rules

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {string} dirpath - dirpath

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          No magic number: 0.
                                          Open

                                                        case 0:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * load ghost

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * build ghost kernel

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          No magic number: 0.
                                          Open

                                                        case 0:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Unexpected var, use let or const instead.
                                          Open

                                                            var shiorif = new _shiorif.Shiorif(shiori);

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Unexpected var, use let or const instead.
                                          Open

                                                  var dirpath, ghost;

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Use the rest parameters instead of 'arguments'.
                                          Open

                                                  return _ref.apply(this, arguments);

                                          Suggest using the rest parameters instead of arguments (prefer-rest-params)

                                          There are rest parameters in ES2015. We can use that feature for variadic functions instead of the arguments variable.

                                          arguments does not have methods of Array.prototype, so it's a bit of an inconvenience.

                                          Rule Details

                                          This rule is aimed to flag usage of arguments variables.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          function foo() {
                                              console.log(arguments);
                                          }
                                          
                                          function foo(action) {
                                              var args = Array.prototype.slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }
                                          
                                          function foo(action) {
                                              var args = [].slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }

                                          Examples of correct code for this rule:

                                          function foo(...args) {
                                              console.log(args);
                                          }
                                          
                                          function foo(action, ...args) {
                                              action.apply(null, args); // or `action(...args)`, related to the `prefer-spread` rule.
                                          }
                                          
                                          // Note: the implicit arguments can be overwritten.
                                          function foo(arguments) {
                                              console.log(arguments); // This is the first argument.
                                          }
                                          function foo() {
                                              var arguments = 0;
                                              console.log(arguments); // This is a local variable.
                                          }

                                          When Not To Use It

                                          This rule should not be used in ES3/5 environments.

                                          In ES2015 (ES6) or later, if you don't want to be notified about arguments variables, then it's safe to disable this rule.

                                          Related Rules

                                          No magic number: 0.
                                          Open

                                                var _ref2 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee2(namedId, profile) {

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {string} namedId - named id

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {cuttlebone} [GhostViewClass] ghost view class

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Unexpected var, use let or const instead.
                                          Open

                                                var _ref4 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee4(namedId, shellname, balloonname, routes, controllers, GhostViewClass) {

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Unexpected var, use let or const instead.
                                          Open

                                                            var shell = _ref6[1];

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          No magic number: 0.
                                          Open

                                                var _ref7 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee5(namedId) {

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                              /**

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {string} balloonname - balloonname

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Unexpected var, use let or const instead.
                                          Open

                                                            var balloon = _ref6[2];

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          No magic number: 4.
                                          Open

                                                        case 4:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Missing JSDoc comment.
                                          Open

                                                function _get_ghost_profile(_x6, _x7) {

                                          require JSDoc comments (require-jsdoc)

                                          JSDoc is a JavaScript API documentation generator. It uses specially-formatted comments inside of code to generate API documentation automatically. For example, this is what a JSDoc comment looks like for a function:

                                          /**
                                           * Adds two numbers together.
                                           * @param {int} num1 The first number.
                                           * @param {int} num2 The second number.
                                           * @returns {int} The sum of the two numbers.
                                           */
                                          function sum(num1, num2) {
                                              return num1 + num2;
                                          }

                                          Some style guides require JSDoc comments for all functions as a way of explaining function behavior.

                                          Rule Details

                                          This rule requires JSDoc comments for specified nodes. Supported nodes:

                                          • "FunctionDeclaration"
                                          • "ClassDeclaration"
                                          • "MethodDefinition"
                                          • "ArrowFunctionExpression"

                                          Options

                                          This rule has a single object option:

                                          • "require" requires JSDoc comments for the specified nodes

                                          Default option settings are:

                                          {
                                              "require-jsdoc": ["error", {
                                                  "require": {
                                                      "FunctionDeclaration": true,
                                                      "MethodDefinition": false,
                                                      "ClassDeclaration": false,
                                                      "ArrowFunctionExpression": false
                                                  }
                                              }]
                                          }

                                          require

                                          Examples of incorrect code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true } } option:

                                          /*eslint "require-jsdoc": ["error", {
                                              "require": {
                                                  "FunctionDeclaration": true,
                                                  "MethodDefinition": true,
                                                  "ClassDeclaration": true
                                              }
                                          }]*/
                                          
                                          function foo() {
                                              return 10;
                                          }
                                          
                                          var foo = () => {
                                              return 10;
                                          }
                                          
                                          class Test{
                                              getDate(){}
                                          }

                                          Examples of correct code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true } } option:

                                          /*eslint "require-jsdoc": ["error", {
                                              "require": {
                                                  "FunctionDeclaration": true,
                                                  "MethodDefinition": true,
                                                  "ClassDeclaration": true
                                              }
                                          }]*/
                                          
                                          /**
                                           * It returns 10
                                           */
                                          function foo() {
                                              return 10;
                                          }
                                          
                                          /**
                                           * It returns test + 10
                                           * @params {int} test - some number
                                           * @returns {int} sum of test and 10
                                           */
                                          var foo = (test) => {
                                              return test + 10;
                                          }
                                          
                                          /**
                                           * It returns 10
                                           */
                                          var foo = () => {
                                              return 10;
                                          }
                                          
                                          /**
                                           * It returns 10
                                           */
                                          var foo = function() {
                                              return 10;
                                          }
                                          
                                          var array = [1,2,3];
                                          array.filter(function(item) {
                                              return item > 2;
                                          });
                                          
                                          /**
                                           * It returns 10
                                           */
                                          class Test{
                                              /**
                                              * returns the date
                                              */
                                              getDate(){}
                                          }
                                          
                                          setTimeout(() => {}, 10); // since it's an anonymous arrow function

                                          When Not To Use It

                                          If you do not require JSDoc for your functions, then you can leave this rule off.

                                          Related Rules

                                          No magic number: 1.
                                          Open

                                                    while (1) {

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          No magic number: 0.
                                          Open

                                                var _ref4 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee4(namedId, shellname, balloonname, routes, controllers, GhostViewClass) {

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          No magic number: 1.
                                          Open

                                                    while (1) {

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Unexpected space before function parentheses.
                                          Open

                                                          return _context4.abrupt('return', _promise2.default.all([this._get_ghost(namedId), this._get_shell(namedId, shellname, GhostViewClass), this._get_balloon(balloonname, GhostViewClass)]).then(function (_ref5) {

                                          Require or disallow a space before function parenthesis (space-before-function-paren)

                                          When formatting a function, whitespace is allowed between the function name or function keyword and the opening paren. Named functions also require a space between the function keyword and the function name, but anonymous functions require no whitespace. For example:

                                          function withoutSpace(x) {
                                              // ...
                                          }
                                          
                                          function withSpace (x) {
                                              // ...
                                          }
                                          
                                          var anonymousWithoutSpace = function() {};
                                          
                                          var anonymousWithSpace = function () {};

                                          Style guides may require a space after the function keyword for anonymous functions, while others specify no whitespace. Similarly, the space after a function name may or may not be required.

                                          Rule Details

                                          This rule aims to enforce consistent spacing before function parentheses and as such, will warn whenever whitespace doesn't match the preferences specified.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "space-before-function-paren": ["error", "always"],
                                              // or
                                              "space-before-function-paren": ["error", {
                                                  "anonymous": "always",
                                                  "named": "always",
                                                  "asyncArrow": "ignore"
                                              }],
                                          }
                                          • always (default) requires a space followed by the ( of arguments.
                                          • never disallows any space followed by the ( of arguments.

                                          The string option does not check async arrow function expressions for backward compatibility.

                                          You can also use a separate option for each type of function. Each of the following options can be set to "always", "never", or "ignore". Default is "always" basically.

                                          • anonymous is for anonymous function expressions (e.g. function () {}).
                                          • named is for named function expressions (e.g. function foo () {}).
                                          • asyncArrow is for async arrow function expressions (e.g. async () => {}). asyncArrow is set to "ignore" by default for backwards compatibility.

                                          "always"

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

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

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

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          "never"

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

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

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

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          {"anonymous": "always", "named": "never", "asyncArrow": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async(a) => await a

                                          Examples of correct code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async (a) => await a

                                          {"anonymous": "never", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          {"anonymous": "ignore", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with the consistency of spacing before function parenthesis.

                                          Related Rules

                                          No magic number: 0.
                                          Open

                                                        case 0:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Use the rest parameters instead of 'arguments'.
                                          Open

                                                  return _ref7.apply(this, arguments);

                                          Suggest using the rest parameters instead of arguments (prefer-rest-params)

                                          There are rest parameters in ES2015. We can use that feature for variadic functions instead of the arguments variable.

                                          arguments does not have methods of Array.prototype, so it's a bit of an inconvenience.

                                          Rule Details

                                          This rule is aimed to flag usage of arguments variables.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          function foo() {
                                              console.log(arguments);
                                          }
                                          
                                          function foo(action) {
                                              var args = Array.prototype.slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }
                                          
                                          function foo(action) {
                                              var args = [].slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }

                                          Examples of correct code for this rule:

                                          function foo(...args) {
                                              console.log(args);
                                          }
                                          
                                          function foo(action, ...args) {
                                              action.apply(null, args); // or `action(...args)`, related to the `prefer-spread` rule.
                                          }
                                          
                                          // Note: the implicit arguments can be overwritten.
                                          function foo(arguments) {
                                              console.log(arguments); // This is the first argument.
                                          }
                                          function foo() {
                                              var arguments = 0;
                                              console.log(arguments); // This is a local variable.
                                          }

                                          When Not To Use It

                                          This rule should not be used in ES3/5 environments.

                                          In ES2015 (ES6) or later, if you don't want to be notified about arguments variables, then it's safe to disable this rule.

                                          Related Rules

                                          No magic number: 0.
                                          Open

                                                        case 0:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          No magic number: 6.
                                          Open

                                                        case 6:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Missing JSDoc comment.
                                          Open

                                                function _getGhostKernelAsProfile(_x8, _x9, _x10, _x11, _x12) {

                                          require JSDoc comments (require-jsdoc)

                                          JSDoc is a JavaScript API documentation generator. It uses specially-formatted comments inside of code to generate API documentation automatically. For example, this is what a JSDoc comment looks like for a function:

                                          /**
                                           * Adds two numbers together.
                                           * @param {int} num1 The first number.
                                           * @param {int} num2 The second number.
                                           * @returns {int} The sum of the two numbers.
                                           */
                                          function sum(num1, num2) {
                                              return num1 + num2;
                                          }

                                          Some style guides require JSDoc comments for all functions as a way of explaining function behavior.

                                          Rule Details

                                          This rule requires JSDoc comments for specified nodes. Supported nodes:

                                          • "FunctionDeclaration"
                                          • "ClassDeclaration"
                                          • "MethodDefinition"
                                          • "ArrowFunctionExpression"

                                          Options

                                          This rule has a single object option:

                                          • "require" requires JSDoc comments for the specified nodes

                                          Default option settings are:

                                          {
                                              "require-jsdoc": ["error", {
                                                  "require": {
                                                      "FunctionDeclaration": true,
                                                      "MethodDefinition": false,
                                                      "ClassDeclaration": false,
                                                      "ArrowFunctionExpression": false
                                                  }
                                              }]
                                          }

                                          require

                                          Examples of incorrect code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true } } option:

                                          /*eslint "require-jsdoc": ["error", {
                                              "require": {
                                                  "FunctionDeclaration": true,
                                                  "MethodDefinition": true,
                                                  "ClassDeclaration": true
                                              }
                                          }]*/
                                          
                                          function foo() {
                                              return 10;
                                          }
                                          
                                          var foo = () => {
                                              return 10;
                                          }
                                          
                                          class Test{
                                              getDate(){}
                                          }

                                          Examples of correct code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true } } option:

                                          /*eslint "require-jsdoc": ["error", {
                                              "require": {
                                                  "FunctionDeclaration": true,
                                                  "MethodDefinition": true,
                                                  "ClassDeclaration": true
                                              }
                                          }]*/
                                          
                                          /**
                                           * It returns 10
                                           */
                                          function foo() {
                                              return 10;
                                          }
                                          
                                          /**
                                           * It returns test + 10
                                           * @params {int} test - some number
                                           * @returns {int} sum of test and 10
                                           */
                                          var foo = (test) => {
                                              return test + 10;
                                          }
                                          
                                          /**
                                           * It returns 10
                                           */
                                          var foo = () => {
                                              return 10;
                                          }
                                          
                                          /**
                                           * It returns 10
                                           */
                                          var foo = function() {
                                              return 10;
                                          }
                                          
                                          var array = [1,2,3];
                                          array.filter(function(item) {
                                              return item > 2;
                                          });
                                          
                                          /**
                                           * It returns 10
                                           */
                                          class Test{
                                              /**
                                              * returns the date
                                              */
                                              getDate(){}
                                          }
                                          
                                          setTimeout(() => {}, 10); // since it's an anonymous arrow function

                                          When Not To Use It

                                          If you do not require JSDoc for your functions, then you can leave this rule off.

                                          Related Rules

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {Hash<GhostKernelController>} [controllers] - コントローラ

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {cuttlebone} [GhostViewClass] ghost view class

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                              /**

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {string} namedId - named id

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Wrap an immediate function invocation in parentheses.
                                          Open

                                              value: function () {

                                          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/

                                          Missing JSDoc comment.
                                          Open

                                                function _get_ghost(_x19) {

                                          require JSDoc comments (require-jsdoc)

                                          JSDoc is a JavaScript API documentation generator. It uses specially-formatted comments inside of code to generate API documentation automatically. For example, this is what a JSDoc comment looks like for a function:

                                          /**
                                           * Adds two numbers together.
                                           * @param {int} num1 The first number.
                                           * @param {int} num2 The second number.
                                           * @returns {int} The sum of the two numbers.
                                           */
                                          function sum(num1, num2) {
                                              return num1 + num2;
                                          }

                                          Some style guides require JSDoc comments for all functions as a way of explaining function behavior.

                                          Rule Details

                                          This rule requires JSDoc comments for specified nodes. Supported nodes:

                                          • "FunctionDeclaration"
                                          • "ClassDeclaration"
                                          • "MethodDefinition"
                                          • "ArrowFunctionExpression"

                                          Options

                                          This rule has a single object option:

                                          • "require" requires JSDoc comments for the specified nodes

                                          Default option settings are:

                                          {
                                              "require-jsdoc": ["error", {
                                                  "require": {
                                                      "FunctionDeclaration": true,
                                                      "MethodDefinition": false,
                                                      "ClassDeclaration": false,
                                                      "ArrowFunctionExpression": false
                                                  }
                                              }]
                                          }

                                          require

                                          Examples of incorrect code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true } } option:

                                          /*eslint "require-jsdoc": ["error", {
                                              "require": {
                                                  "FunctionDeclaration": true,
                                                  "MethodDefinition": true,
                                                  "ClassDeclaration": true
                                              }
                                          }]*/
                                          
                                          function foo() {
                                              return 10;
                                          }
                                          
                                          var foo = () => {
                                              return 10;
                                          }
                                          
                                          class Test{
                                              getDate(){}
                                          }

                                          Examples of correct code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true } } option:

                                          /*eslint "require-jsdoc": ["error", {
                                              "require": {
                                                  "FunctionDeclaration": true,
                                                  "MethodDefinition": true,
                                                  "ClassDeclaration": true
                                              }
                                          }]*/
                                          
                                          /**
                                           * It returns 10
                                           */
                                          function foo() {
                                              return 10;
                                          }
                                          
                                          /**
                                           * It returns test + 10
                                           * @params {int} test - some number
                                           * @returns {int} sum of test and 10
                                           */
                                          var foo = (test) => {
                                              return test + 10;
                                          }
                                          
                                          /**
                                           * It returns 10
                                           */
                                          var foo = () => {
                                              return 10;
                                          }
                                          
                                          /**
                                           * It returns 10
                                           */
                                          var foo = function() {
                                              return 10;
                                          }
                                          
                                          var array = [1,2,3];
                                          array.filter(function(item) {
                                              return item > 2;
                                          });
                                          
                                          /**
                                           * It returns 10
                                           */
                                          class Test{
                                              /**
                                              * returns the date
                                              */
                                              getDate(){}
                                          }
                                          
                                          setTimeout(() => {}, 10); // since it's an anonymous arrow function

                                          When Not To Use It

                                          If you do not require JSDoc for your functions, then you can leave this rule off.

                                          Related Rules

                                          Wrap an immediate function invocation in parentheses.
                                          Open

                                              value: function () {

                                          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/

                                          No magic number: 0.
                                          Open

                                                var _ref3 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee3(namedId, profile, routes, controllers, GhostViewClass) {

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Unexpected function expression.
                                          Open

                                                          return _context4.abrupt('return', _promise2.default.all([this._get_ghost(namedId), this._get_shell(namedId, shellname, GhostViewClass), this._get_balloon(balloonname, GhostViewClass)]).then(function (_ref5) {

                                          Suggest using arrow functions as callbacks. (prefer-arrow-callback)

                                          Arrow functions are suited to callbacks, because:

                                          • this keywords in arrow functions bind to the upper scope's.
                                          • The notation of the arrow function is shorter than function expression's.

                                          Rule Details

                                          This rule is aimed to flag usage of function expressions in an argument list.

                                          The following patterns are considered problems:

                                          /*eslint prefer-arrow-callback: "error"*/
                                          
                                          foo(function(a) { return a; });
                                          foo(function() { return this.a; }.bind(this));

                                          The following patterns are not considered problems:

                                          /*eslint prefer-arrow-callback: "error"*/
                                          /*eslint-env es6*/
                                          
                                          foo(a => a);
                                          foo(function*() { yield; });
                                          
                                          // this is not a callback.
                                          var foo = function foo(a) { return a; };
                                          
                                          // using `this` without `.bind(this)`.
                                          foo(function() { return this.a; });
                                          
                                          // recursively.
                                          foo(function bar(n) { return n && n + bar(n - 1); });

                                          Options

                                          This rule takes one optional argument, an object which is an options object.

                                          allowNamedFunctions

                                          This is a boolean option and it is false by default. When set to true, the rule doesn't warn on named functions used as callbacks.

                                          Examples of correct code for the { "allowNamedFunctions": true } option:

                                          /*eslint prefer-arrow-callback: ["error", { "allowNamedFunctions": true }]*/
                                          
                                          foo(function bar() {});

                                          allowUnboundThis

                                          This is a boolean option and it is true by default. When set to false, this option allows the use of this without restriction and checks for dynamically assigned this values such as when using Array.prototype.map with a context argument. Normally, the rule will flag the use of this whenever a function does not use bind() to specify the value of this constantly.

                                          Examples of incorrect code for the { "allowUnboundThis": false } option:

                                          /*eslint prefer-arrow-callback: ["error", { "allowUnboundThis": false }]*/
                                          /*eslint-env es6*/
                                          
                                          foo(function() { this.a; });
                                          
                                          foo(function() { (() => this); });
                                          
                                          someArray.map(function (itm) { return this.doSomething(itm); }, someObject);

                                          When Not To Use It

                                          This rule should not be used in ES3/5 environments.

                                          In ES2015 (ES6) or later, if you don't want to be notified about function expressions in an argument list, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @return {string} dirpath that ends with path separator

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                              /**

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {GhostProfile} [profile] - profile

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Unexpected var, use let or const instead.
                                          Open

                                                var _ref2 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee2(namedId, profile) {

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          No magic number: 5.
                                          Open

                                                        case 5:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          No magic number: 0.
                                          Open

                                                            var _ref6 = (0, _slicedToArray3.default)(_ref5, 3);

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Missing JSDoc comment.
                                          Open

                                                function _get_ghost_kernel(_x13, _x14, _x15, _x16, _x17, _x18) {

                                          require JSDoc comments (require-jsdoc)

                                          JSDoc is a JavaScript API documentation generator. It uses specially-formatted comments inside of code to generate API documentation automatically. For example, this is what a JSDoc comment looks like for a function:

                                          /**
                                           * Adds two numbers together.
                                           * @param {int} num1 The first number.
                                           * @param {int} num2 The second number.
                                           * @returns {int} The sum of the two numbers.
                                           */
                                          function sum(num1, num2) {
                                              return num1 + num2;
                                          }

                                          Some style guides require JSDoc comments for all functions as a way of explaining function behavior.

                                          Rule Details

                                          This rule requires JSDoc comments for specified nodes. Supported nodes:

                                          • "FunctionDeclaration"
                                          • "ClassDeclaration"
                                          • "MethodDefinition"
                                          • "ArrowFunctionExpression"

                                          Options

                                          This rule has a single object option:

                                          • "require" requires JSDoc comments for the specified nodes

                                          Default option settings are:

                                          {
                                              "require-jsdoc": ["error", {
                                                  "require": {
                                                      "FunctionDeclaration": true,
                                                      "MethodDefinition": false,
                                                      "ClassDeclaration": false,
                                                      "ArrowFunctionExpression": false
                                                  }
                                              }]
                                          }

                                          require

                                          Examples of incorrect code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true } } option:

                                          /*eslint "require-jsdoc": ["error", {
                                              "require": {
                                                  "FunctionDeclaration": true,
                                                  "MethodDefinition": true,
                                                  "ClassDeclaration": true
                                              }
                                          }]*/
                                          
                                          function foo() {
                                              return 10;
                                          }
                                          
                                          var foo = () => {
                                              return 10;
                                          }
                                          
                                          class Test{
                                              getDate(){}
                                          }

                                          Examples of correct code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true } } option:

                                          /*eslint "require-jsdoc": ["error", {
                                              "require": {
                                                  "FunctionDeclaration": true,
                                                  "MethodDefinition": true,
                                                  "ClassDeclaration": true
                                              }
                                          }]*/
                                          
                                          /**
                                           * It returns 10
                                           */
                                          function foo() {
                                              return 10;
                                          }
                                          
                                          /**
                                           * It returns test + 10
                                           * @params {int} test - some number
                                           * @returns {int} sum of test and 10
                                           */
                                          var foo = (test) => {
                                              return test + 10;
                                          }
                                          
                                          /**
                                           * It returns 10
                                           */
                                          var foo = () => {
                                              return 10;
                                          }
                                          
                                          /**
                                           * It returns 10
                                           */
                                          var foo = function() {
                                              return 10;
                                          }
                                          
                                          var array = [1,2,3];
                                          array.filter(function(item) {
                                              return item > 2;
                                          });
                                          
                                          /**
                                           * It returns 10
                                           */
                                          class Test{
                                              /**
                                              * returns the date
                                              */
                                              getDate(){}
                                          }
                                          
                                          setTimeout(() => {}, 10); // since it's an anonymous arrow function

                                          When Not To Use It

                                          If you do not require JSDoc for your functions, then you can leave this rule off.

                                          Related Rules

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {NanikaDirectory} ghost directory contents

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Missing JSDoc comment.
                                          Open

                                                function _get_shell(_x22, _x23, _x24) {

                                          require JSDoc comments (require-jsdoc)

                                          JSDoc is a JavaScript API documentation generator. It uses specially-formatted comments inside of code to generate API documentation automatically. For example, this is what a JSDoc comment looks like for a function:

                                          /**
                                           * Adds two numbers together.
                                           * @param {int} num1 The first number.
                                           * @param {int} num2 The second number.
                                           * @returns {int} The sum of the two numbers.
                                           */
                                          function sum(num1, num2) {
                                              return num1 + num2;
                                          }

                                          Some style guides require JSDoc comments for all functions as a way of explaining function behavior.

                                          Rule Details

                                          This rule requires JSDoc comments for specified nodes. Supported nodes:

                                          • "FunctionDeclaration"
                                          • "ClassDeclaration"
                                          • "MethodDefinition"
                                          • "ArrowFunctionExpression"

                                          Options

                                          This rule has a single object option:

                                          • "require" requires JSDoc comments for the specified nodes

                                          Default option settings are:

                                          {
                                              "require-jsdoc": ["error", {
                                                  "require": {
                                                      "FunctionDeclaration": true,
                                                      "MethodDefinition": false,
                                                      "ClassDeclaration": false,
                                                      "ArrowFunctionExpression": false
                                                  }
                                              }]
                                          }

                                          require

                                          Examples of incorrect code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true } } option:

                                          /*eslint "require-jsdoc": ["error", {
                                              "require": {
                                                  "FunctionDeclaration": true,
                                                  "MethodDefinition": true,
                                                  "ClassDeclaration": true
                                              }
                                          }]*/
                                          
                                          function foo() {
                                              return 10;
                                          }
                                          
                                          var foo = () => {
                                              return 10;
                                          }
                                          
                                          class Test{
                                              getDate(){}
                                          }

                                          Examples of correct code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true } } option:

                                          /*eslint "require-jsdoc": ["error", {
                                              "require": {
                                                  "FunctionDeclaration": true,
                                                  "MethodDefinition": true,
                                                  "ClassDeclaration": true
                                              }
                                          }]*/
                                          
                                          /**
                                           * It returns 10
                                           */
                                          function foo() {
                                              return 10;
                                          }
                                          
                                          /**
                                           * It returns test + 10
                                           * @params {int} test - some number
                                           * @returns {int} sum of test and 10
                                           */
                                          var foo = (test) => {
                                              return test + 10;
                                          }
                                          
                                          /**
                                           * It returns 10
                                           */
                                          var foo = () => {
                                              return 10;
                                          }
                                          
                                          /**
                                           * It returns 10
                                           */
                                          var foo = function() {
                                              return 10;
                                          }
                                          
                                          var array = [1,2,3];
                                          array.filter(function(item) {
                                              return item > 2;
                                          });
                                          
                                          /**
                                           * It returns 10
                                           */
                                          class Test{
                                              /**
                                              * returns the date
                                              */
                                              getDate(){}
                                          }
                                          
                                          setTimeout(() => {}, 10); // since it's an anonymous arrow function

                                          When Not To Use It

                                          If you do not require JSDoc for your functions, then you can leave this rule off.

                                          Related Rules

                                          Unexpected var, use let or const instead.
                                          Open

                                                var _ref10 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee8(namedId, shellname) {

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          No magic number: 0.
                                          Open

                                                        case 0:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * get balloon instance

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          No magic number: 0.
                                          Open

                                                        case 0:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @return {Promise<NanikaDirectory>} balloon directory contents

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {string} namedId - named id

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          No magic number: 0.
                                          Open

                                                        case 0:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          No magic number: 3.
                                          Open

                                                        case 3:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Wrap an immediate function invocation in parentheses.
                                          Open

                                              value: function () {

                                          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/

                                          No magic number: 7.
                                          Open

                                                        case 7:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Missing JSDoc comment.
                                          Open

                                                function _get_balloon(_x28, _x29) {

                                          require JSDoc comments (require-jsdoc)

                                          JSDoc is a JavaScript API documentation generator. It uses specially-formatted comments inside of code to generate API documentation automatically. For example, this is what a JSDoc comment looks like for a function:

                                          /**
                                           * Adds two numbers together.
                                           * @param {int} num1 The first number.
                                           * @param {int} num2 The second number.
                                           * @returns {int} The sum of the two numbers.
                                           */
                                          function sum(num1, num2) {
                                              return num1 + num2;
                                          }

                                          Some style guides require JSDoc comments for all functions as a way of explaining function behavior.

                                          Rule Details

                                          This rule requires JSDoc comments for specified nodes. Supported nodes:

                                          • "FunctionDeclaration"
                                          • "ClassDeclaration"
                                          • "MethodDefinition"
                                          • "ArrowFunctionExpression"

                                          Options

                                          This rule has a single object option:

                                          • "require" requires JSDoc comments for the specified nodes

                                          Default option settings are:

                                          {
                                              "require-jsdoc": ["error", {
                                                  "require": {
                                                      "FunctionDeclaration": true,
                                                      "MethodDefinition": false,
                                                      "ClassDeclaration": false,
                                                      "ArrowFunctionExpression": false
                                                  }
                                              }]
                                          }

                                          require

                                          Examples of incorrect code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true } } option:

                                          /*eslint "require-jsdoc": ["error", {
                                              "require": {
                                                  "FunctionDeclaration": true,
                                                  "MethodDefinition": true,
                                                  "ClassDeclaration": true
                                              }
                                          }]*/
                                          
                                          function foo() {
                                              return 10;
                                          }
                                          
                                          var foo = () => {
                                              return 10;
                                          }
                                          
                                          class Test{
                                              getDate(){}
                                          }

                                          Examples of correct code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true } } option:

                                          /*eslint "require-jsdoc": ["error", {
                                              "require": {
                                                  "FunctionDeclaration": true,
                                                  "MethodDefinition": true,
                                                  "ClassDeclaration": true
                                              }
                                          }]*/
                                          
                                          /**
                                           * It returns 10
                                           */
                                          function foo() {
                                              return 10;
                                          }
                                          
                                          /**
                                           * It returns test + 10
                                           * @params {int} test - some number
                                           * @returns {int} sum of test and 10
                                           */
                                          var foo = (test) => {
                                              return test + 10;
                                          }
                                          
                                          /**
                                           * It returns 10
                                           */
                                          var foo = () => {
                                              return 10;
                                          }
                                          
                                          /**
                                           * It returns 10
                                           */
                                          var foo = function() {
                                              return 10;
                                          }
                                          
                                          var array = [1,2,3];
                                          array.filter(function(item) {
                                              return item > 2;
                                          });
                                          
                                          /**
                                           * It returns 10
                                           */
                                          class Test{
                                              /**
                                              * returns the date
                                              */
                                              getDate(){}
                                          }
                                          
                                          setTimeout(() => {}, 10); // since it's an anonymous arrow function

                                          When Not To Use It

                                          If you do not require JSDoc for your functions, then you can leave this rule off.

                                          Related Rules

                                          Wrap an immediate function invocation in parentheses.
                                          Open

                                              value: function () {

                                          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

                                              value: function () {

                                          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/

                                          Unexpected var, use let or const instead.
                                          Open

                                                  var directory, shell;

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          No magic number: 10.
                                          Open

                                                        case 10:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * get shell directory contents

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          No magic number: 0.
                                          Open

                                                var _ref10 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee8(namedId, shellname) {

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                              /**

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Unexpected var, use let or const instead.
                                          Open

                                                var GhostViewClass = arguments.length <= 1 || arguments[1] === undefined ? this.GhostViewClass : arguments[1];

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                              /**

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {cuttlebone} [GhostViewClass] ghost view class

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Unexpected var, use let or const instead.
                                          Open

                                                var _ref9 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee7(namedId, shellname, GhostViewClass) {

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Unexpected var, use let or const instead.
                                          Open

                                                  var directory, balloon;

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Unexpected var, use let or const instead.
                                          Open

                                                  var shiori, result;

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          No magic number: 7.
                                          Open

                                                        case 7:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {string} namedId - named id

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Use the rest parameters instead of 'arguments'.
                                          Open

                                                  return _ref10.apply(this, arguments);

                                          Suggest using the rest parameters instead of arguments (prefer-rest-params)

                                          There are rest parameters in ES2015. We can use that feature for variadic functions instead of the arguments variable.

                                          arguments does not have methods of Array.prototype, so it's a bit of an inconvenience.

                                          Rule Details

                                          This rule is aimed to flag usage of arguments variables.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          function foo() {
                                              console.log(arguments);
                                          }
                                          
                                          function foo(action) {
                                              var args = Array.prototype.slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }
                                          
                                          function foo(action) {
                                              var args = [].slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }

                                          Examples of correct code for this rule:

                                          function foo(...args) {
                                              console.log(args);
                                          }
                                          
                                          function foo(action, ...args) {
                                              action.apply(null, args); // or `action(...args)`, related to the `prefer-spread` rule.
                                          }
                                          
                                          // Note: the implicit arguments can be overwritten.
                                          function foo(arguments) {
                                              console.log(arguments); // This is the first argument.
                                          }
                                          function foo() {
                                              var arguments = 0;
                                              console.log(arguments); // This is a local variable.
                                          }

                                          When Not To Use It

                                          This rule should not be used in ES3/5 environments.

                                          In ES2015 (ES6) or later, if you don't want to be notified about arguments variables, then it's safe to disable this rule.

                                          Related Rules

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {NanikaDirectory} shell directory contents

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          No magic number: 0.
                                          Open

                                                var _ref11 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee9(balloonname, GhostViewClass) {

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Use the rest parameters instead of 'arguments'.
                                          Open

                                                  return _ref11.apply(this, arguments);

                                          Suggest using the rest parameters instead of arguments (prefer-rest-params)

                                          There are rest parameters in ES2015. We can use that feature for variadic functions instead of the arguments variable.

                                          arguments does not have methods of Array.prototype, so it's a bit of an inconvenience.

                                          Rule Details

                                          This rule is aimed to flag usage of arguments variables.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          function foo() {
                                              console.log(arguments);
                                          }
                                          
                                          function foo(action) {
                                              var args = Array.prototype.slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }
                                          
                                          function foo(action) {
                                              var args = [].slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }

                                          Examples of correct code for this rule:

                                          function foo(...args) {
                                              console.log(args);
                                          }
                                          
                                          function foo(action, ...args) {
                                              action.apply(null, args); // or `action(...args)`, related to the `prefer-spread` rule.
                                          }
                                          
                                          // Note: the implicit arguments can be overwritten.
                                          function foo(arguments) {
                                              console.log(arguments); // This is the first argument.
                                          }
                                          function foo() {
                                              var arguments = 0;
                                              console.log(arguments); // This is a local variable.
                                          }

                                          When Not To Use It

                                          This rule should not be used in ES3/5 environments.

                                          In ES2015 (ES6) or later, if you don't want to be notified about arguments variables, then it's safe to disable this rule.

                                          Related Rules

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * load ghost(shiori)

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @return {Promise<Shell>} shell instance

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {cuttlebone} [GhostViewClass] ghost view class

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {string} balloonname - balloonname

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Unexpected space before function parentheses.
                                          Open

                                              value: function () {

                                          Require or disallow a space before function parenthesis (space-before-function-paren)

                                          When formatting a function, whitespace is allowed between the function name or function keyword and the opening paren. Named functions also require a space between the function keyword and the function name, but anonymous functions require no whitespace. For example:

                                          function withoutSpace(x) {
                                              // ...
                                          }
                                          
                                          function withSpace (x) {
                                              // ...
                                          }
                                          
                                          var anonymousWithoutSpace = function() {};
                                          
                                          var anonymousWithSpace = function () {};

                                          Style guides may require a space after the function keyword for anonymous functions, while others specify no whitespace. Similarly, the space after a function name may or may not be required.

                                          Rule Details

                                          This rule aims to enforce consistent spacing before function parentheses and as such, will warn whenever whitespace doesn't match the preferences specified.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "space-before-function-paren": ["error", "always"],
                                              // or
                                              "space-before-function-paren": ["error", {
                                                  "anonymous": "always",
                                                  "named": "always",
                                                  "asyncArrow": "ignore"
                                              }],
                                          }
                                          • always (default) requires a space followed by the ( of arguments.
                                          • never disallows any space followed by the ( of arguments.

                                          The string option does not check async arrow function expressions for backward compatibility.

                                          You can also use a separate option for each type of function. Each of the following options can be set to "always", "never", or "ignore". Default is "always" basically.

                                          • anonymous is for anonymous function expressions (e.g. function () {}).
                                          • named is for named function expressions (e.g. function foo () {}).
                                          • asyncArrow is for async arrow function expressions (e.g. async () => {}). asyncArrow is set to "ignore" by default for backwards compatibility.

                                          "always"

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

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

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

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          "never"

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

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

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

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          {"anonymous": "always", "named": "never", "asyncArrow": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async(a) => await a

                                          Examples of correct code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async (a) => await a

                                          {"anonymous": "never", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          {"anonymous": "ignore", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with the consistency of spacing before function parenthesis.

                                          Related Rules

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                              /**

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * get shell instance

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Unexpected space before function parentheses.
                                          Open

                                              value: function () {

                                          Require or disallow a space before function parenthesis (space-before-function-paren)

                                          When formatting a function, whitespace is allowed between the function name or function keyword and the opening paren. Named functions also require a space between the function keyword and the function name, but anonymous functions require no whitespace. For example:

                                          function withoutSpace(x) {
                                              // ...
                                          }
                                          
                                          function withSpace (x) {
                                              // ...
                                          }
                                          
                                          var anonymousWithoutSpace = function() {};
                                          
                                          var anonymousWithSpace = function () {};

                                          Style guides may require a space after the function keyword for anonymous functions, while others specify no whitespace. Similarly, the space after a function name may or may not be required.

                                          Rule Details

                                          This rule aims to enforce consistent spacing before function parentheses and as such, will warn whenever whitespace doesn't match the preferences specified.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "space-before-function-paren": ["error", "always"],
                                              // or
                                              "space-before-function-paren": ["error", {
                                                  "anonymous": "always",
                                                  "named": "always",
                                                  "asyncArrow": "ignore"
                                              }],
                                          }
                                          • always (default) requires a space followed by the ( of arguments.
                                          • never disallows any space followed by the ( of arguments.

                                          The string option does not check async arrow function expressions for backward compatibility.

                                          You can also use a separate option for each type of function. Each of the following options can be set to "always", "never", or "ignore". Default is "always" basically.

                                          • anonymous is for anonymous function expressions (e.g. function () {}).
                                          • named is for named function expressions (e.g. function foo () {}).
                                          • asyncArrow is for async arrow function expressions (e.g. async () => {}). asyncArrow is set to "ignore" by default for backwards compatibility.

                                          "always"

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

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

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

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          "never"

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

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

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

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          {"anonymous": "always", "named": "never", "asyncArrow": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async(a) => await a

                                          Examples of correct code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async (a) => await a

                                          {"anonymous": "never", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          {"anonymous": "ignore", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with the consistency of spacing before function parenthesis.

                                          Related Rules

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                              /**

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                              /**

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {string} namedId - named id

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Use the rest parameters instead of 'arguments'.
                                          Open

                                                  return _ref8.apply(this, arguments);

                                          Suggest using the rest parameters instead of arguments (prefer-rest-params)

                                          There are rest parameters in ES2015. We can use that feature for variadic functions instead of the arguments variable.

                                          arguments does not have methods of Array.prototype, so it's a bit of an inconvenience.

                                          Rule Details

                                          This rule is aimed to flag usage of arguments variables.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          function foo() {
                                              console.log(arguments);
                                          }
                                          
                                          function foo(action) {
                                              var args = Array.prototype.slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }
                                          
                                          function foo(action) {
                                              var args = [].slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }

                                          Examples of correct code for this rule:

                                          function foo(...args) {
                                              console.log(args);
                                          }
                                          
                                          function foo(action, ...args) {
                                              action.apply(null, args); // or `action(...args)`, related to the `prefer-spread` rule.
                                          }
                                          
                                          // Note: the implicit arguments can be overwritten.
                                          function foo(arguments) {
                                              console.log(arguments); // This is the first argument.
                                          }
                                          function foo() {
                                              var arguments = 0;
                                              console.log(arguments); // This is a local variable.
                                          }

                                          When Not To Use It

                                          This rule should not be used in ES3/5 environments.

                                          In ES2015 (ES6) or later, if you don't want to be notified about arguments variables, then it's safe to disable this rule.

                                          Related Rules

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @return {Promise<NanikaDirectory>} shell directory contents

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Unexpected var, use let or const instead.
                                          Open

                                                var shell = new GhostViewClass.Shell(directory.asArrayBuffer());

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          No magic number: 1.
                                          Open

                                                    while (1) {

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          No magic number: 3.
                                          Open

                                                        case 3:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Unexpected var, use let or const instead.
                                          Open

                                                var _ref12 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee10(balloonname) {

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * get ghost directory path

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @return {string} ghost directory path

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Unexpected space before function parentheses.
                                          Open

                                              value: function () {

                                          Require or disallow a space before function parenthesis (space-before-function-paren)

                                          When formatting a function, whitespace is allowed between the function name or function keyword and the opening paren. Named functions also require a space between the function keyword and the function name, but anonymous functions require no whitespace. For example:

                                          function withoutSpace(x) {
                                              // ...
                                          }
                                          
                                          function withSpace (x) {
                                              // ...
                                          }
                                          
                                          var anonymousWithoutSpace = function() {};
                                          
                                          var anonymousWithSpace = function () {};

                                          Style guides may require a space after the function keyword for anonymous functions, while others specify no whitespace. Similarly, the space after a function name may or may not be required.

                                          Rule Details

                                          This rule aims to enforce consistent spacing before function parentheses and as such, will warn whenever whitespace doesn't match the preferences specified.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "space-before-function-paren": ["error", "always"],
                                              // or
                                              "space-before-function-paren": ["error", {
                                                  "anonymous": "always",
                                                  "named": "always",
                                                  "asyncArrow": "ignore"
                                              }],
                                          }
                                          • always (default) requires a space followed by the ( of arguments.
                                          • never disallows any space followed by the ( of arguments.

                                          The string option does not check async arrow function expressions for backward compatibility.

                                          You can also use a separate option for each type of function. Each of the following options can be set to "always", "never", or "ignore". Default is "always" basically.

                                          • anonymous is for anonymous function expressions (e.g. function () {}).
                                          • named is for named function expressions (e.g. function foo () {}).
                                          • asyncArrow is for async arrow function expressions (e.g. async () => {}). asyncArrow is set to "ignore" by default for backwards compatibility.

                                          "always"

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

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

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

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          "never"

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

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

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

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          {"anonymous": "always", "named": "never", "asyncArrow": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async(a) => await a

                                          Examples of correct code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async (a) => await a

                                          {"anonymous": "never", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          {"anonymous": "ignore", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with the consistency of spacing before function parenthesis.

                                          Related Rules

                                          No magic number: 2.
                                          Open

                                                        case 2:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Missing JSDoc comment.
                                          Open

                                                function _load_ghost(_x20, _x21) {

                                          require JSDoc comments (require-jsdoc)

                                          JSDoc is a JavaScript API documentation generator. It uses specially-formatted comments inside of code to generate API documentation automatically. For example, this is what a JSDoc comment looks like for a function:

                                          /**
                                           * Adds two numbers together.
                                           * @param {int} num1 The first number.
                                           * @param {int} num2 The second number.
                                           * @returns {int} The sum of the two numbers.
                                           */
                                          function sum(num1, num2) {
                                              return num1 + num2;
                                          }

                                          Some style guides require JSDoc comments for all functions as a way of explaining function behavior.

                                          Rule Details

                                          This rule requires JSDoc comments for specified nodes. Supported nodes:

                                          • "FunctionDeclaration"
                                          • "ClassDeclaration"
                                          • "MethodDefinition"
                                          • "ArrowFunctionExpression"

                                          Options

                                          This rule has a single object option:

                                          • "require" requires JSDoc comments for the specified nodes

                                          Default option settings are:

                                          {
                                              "require-jsdoc": ["error", {
                                                  "require": {
                                                      "FunctionDeclaration": true,
                                                      "MethodDefinition": false,
                                                      "ClassDeclaration": false,
                                                      "ArrowFunctionExpression": false
                                                  }
                                              }]
                                          }

                                          require

                                          Examples of incorrect code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true } } option:

                                          /*eslint "require-jsdoc": ["error", {
                                              "require": {
                                                  "FunctionDeclaration": true,
                                                  "MethodDefinition": true,
                                                  "ClassDeclaration": true
                                              }
                                          }]*/
                                          
                                          function foo() {
                                              return 10;
                                          }
                                          
                                          var foo = () => {
                                              return 10;
                                          }
                                          
                                          class Test{
                                              getDate(){}
                                          }

                                          Examples of correct code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true } } option:

                                          /*eslint "require-jsdoc": ["error", {
                                              "require": {
                                                  "FunctionDeclaration": true,
                                                  "MethodDefinition": true,
                                                  "ClassDeclaration": true
                                              }
                                          }]*/
                                          
                                          /**
                                           * It returns 10
                                           */
                                          function foo() {
                                              return 10;
                                          }
                                          
                                          /**
                                           * It returns test + 10
                                           * @params {int} test - some number
                                           * @returns {int} sum of test and 10
                                           */
                                          var foo = (test) => {
                                              return test + 10;
                                          }
                                          
                                          /**
                                           * It returns 10
                                           */
                                          var foo = () => {
                                              return 10;
                                          }
                                          
                                          /**
                                           * It returns 10
                                           */
                                          var foo = function() {
                                              return 10;
                                          }
                                          
                                          var array = [1,2,3];
                                          array.filter(function(item) {
                                              return item > 2;
                                          });
                                          
                                          /**
                                           * It returns 10
                                           */
                                          class Test{
                                              /**
                                              * returns the date
                                              */
                                              getDate(){}
                                          }
                                          
                                          setTimeout(() => {}, 10); // since it's an anonymous arrow function

                                          When Not To Use It

                                          If you do not require JSDoc for your functions, then you can leave this rule off.

                                          Related Rules

                                          Unexpected space before function parentheses.
                                          Open

                                              value: function () {

                                          Require or disallow a space before function parenthesis (space-before-function-paren)

                                          When formatting a function, whitespace is allowed between the function name or function keyword and the opening paren. Named functions also require a space between the function keyword and the function name, but anonymous functions require no whitespace. For example:

                                          function withoutSpace(x) {
                                              // ...
                                          }
                                          
                                          function withSpace (x) {
                                              // ...
                                          }
                                          
                                          var anonymousWithoutSpace = function() {};
                                          
                                          var anonymousWithSpace = function () {};

                                          Style guides may require a space after the function keyword for anonymous functions, while others specify no whitespace. Similarly, the space after a function name may or may not be required.

                                          Rule Details

                                          This rule aims to enforce consistent spacing before function parentheses and as such, will warn whenever whitespace doesn't match the preferences specified.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "space-before-function-paren": ["error", "always"],
                                              // or
                                              "space-before-function-paren": ["error", {
                                                  "anonymous": "always",
                                                  "named": "always",
                                                  "asyncArrow": "ignore"
                                              }],
                                          }
                                          • always (default) requires a space followed by the ( of arguments.
                                          • never disallows any space followed by the ( of arguments.

                                          The string option does not check async arrow function expressions for backward compatibility.

                                          You can also use a separate option for each type of function. Each of the following options can be set to "always", "never", or "ignore". Default is "always" basically.

                                          • anonymous is for anonymous function expressions (e.g. function () {}).
                                          • named is for named function expressions (e.g. function foo () {}).
                                          • asyncArrow is for async arrow function expressions (e.g. async () => {}). asyncArrow is set to "ignore" by default for backwards compatibility.

                                          "always"

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

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

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

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          "never"

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

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

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

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          {"anonymous": "always", "named": "never", "asyncArrow": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async(a) => await a

                                          Examples of correct code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async (a) => await a

                                          {"anonymous": "never", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          {"anonymous": "ignore", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with the consistency of spacing before function parenthesis.

                                          Related Rules

                                          No magic number: 3.
                                          Open

                                                        case 3:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * get balloon directory contents

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Unexpected var, use let or const instead.
                                          Open

                                                var _ref8 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee6(fs, dirpath) {

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          No magic number: 1.
                                          Open

                                                    while (1) {

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          No magic number: 7.
                                          Open

                                                        case 7:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Use the rest parameters instead of 'arguments'.
                                          Open

                                                  return _ref9.apply(this, arguments);

                                          Suggest using the rest parameters instead of arguments (prefer-rest-params)

                                          There are rest parameters in ES2015. We can use that feature for variadic functions instead of the arguments variable.

                                          arguments does not have methods of Array.prototype, so it's a bit of an inconvenience.

                                          Rule Details

                                          This rule is aimed to flag usage of arguments variables.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          function foo() {
                                              console.log(arguments);
                                          }
                                          
                                          function foo(action) {
                                              var args = Array.prototype.slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }
                                          
                                          function foo(action) {
                                              var args = [].slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }

                                          Examples of correct code for this rule:

                                          function foo(...args) {
                                              console.log(args);
                                          }
                                          
                                          function foo(action, ...args) {
                                              action.apply(null, args); // or `action(...args)`, related to the `prefer-spread` rule.
                                          }
                                          
                                          // Note: the implicit arguments can be overwritten.
                                          function foo(arguments) {
                                              console.log(arguments); // This is the first argument.
                                          }
                                          function foo() {
                                              var arguments = 0;
                                              console.log(arguments); // This is a local variable.
                                          }

                                          When Not To Use It

                                          This rule should not be used in ES3/5 environments.

                                          In ES2015 (ES6) or later, if you don't want to be notified about arguments variables, then it's safe to disable this rule.

                                          Related Rules

                                          Wrap an immediate function invocation in parentheses.
                                          Open

                                              value: function () {

                                          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/

                                          Unexpected function expression.
                                          Open

                                                  return _regenerator2.default.wrap(function _callee6$(_context6) {

                                          Suggest using arrow functions as callbacks. (prefer-arrow-callback)

                                          Arrow functions are suited to callbacks, because:

                                          • this keywords in arrow functions bind to the upper scope's.
                                          • The notation of the arrow function is shorter than function expression's.

                                          Rule Details

                                          This rule is aimed to flag usage of function expressions in an argument list.

                                          The following patterns are considered problems:

                                          /*eslint prefer-arrow-callback: "error"*/
                                          
                                          foo(function(a) { return a; });
                                          foo(function() { return this.a; }.bind(this));

                                          The following patterns are not considered problems:

                                          /*eslint prefer-arrow-callback: "error"*/
                                          /*eslint-env es6*/
                                          
                                          foo(a => a);
                                          foo(function*() { yield; });
                                          
                                          // this is not a callback.
                                          var foo = function foo(a) { return a; };
                                          
                                          // using `this` without `.bind(this)`.
                                          foo(function() { return this.a; });
                                          
                                          // recursively.
                                          foo(function bar(n) { return n && n + bar(n - 1); });

                                          Options

                                          This rule takes one optional argument, an object which is an options object.

                                          allowNamedFunctions

                                          This is a boolean option and it is false by default. When set to true, the rule doesn't warn on named functions used as callbacks.

                                          Examples of correct code for the { "allowNamedFunctions": true } option:

                                          /*eslint prefer-arrow-callback: ["error", { "allowNamedFunctions": true }]*/
                                          
                                          foo(function bar() {});

                                          allowUnboundThis

                                          This is a boolean option and it is true by default. When set to false, this option allows the use of this without restriction and checks for dynamically assigned this values such as when using Array.prototype.map with a context argument. Normally, the rule will flag the use of this whenever a function does not use bind() to specify the value of this constantly.

                                          Examples of incorrect code for the { "allowUnboundThis": false } option:

                                          /*eslint prefer-arrow-callback: ["error", { "allowUnboundThis": false }]*/
                                          /*eslint-env es6*/
                                          
                                          foo(function() { this.a; });
                                          
                                          foo(function() { (() => this); });
                                          
                                          someArray.map(function (itm) { return this.doSomething(itm); }, someObject);

                                          When Not To Use It

                                          This rule should not be used in ES3/5 environments.

                                          In ES2015 (ES6) or later, if you don't want to be notified about function expressions in an argument list, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {string} shellname - shellname

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          No magic number: 1.
                                          Open

                                                    while (1) {

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          No magic number: 2.
                                          Open

                                                        case 2:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * load shell

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {cuttlebone} [GhostViewClass] ghost view class

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          No magic number: 1.
                                          Open

                                                var GhostViewClass = arguments.length <= 1 || arguments[1] === undefined ? this.GhostViewClass : arguments[1];

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {string} balloonname - balloonname

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Unexpected space before function parentheses.
                                          Open

                                              value: function () {

                                          Require or disallow a space before function parenthesis (space-before-function-paren)

                                          When formatting a function, whitespace is allowed between the function name or function keyword and the opening paren. Named functions also require a space between the function keyword and the function name, but anonymous functions require no whitespace. For example:

                                          function withoutSpace(x) {
                                              // ...
                                          }
                                          
                                          function withSpace (x) {
                                              // ...
                                          }
                                          
                                          var anonymousWithoutSpace = function() {};
                                          
                                          var anonymousWithSpace = function () {};

                                          Style guides may require a space after the function keyword for anonymous functions, while others specify no whitespace. Similarly, the space after a function name may or may not be required.

                                          Rule Details

                                          This rule aims to enforce consistent spacing before function parentheses and as such, will warn whenever whitespace doesn't match the preferences specified.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "space-before-function-paren": ["error", "always"],
                                              // or
                                              "space-before-function-paren": ["error", {
                                                  "anonymous": "always",
                                                  "named": "always",
                                                  "asyncArrow": "ignore"
                                              }],
                                          }
                                          • always (default) requires a space followed by the ( of arguments.
                                          • never disallows any space followed by the ( of arguments.

                                          The string option does not check async arrow function expressions for backward compatibility.

                                          You can also use a separate option for each type of function. Each of the following options can be set to "always", "never", or "ignore". Default is "always" basically.

                                          • anonymous is for anonymous function expressions (e.g. function () {}).
                                          • named is for named function expressions (e.g. function foo () {}).
                                          • asyncArrow is for async arrow function expressions (e.g. async () => {}). asyncArrow is set to "ignore" by default for backwards compatibility.

                                          "always"

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

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

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

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          "never"

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

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

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

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          {"anonymous": "always", "named": "never", "asyncArrow": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async(a) => await a

                                          Examples of correct code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async (a) => await a

                                          {"anonymous": "never", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          {"anonymous": "ignore", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with the consistency of spacing before function parenthesis.

                                          Related Rules

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                              /**

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                              /**

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          No magic number: 0.
                                          Open

                                                var _ref8 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee6(fs, dirpath) {

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @return {Promise<Shell>} shell instance

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Use the rest parameters instead of 'arguments'.
                                          Open

                                                var GhostViewClass = arguments.length <= 1 || arguments[1] === undefined ? this.GhostViewClass : arguments[1];

                                          Suggest using the rest parameters instead of arguments (prefer-rest-params)

                                          There are rest parameters in ES2015. We can use that feature for variadic functions instead of the arguments variable.

                                          arguments does not have methods of Array.prototype, so it's a bit of an inconvenience.

                                          Rule Details

                                          This rule is aimed to flag usage of arguments variables.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          function foo() {
                                              console.log(arguments);
                                          }
                                          
                                          function foo(action) {
                                              var args = Array.prototype.slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }
                                          
                                          function foo(action) {
                                              var args = [].slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }

                                          Examples of correct code for this rule:

                                          function foo(...args) {
                                              console.log(args);
                                          }
                                          
                                          function foo(action, ...args) {
                                              action.apply(null, args); // or `action(...args)`, related to the `prefer-spread` rule.
                                          }
                                          
                                          // Note: the implicit arguments can be overwritten.
                                          function foo(arguments) {
                                              console.log(arguments); // This is the first argument.
                                          }
                                          function foo() {
                                              var arguments = 0;
                                              console.log(arguments); // This is a local variable.
                                          }

                                          When Not To Use It

                                          This rule should not be used in ES3/5 environments.

                                          In ES2015 (ES6) or later, if you don't want to be notified about arguments variables, then it's safe to disable this rule.

                                          Related Rules

                                          No magic number: 5.
                                          Open

                                                        case 5:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Wrap an immediate function invocation in parentheses.
                                          Open

                                              value: function () {

                                          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/

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {string} shellname - shellname

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Missing JSDoc comment.
                                          Open

                                                function _get_shell_directory(_x25, _x26) {

                                          require JSDoc comments (require-jsdoc)

                                          JSDoc is a JavaScript API documentation generator. It uses specially-formatted comments inside of code to generate API documentation automatically. For example, this is what a JSDoc comment looks like for a function:

                                          /**
                                           * Adds two numbers together.
                                           * @param {int} num1 The first number.
                                           * @param {int} num2 The second number.
                                           * @returns {int} The sum of the two numbers.
                                           */
                                          function sum(num1, num2) {
                                              return num1 + num2;
                                          }

                                          Some style guides require JSDoc comments for all functions as a way of explaining function behavior.

                                          Rule Details

                                          This rule requires JSDoc comments for specified nodes. Supported nodes:

                                          • "FunctionDeclaration"
                                          • "ClassDeclaration"
                                          • "MethodDefinition"
                                          • "ArrowFunctionExpression"

                                          Options

                                          This rule has a single object option:

                                          • "require" requires JSDoc comments for the specified nodes

                                          Default option settings are:

                                          {
                                              "require-jsdoc": ["error", {
                                                  "require": {
                                                      "FunctionDeclaration": true,
                                                      "MethodDefinition": false,
                                                      "ClassDeclaration": false,
                                                      "ArrowFunctionExpression": false
                                                  }
                                              }]
                                          }

                                          require

                                          Examples of incorrect code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true } } option:

                                          /*eslint "require-jsdoc": ["error", {
                                              "require": {
                                                  "FunctionDeclaration": true,
                                                  "MethodDefinition": true,
                                                  "ClassDeclaration": true
                                              }
                                          }]*/
                                          
                                          function foo() {
                                              return 10;
                                          }
                                          
                                          var foo = () => {
                                              return 10;
                                          }
                                          
                                          class Test{
                                              getDate(){}
                                          }

                                          Examples of correct code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true } } option:

                                          /*eslint "require-jsdoc": ["error", {
                                              "require": {
                                                  "FunctionDeclaration": true,
                                                  "MethodDefinition": true,
                                                  "ClassDeclaration": true
                                              }
                                          }]*/
                                          
                                          /**
                                           * It returns 10
                                           */
                                          function foo() {
                                              return 10;
                                          }
                                          
                                          /**
                                           * It returns test + 10
                                           * @params {int} test - some number
                                           * @returns {int} sum of test and 10
                                           */
                                          var foo = (test) => {
                                              return test + 10;
                                          }
                                          
                                          /**
                                           * It returns 10
                                           */
                                          var foo = () => {
                                              return 10;
                                          }
                                          
                                          /**
                                           * It returns 10
                                           */
                                          var foo = function() {
                                              return 10;
                                          }
                                          
                                          var array = [1,2,3];
                                          array.filter(function(item) {
                                              return item > 2;
                                          });
                                          
                                          /**
                                           * It returns 10
                                           */
                                          class Test{
                                              /**
                                              * returns the date
                                              */
                                              getDate(){}
                                          }
                                          
                                          setTimeout(() => {}, 10); // since it's an anonymous arrow function

                                          When Not To Use It

                                          If you do not require JSDoc for your functions, then you can leave this rule off.

                                          Related Rules

                                          No magic number: 0.
                                          Open

                                                        case 0:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          No magic number: 10.
                                          Open

                                                        case 10:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @return {Promise<Shiori>} ghost(shiori) instance

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          No magic number: 0.
                                          Open

                                                var _ref9 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee7(namedId, shellname, GhostViewClass) {

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          No magic number: 1.
                                          Open

                                                    while (1) {

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Use the rest parameters instead of 'arguments'.
                                          Open

                                                var GhostViewClass = arguments.length <= 1 || arguments[1] === undefined ? this.GhostViewClass : arguments[1];

                                          Suggest using the rest parameters instead of arguments (prefer-rest-params)

                                          There are rest parameters in ES2015. We can use that feature for variadic functions instead of the arguments variable.

                                          arguments does not have methods of Array.prototype, so it's a bit of an inconvenience.

                                          Rule Details

                                          This rule is aimed to flag usage of arguments variables.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          function foo() {
                                              console.log(arguments);
                                          }
                                          
                                          function foo(action) {
                                              var args = Array.prototype.slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }
                                          
                                          function foo(action) {
                                              var args = [].slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }

                                          Examples of correct code for this rule:

                                          function foo(...args) {
                                              console.log(args);
                                          }
                                          
                                          function foo(action, ...args) {
                                              action.apply(null, args); // or `action(...args)`, related to the `prefer-spread` rule.
                                          }
                                          
                                          // Note: the implicit arguments can be overwritten.
                                          function foo(arguments) {
                                              console.log(arguments); // This is the first argument.
                                          }
                                          function foo() {
                                              var arguments = 0;
                                              console.log(arguments); // This is a local variable.
                                          }

                                          When Not To Use It

                                          This rule should not be used in ES3/5 environments.

                                          In ES2015 (ES6) or later, if you don't want to be notified about arguments variables, then it's safe to disable this rule.

                                          Related Rules

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @return {Promise<Balloon>} balloon instance

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Unexpected var, use let or const instead.
                                          Open

                                                var _ref11 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee9(balloonname, GhostViewClass) {

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          No magic number: 0.
                                          Open

                                                var _ref12 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee10(balloonname) {

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * install named

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          No magic number: 1.
                                          Open

                                                    while (1) {

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          No magic number: 1.
                                          Open

                                                    while (1) {

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          No magic number: 0.
                                          Open

                                                          nar = void 0;

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Unexpected space before function parentheses.
                                          Open

                                                          install_results.forEach(function (install_result) {

                                          Require or disallow a space before function parenthesis (space-before-function-paren)

                                          When formatting a function, whitespace is allowed between the function name or function keyword and the opening paren. Named functions also require a space between the function keyword and the function name, but anonymous functions require no whitespace. For example:

                                          function withoutSpace(x) {
                                              // ...
                                          }
                                          
                                          function withSpace (x) {
                                              // ...
                                          }
                                          
                                          var anonymousWithoutSpace = function() {};
                                          
                                          var anonymousWithSpace = function () {};

                                          Style guides may require a space after the function keyword for anonymous functions, while others specify no whitespace. Similarly, the space after a function name may or may not be required.

                                          Rule Details

                                          This rule aims to enforce consistent spacing before function parentheses and as such, will warn whenever whitespace doesn't match the preferences specified.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "space-before-function-paren": ["error", "always"],
                                              // or
                                              "space-before-function-paren": ["error", {
                                                  "anonymous": "always",
                                                  "named": "always",
                                                  "asyncArrow": "ignore"
                                              }],
                                          }
                                          • always (default) requires a space followed by the ( of arguments.
                                          • never disallows any space followed by the ( of arguments.

                                          The string option does not check async arrow function expressions for backward compatibility.

                                          You can also use a separate option for each type of function. Each of the following options can be set to "always", "never", or "ignore". Default is "always" basically.

                                          • anonymous is for anonymous function expressions (e.g. function () {}).
                                          • named is for named function expressions (e.g. function foo () {}).
                                          • asyncArrow is for async arrow function expressions (e.g. async () => {}). asyncArrow is set to "ignore" by default for backwards compatibility.

                                          "always"

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

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

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

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          "never"

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

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

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

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          {"anonymous": "always", "named": "never", "asyncArrow": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async(a) => await a

                                          Examples of correct code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async (a) => await a

                                          {"anonymous": "never", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          {"anonymous": "ignore", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with the consistency of spacing before function parenthesis.

                                          Related Rules

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                              /**

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          No magic number: 39.
                                          Open

                                                        case 39:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Use the rest parameters instead of 'arguments'.
                                          Open

                                                  return _ref13.apply(this, arguments);

                                          Suggest using the rest parameters instead of arguments (prefer-rest-params)

                                          There are rest parameters in ES2015. We can use that feature for variadic functions instead of the arguments variable.

                                          arguments does not have methods of Array.prototype, so it's a bit of an inconvenience.

                                          Rule Details

                                          This rule is aimed to flag usage of arguments variables.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          function foo() {
                                              console.log(arguments);
                                          }
                                          
                                          function foo(action) {
                                              var args = Array.prototype.slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }
                                          
                                          function foo(action) {
                                              var args = [].slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }

                                          Examples of correct code for this rule:

                                          function foo(...args) {
                                              console.log(args);
                                          }
                                          
                                          function foo(action, ...args) {
                                              action.apply(null, args); // or `action(...args)`, related to the `prefer-spread` rule.
                                          }
                                          
                                          // Note: the implicit arguments can be overwritten.
                                          function foo(arguments) {
                                              console.log(arguments); // This is the first argument.
                                          }
                                          function foo() {
                                              var arguments = 0;
                                              console.log(arguments); // This is a local variable.
                                          }

                                          When Not To Use It

                                          This rule should not be used in ES3/5 environments.

                                          In ES2015 (ES6) or later, if you don't want to be notified about arguments variables, then it's safe to disable this rule.

                                          Related Rules

                                          Missing JSDoc @returns for function.
                                          Open

                                              /**

                                          enforce valid JSDoc comments (valid-jsdoc)

                                          JSDoc generates application programming interface (API) documentation from specially-formatted comments in JavaScript code. For example, this is a JSDoc comment for a function:

                                          /**
                                           * Add two numbers.
                                           * @param {number} num1 The first number.
                                           * @param {number} num2 The second number.
                                           * @returns {number} The sum of the two numbers.
                                           */
                                          function add(num1, num2) {
                                              return num1 + num2;
                                          }

                                          If comments are invalid because of typing mistakes, then documentation will be incomplete.

                                          If comments are inconsistent because they are not updated when function definitions are modified, then readers might become confused.

                                          Rule Details

                                          This rule enforces valid and consistent JSDoc comments. It reports any of the following problems:

                                          • missing parameter tag: @arg, @argument, or @param
                                          • inconsistent order of parameter names in a comment compared to the function or method
                                          • missing return tag: @return or @returns
                                          • missing parameter or return type
                                          • missing parameter or return description
                                          • syntax error

                                          This rule does not report missing JSDoc comments for classes, functions, or methods.

                                          Note: This rule does not support all of the Google Closure documentation tool's use cases. As such, some code such as (/**number*/ n => n * 2); will be flagged as missing appropriate function JSDoc comments even though /**number*/ is intended to be a type hint and not a documentation block for the function. We don't recommend using this rule if you use type hints in this way.

                                          Examples of incorrect code for this rule:

                                          /*eslint valid-jsdoc: "error"*/
                                          
                                          // expected @param tag for parameter num1 but found num instead
                                          // missing @param tag for parameter num2
                                          // missing return type
                                          /**
                                           * Add two numbers.
                                           * @param {number} num The first number.
                                           * @returns The sum of the two numbers.
                                           */
                                          function add(num1, num2) {
                                              return num1 + num2;
                                          }
                                          
                                          // missing brace
                                          // missing @returns tag
                                          /**
                                           * @param {string name Whom to greet.
                                           */
                                          function greet(name) {
                                              console.log("Hello " + name);
                                          }
                                          
                                          // missing parameter type for num1
                                          // missing parameter description for num2
                                          /**
                                           * Represents a sum.
                                           * @constructor
                                           * @param num1 The first number.
                                           * @param {number} num2
                                           */
                                          function sum(num1, num2) {
                                              this.num1 = num1;
                                              this.num2 = num2;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint valid-jsdoc: "error"*/
                                          /*eslint-env es6*/
                                          
                                          /**
                                           * Add two numbers.
                                           * @param {number} num1 The first number.
                                           * @param {number} num2 The second number.
                                           * @returns {number} The sum of the two numbers.
                                           */
                                          function add(num1, num2) {
                                              return num1 + num2;
                                          }
                                          
                                          // default options allow missing function description
                                          // return type `void` means the function has no `return` statement
                                          /**
                                           * @param {string} name Whom to greet.
                                           * @returns {void}
                                           */
                                          function greet(name) {
                                              console.log("Hello " + name);
                                          }
                                          
                                          // @constructor tag allows missing @returns tag
                                          /**
                                           * Represents a sum.
                                           * @constructor
                                           * @param {number} num1 The first number.
                                           * @param {number} num2 The second number.
                                           */
                                          function sum(num1, num2) {
                                              this.num1 = num1;
                                              this.num2 = num2;
                                          }
                                          
                                          // class constructor allows missing @returns tag
                                          /**
                                           * Represents a sum.
                                           */
                                          class Sum {
                                              /**
                                               * @param {number} num1 The first number.
                                               * @param {number} num2 The second number.
                                               */
                                              constructor(num1, num2) {
                                                  this.num1 = num1;
                                                  this.num2 = num2;
                                              }
                                          }
                                          
                                          // @abstract tag allows @returns tag without `return` statement
                                          class Widget {
                                              /**
                                              * When the state changes, does it affect the rendered appearance?
                                              * @abstract
                                              * @param {Object} state The new state of the widget.
                                              * @returns {boolean} Is current appearance inconsistent with new state?
                                              */
                                              mustRender (state) {
                                                  throw new Error("Widget subclass did not implement mustRender");
                                              }
                                          }
                                          
                                          // @override tag allows missing @param and @returns tags
                                          class WonderfulWidget extends Widget {
                                              /**
                                               * @override
                                               */
                                              mustRender (state) {
                                                  return state !== this.state; // shallow comparison
                                              }
                                          }

                                          Options

                                          This rule has an object option:

                                          • "prefer" enforces consistent documentation tags specified by an object whose properties mean instead of key use value (for example, "return": "returns" means instead of @return use @returns)
                                          • "preferType" enforces consistent type strings specified by an object whose properties mean instead of key use value (for example, "object": "Object" means instead of object use Object)
                                          • "requireReturn" requires a return tag:
                                            • true (default) even if the function or method does not have a return statement (this option value does not apply to constructors)
                                            • false if and only if the function or method has a return statement (this option value does apply to constructors)
                                          • "requireReturnType": false allows missing type in return tags
                                          • "matchDescription" specifies (as a string) a regular expression to match the description in each JSDoc comment (for example, ".+" requires a description; this option does not apply to descriptions in parameter or return tags)
                                          • "requireParamDescription": false allows missing description in parameter tags
                                          • "requireReturnDescription": false allows missing description in return tags

                                          prefer

                                          Examples of additional incorrect code for this rule with sample "prefer": { "arg": "param", "argument": "param", "class": "constructor", "return": "returns", "virtual": "abstract" } options:

                                          /*eslint valid-jsdoc: ["error", { "prefer": { "arg": "param", "argument": "param", "class": "constructor", "return": "returns", "virtual": "abstract" } }]*/
                                          /*eslint-env es6*/
                                          
                                          /**
                                           * Add two numbers.
                                           * @arg {int} num1 The first number.
                                           * @arg {int} num2 The second number.
                                           * @return {int} The sum of the two numbers.
                                           */
                                          function add(num1, num2) {
                                              return num1 + num2;
                                          }
                                          
                                          /**
                                           * Represents a sum.
                                           * @class
                                           * @argument {number} num1 The first number.
                                           * @argument {number} num2 The second number.
                                           */
                                          function sum(num1, num2) {
                                              this.num1 = num1;
                                              this.num2 = num2;
                                          }
                                          
                                          class Widget {
                                              /**
                                               * When the state changes, does it affect the rendered appearance?
                                               * @virtual
                                               * @argument {Object} state The new state of the widget.
                                               * @return {boolean} Is current appearance inconsistent with new state?
                                               */
                                              mustRender (state) {
                                                  throw new Error("Widget subclass did not implement mustRender");
                                              }
                                          }

                                          preferType

                                          Examples of additional incorrect code for this rule with sample "preferType": { "Boolean": "boolean", "Number": "number", "object": "Object", "String": "string" } options:

                                          /*eslint valid-jsdoc: ["error", { "preferType": { "Boolean": "boolean", "Number": "number", "object": "Object", "String": "string" } }]*/
                                          /*eslint-env es6*/
                                          
                                          /**
                                           * Add two numbers.
                                           * @param {Number} num1 The first number.
                                           * @param {Number} num2 The second number.
                                           * @returns {Number} The sum of the two numbers.
                                           */
                                          function add(num1, num2) {
                                              return num1 + num2;
                                          }
                                          
                                          /**
                                           * Output a greeting as a side effect.
                                           * @param {String} name Whom to greet.
                                           * @returns {void}
                                           */
                                          function greet(name) {
                                              console.log("Hello " + name);
                                          }
                                          
                                          class Widget {
                                              /**
                                               * When the state changes, does it affect the rendered appearance?
                                               * @abstract
                                               * @param {object} state The new state of the widget.
                                               * @returns {Boolean} Is current appearance inconsistent with new state?
                                               */
                                              mustRender (state) {
                                                  throw new Error("Widget subclass did not implement mustRender");
                                              }
                                          }

                                          requireReturn

                                          Examples of additional incorrect code for this rule with the "requireReturn": false option:

                                          /*eslint valid-jsdoc: ["error", { "requireReturn": false }]*/
                                          
                                          // unexpected @returns tag because function has no `return` statement
                                          /**
                                           * @param {string} name Whom to greet.
                                           * @returns {string} The greeting.
                                           */
                                          function greet(name) {
                                              console.log("Hello " + name);
                                          }
                                          
                                          // add @abstract tag to allow @returns tag without `return` statement
                                          class Widget {
                                              /**
                                               * When the state changes, does it affect the rendered appearance?
                                               * @param {Object} state The new state of the widget.
                                               * @returns {boolean} Is current appearance inconsistent with new state?
                                               */
                                              mustRender (state) {
                                                  throw new Error("Widget subclass did not implement mustRender");
                                              }
                                          }

                                          Example of additional correct code for this rule with the "requireReturn": false option:

                                          /*eslint valid-jsdoc: ["error", { "requireReturn": false }]*/
                                          
                                          /**
                                           * @param {string} name Whom to greet.
                                           */
                                          function greet(name) {
                                              console.log("Hello " + name);
                                          }

                                          requireReturnType

                                          Example of additional correct code for this rule with the "requireReturnType": false option:

                                          /*eslint valid-jsdoc: ["error", { "requireReturnType": false }]*/
                                          
                                          /**
                                           * Add two numbers.
                                           * @param {number} num1 The first number.
                                           * @param {number} num2 The second number.
                                           * @returns The sum of the two numbers.
                                           */
                                          function add(num1, num2) {
                                              return num1 + num2;
                                          }

                                          matchDescription

                                          Example of additional incorrect code for this rule with a sample "matchDescription": ".+" option:

                                          /*eslint valid-jsdoc: ["error", { "matchDescription": ".+" }]*/
                                          
                                          // missing function description
                                          /**
                                           * @param {string} name Whom to greet.
                                           * @returns {void}
                                           */
                                          function greet(name) {
                                              console.log("Hello " + name);
                                          }

                                          requireParamDescription

                                          Example of additional correct code for this rule with the "requireParamDescription": false option:

                                          /*eslint valid-jsdoc: ["error", { "requireParamDescription": false }]*/
                                          
                                          /**
                                           * Add two numbers.
                                           * @param {int} num1
                                           * @param {int} num2
                                           * @returns {int} The sum of the two numbers.
                                           */
                                          function add(num1, num2) {
                                              return num1 + num2;
                                          }

                                          requireReturnDescription

                                          Example of additional correct code for this rule with the "requireReturnDescription": false option:

                                          /*eslint valid-jsdoc: ["error", { "requireReturnDescription": false }]*/
                                          
                                          /**
                                           * Add two numbers.
                                           * @param {number} num1 The first number.
                                           * @param {number} num2 The second number.
                                           * @returns {number}
                                           */
                                          function add(num1, num2) {
                                              return num1 + num2;
                                          }

                                          When Not To Use It

                                          If you aren't using JSDoc, then you can safely turn this rule off.

                                          Further Reading

                                          Related Rules

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @type {cuttlebone}

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Missing JSDoc comment.
                                          Open

                                                function _get_balloon_directory(_x30) {

                                          require JSDoc comments (require-jsdoc)

                                          JSDoc is a JavaScript API documentation generator. It uses specially-formatted comments inside of code to generate API documentation automatically. For example, this is what a JSDoc comment looks like for a function:

                                          /**
                                           * Adds two numbers together.
                                           * @param {int} num1 The first number.
                                           * @param {int} num2 The second number.
                                           * @returns {int} The sum of the two numbers.
                                           */
                                          function sum(num1, num2) {
                                              return num1 + num2;
                                          }

                                          Some style guides require JSDoc comments for all functions as a way of explaining function behavior.

                                          Rule Details

                                          This rule requires JSDoc comments for specified nodes. Supported nodes:

                                          • "FunctionDeclaration"
                                          • "ClassDeclaration"
                                          • "MethodDefinition"
                                          • "ArrowFunctionExpression"

                                          Options

                                          This rule has a single object option:

                                          • "require" requires JSDoc comments for the specified nodes

                                          Default option settings are:

                                          {
                                              "require-jsdoc": ["error", {
                                                  "require": {
                                                      "FunctionDeclaration": true,
                                                      "MethodDefinition": false,
                                                      "ClassDeclaration": false,
                                                      "ArrowFunctionExpression": false
                                                  }
                                              }]
                                          }

                                          require

                                          Examples of incorrect code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true } } option:

                                          /*eslint "require-jsdoc": ["error", {
                                              "require": {
                                                  "FunctionDeclaration": true,
                                                  "MethodDefinition": true,
                                                  "ClassDeclaration": true
                                              }
                                          }]*/
                                          
                                          function foo() {
                                              return 10;
                                          }
                                          
                                          var foo = () => {
                                              return 10;
                                          }
                                          
                                          class Test{
                                              getDate(){}
                                          }

                                          Examples of correct code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true } } option:

                                          /*eslint "require-jsdoc": ["error", {
                                              "require": {
                                                  "FunctionDeclaration": true,
                                                  "MethodDefinition": true,
                                                  "ClassDeclaration": true
                                              }
                                          }]*/
                                          
                                          /**
                                           * It returns 10
                                           */
                                          function foo() {
                                              return 10;
                                          }
                                          
                                          /**
                                           * It returns test + 10
                                           * @params {int} test - some number
                                           * @returns {int} sum of test and 10
                                           */
                                          var foo = (test) => {
                                              return test + 10;
                                          }
                                          
                                          /**
                                           * It returns 10
                                           */
                                          var foo = () => {
                                              return 10;
                                          }
                                          
                                          /**
                                           * It returns 10
                                           */
                                          var foo = function() {
                                              return 10;
                                          }
                                          
                                          var array = [1,2,3];
                                          array.filter(function(item) {
                                              return item > 2;
                                          });
                                          
                                          /**
                                           * It returns 10
                                           */
                                          class Test{
                                              /**
                                              * returns the date
                                              */
                                              getDate(){}
                                          }
                                          
                                          setTimeout(() => {}, 10); // since it's an anonymous arrow function

                                          When Not To Use It

                                          If you do not require JSDoc for your functions, then you can leave this rule off.

                                          Related Rules

                                          No magic number: 0.
                                          Open

                                                          ghost_result = void 0, balloon_result = void 0;

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          No magic number: 13.
                                          Open

                                                        case 13:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          No magic number: 39.
                                          Open

                                                  }, _callee11, this, [[3, 39]]);

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Unexpected var, use let or const instead.
                                          Open

                                                var balloon = new GhostViewClass.Balloon(directory.asArrayBuffer());

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {NamedKernel | string} [from] who handled the target? kernel or named id

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Unexpected function expression.
                                          Open

                                                          install_results.forEach(function (install_result) {

                                          Suggest using arrow functions as callbacks. (prefer-arrow-callback)

                                          Arrow functions are suited to callbacks, because:

                                          • this keywords in arrow functions bind to the upper scope's.
                                          • The notation of the arrow function is shorter than function expression's.

                                          Rule Details

                                          This rule is aimed to flag usage of function expressions in an argument list.

                                          The following patterns are considered problems:

                                          /*eslint prefer-arrow-callback: "error"*/
                                          
                                          foo(function(a) { return a; });
                                          foo(function() { return this.a; }.bind(this));

                                          The following patterns are not considered problems:

                                          /*eslint prefer-arrow-callback: "error"*/
                                          /*eslint-env es6*/
                                          
                                          foo(a => a);
                                          foo(function*() { yield; });
                                          
                                          // this is not a callback.
                                          var foo = function foo(a) { return a; };
                                          
                                          // using `this` without `.bind(this)`.
                                          foo(function() { return this.a; });
                                          
                                          // recursively.
                                          foo(function bar(n) { return n && n + bar(n - 1); });

                                          Options

                                          This rule takes one optional argument, an object which is an options object.

                                          allowNamedFunctions

                                          This is a boolean option and it is false by default. When set to true, the rule doesn't warn on named functions used as callbacks.

                                          Examples of correct code for the { "allowNamedFunctions": true } option:

                                          /*eslint prefer-arrow-callback: ["error", { "allowNamedFunctions": true }]*/
                                          
                                          foo(function bar() {});

                                          allowUnboundThis

                                          This is a boolean option and it is true by default. When set to false, this option allows the use of this without restriction and checks for dynamically assigned this values such as when using Array.prototype.map with a context argument. Normally, the rule will flag the use of this whenever a function does not use bind() to specify the value of this constantly.

                                          Examples of incorrect code for the { "allowUnboundThis": false } option:

                                          /*eslint prefer-arrow-callback: ["error", { "allowUnboundThis": false }]*/
                                          /*eslint-env es6*/
                                          
                                          foo(function() { this.a; });
                                          
                                          foo(function() { (() => this); });
                                          
                                          someArray.map(function (itm) { return this.doSomething(itm); }, someObject);

                                          When Not To Use It

                                          This rule should not be used in ES3/5 environments.

                                          In ES2015 (ES6) or later, if you don't want to be notified about function expressions in an argument list, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          No magic number: 36.
                                          Open

                                                        case 36:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

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

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

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

                                          Missing JSDoc comment.
                                          Open

                                                function installNar(_x32, _x33) {

                                          require JSDoc comments (require-jsdoc)

                                          JSDoc is a JavaScript API documentation generator. It uses specially-formatted comments inside of code to generate API documentation automatically. For example, this is what a JSDoc comment looks like for a function:

                                          /**
                                           * Adds two numbers together.
                                           * @param {int} num1 The first number.
                                           * @param {int} num2 The second number.
                                           * @returns {int} The sum of the two numbers.
                                           */
                                          function sum(num1, num2) {
                                              return num1 + num2;
                                          }

                                          Some style guides require JSDoc comments for all functions as a way of explaining function behavior.

                                          Rule Details

                                          This rule requires JSDoc comments for specified nodes. Supported nodes:

                                          • "FunctionDeclaration"
                                          • "ClassDeclaration"
                                          • "MethodDefinition"
                                          • "ArrowFunctionExpression"

                                          Options

                                          This rule has a single object option:

                                          • "require" requires JSDoc comments for the specified nodes

                                          Default option settings are:

                                          {
                                              "require-jsdoc": ["error", {
                                                  "require": {
                                                      "FunctionDeclaration": true,
                                                      "MethodDefinition": false,
                                                      "ClassDeclaration": false,
                                                      "ArrowFunctionExpression": false
                                                  }
                                              }]
                                          }

                                          require

                                          Examples of incorrect code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true } } option:

                                          /*eslint "require-jsdoc": ["error", {
                                              "require": {
                                                  "FunctionDeclaration": true,
                                                  "MethodDefinition": true,
                                                  "ClassDeclaration": true
                                              }
                                          }]*/
                                          
                                          function foo() {
                                              return 10;
                                          }
                                          
                                          var foo = () => {
                                              return 10;
                                          }
                                          
                                          class Test{
                                              getDate(){}
                                          }

                                          Examples of correct code for this rule with the { "require": { "FunctionDeclaration": true, "MethodDefinition": true, "ClassDeclaration": true, "ArrowFunctionExpression": true } } option:

                                          /*eslint "require-jsdoc": ["error", {
                                              "require": {
                                                  "FunctionDeclaration": true,
                                                  "MethodDefinition": true,
                                                  "ClassDeclaration": true
                                              }
                                          }]*/
                                          
                                          /**
                                           * It returns 10
                                           */
                                          function foo() {
                                              return 10;
                                          }
                                          
                                          /**
                                           * It returns test + 10
                                           * @params {int} test - some number
                                           * @returns {int} sum of test and 10
                                           */
                                          var foo = (test) => {
                                              return test + 10;
                                          }
                                          
                                          /**
                                           * It returns 10
                                           */
                                          var foo = () => {
                                              return 10;
                                          }
                                          
                                          /**
                                           * It returns 10
                                           */
                                          var foo = function() {
                                              return 10;
                                          }
                                          
                                          var array = [1,2,3];
                                          array.filter(function(item) {
                                              return item > 2;
                                          });
                                          
                                          /**
                                           * It returns 10
                                           */
                                          class Test{
                                              /**
                                              * returns the date
                                              */
                                              getDate(){}
                                          }
                                          
                                          setTimeout(() => {}, 10); // since it's an anonymous arrow function

                                          When Not To Use It

                                          If you do not require JSDoc for your functions, then you can leave this rule off.

                                          Related Rules

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                              /**

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Bad line breaking before and after ','.
                                          Open

                                              ,

                                          Comma style (comma-style)

                                          The Comma Style rule enforces styles for comma-separated lists. There are two comma styles primarily used in JavaScript:

                                          • The standard style, in which commas are placed at the end of the current line
                                          • Comma First style, in which commas are placed at the start of the next line

                                          One of the justifications for using Comma First style is that it can help track missing and trailing commas. These are problematic because missing commas in variable declarations can lead to the leakage of global variables and trailing commas can lead to errors in older versions of IE.

                                          Rule Details

                                          This rule enforce consistent comma style in array literals, object literals, and variable declarations.

                                          This rule does not apply in either of the following cases:

                                          • comma preceded and followed by linebreak (lone comma)
                                          • single-line array literals, object literals, and variable declarations

                                          Options

                                          This rule has a string option:

                                          • "last" (default) requires a comma after and on the same line as an array element, object property, or variable declaration
                                          • "first" requires a comma before and on the same line as an array element, object property, or variable declaration

                                          This rule also accepts an additional exceptions object:

                                          • "exceptions" has properties whose names correspond to node types in the abstract syntax tree (AST) of JavaScript code:

                                            • "ArrayExpression": true ignores comma style in array literals
                                            • "ArrayPattern": true ignores comma style in array patterns of destructuring
                                            • "ArrowFunctionExpression": true ignores comma style in the parameters of arrow function expressions
                                            • "CallExpression": true ignores comma style in the arguments of function calls
                                            • "FunctionDeclaration": true ignores comma style in the parameters of function declarations
                                            • "FunctionExpression": true ignores comma style in the parameters of function expressions
                                            • "ImportDeclaration": true ignores comma style in the specifiers of import declarations
                                            • "ObjectExpression": true ignores comma style in object literals
                                            • "ObjectPattern": true ignores comma style in object patterns of destructuring
                                            • "VariableDeclaration": true ignores comma style in variable declarations

                                          A way to determine the node types as defined by ESTree is to use the online demo.

                                          last

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

                                          /*eslint comma-style: ["error", "last"]*/
                                          
                                          var foo = 1
                                          ,
                                          bar = 2;
                                          
                                          var foo = 1
                                            , bar = 2;
                                          
                                          var foo = ["apples"
                                                     , "oranges"];
                                          
                                          function bar() {
                                              return {
                                                  "a": 1
                                                  ,"b:": 2
                                              };
                                          }

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

                                          /*eslint comma-style: ["error", "last"]*/
                                          
                                          var foo = 1, bar = 2;
                                          
                                          var foo = 1,
                                              bar = 2;
                                          
                                          var foo = ["apples",
                                                     "oranges"];
                                          
                                          function bar() {
                                              return {
                                                  "a": 1,
                                                  "b:": 2
                                              };
                                          }

                                          first

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

                                          /*eslint comma-style: ["error", "first"]*/
                                          
                                          var foo = 1,
                                              bar = 2;
                                          
                                          var foo = ["apples",
                                                     "oranges"];
                                          
                                          function bar() {
                                              return {
                                                  "a": 1,
                                                  "b:": 2
                                              };
                                          }

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

                                          /*eslint comma-style: ["error", "first"]*/
                                          
                                          var foo = 1, bar = 2;
                                          
                                          var foo = 1
                                              ,bar = 2;
                                          
                                          var foo = ["apples"
                                                    ,"oranges"];
                                          
                                          function bar() {
                                              return {
                                                  "a": 1
                                                  ,"b:": 2
                                              };
                                          }

                                          exceptions

                                          An example use case is to enforce comma style only in var statements.

                                          Examples of incorrect code for this rule with sample "first", { "exceptions": { … } } options:

                                          /*eslint comma-style: ["error", "first", { "exceptions": { "ArrayExpression": true, "ObjectExpression": true } }]*/
                                          
                                          var o = {},
                                              a = [];

                                          Examples of correct code for this rule with sample "first", { "exceptions": { … } } options:

                                          /*eslint comma-style: ["error", "first", { "exceptions": { "ArrayExpression": true, "ObjectExpression": true } }]*/
                                          
                                          var o = {fst:1,
                                                   snd: [1,
                                                         2]}
                                            , a = [];

                                          When Not To Use It

                                          This rule can safely be turned off if your project does not care about enforcing a consistent comma style.

                                          Further Reading

                                          For more information on the Comma First style:

                                          Related Rules

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * デフォルトのゴーストのビュークラス

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                              /**

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @type {cuttlebone}

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

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

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

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

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

                                          Examples of correct code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          No magic number: 3.
                                          Open

                                                        case 3:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

                                          Examples of incorrect code for the { "enforceConst": true } option:

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

                                          Examples of incorrect code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Source: http://eslint.org/docs/rules/

                                          No magic number: 16.
                                          Open

                                                        case 16:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

                                          Examples of incorrect code for the { "enforceConst": true } option:

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

                                          Examples of incorrect code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Source: http://eslint.org/docs/rules/

                                          Use the rest parameters instead of 'arguments'.
                                          Open

                                                var GhostViewClass = arguments.length <= 1 || arguments[1] === undefined ? this.GhostViewClass : arguments[1];

                                          Suggest using the rest parameters instead of arguments (prefer-rest-params)

                                          There are rest parameters in ES2015. We can use that feature for variadic functions instead of the arguments variable.

                                          arguments does not have methods of Array.prototype, so it's a bit of an inconvenience.

                                          Rule Details

                                          This rule is aimed to flag usage of arguments variables.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          function foo() {
                                              console.log(arguments);
                                          }
                                          
                                          function foo(action) {
                                              var args = Array.prototype.slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }
                                          
                                          function foo(action) {
                                              var args = [].slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }

                                          Examples of correct code for this rule:

                                          function foo(...args) {
                                              console.log(args);
                                          }
                                          
                                          function foo(action, ...args) {
                                              action.apply(null, args); // or `action(...args)`, related to the `prefer-spread` rule.
                                          }
                                          
                                          // Note: the implicit arguments can be overwritten.
                                          function foo(arguments) {
                                              console.log(arguments); // This is the first argument.
                                          }
                                          function foo() {
                                              var arguments = 0;
                                              console.log(arguments); // This is a local variable.
                                          }

                                          When Not To Use It

                                          This rule should not be used in ES3/5 environments.

                                          In ES2015 (ES6) or later, if you don't want to be notified about arguments variables, then it's safe to disable this rule.

                                          Related Rules

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * ゴーストのビュークラス

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

                                          Examples of incorrect code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

                                          Examples of correct code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

                                          Examples of incorrect code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

                                          Examples of correct code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Wrap an immediate function invocation in parentheses.
                                          Open

                                              value: function () {

                                          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/

                                          No magic number: 0.
                                          Open

                                                var _ref13 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee11(target) {

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

                                          Examples of incorrect code for the { "enforceConst": true } option:

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

                                          Examples of incorrect code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Source: http://eslint.org/docs/rules/

                                          Use the rest parameters instead of 'arguments'.
                                          Open

                                                  var from = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];

                                          Suggest using the rest parameters instead of arguments (prefer-rest-params)

                                          There are rest parameters in ES2015. We can use that feature for variadic functions instead of the arguments variable.

                                          arguments does not have methods of Array.prototype, so it's a bit of an inconvenience.

                                          Rule Details

                                          This rule is aimed to flag usage of arguments variables.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          function foo() {
                                              console.log(arguments);
                                          }
                                          
                                          function foo(action) {
                                              var args = Array.prototype.slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }
                                          
                                          function foo(action) {
                                              var args = [].slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }

                                          Examples of correct code for this rule:

                                          function foo(...args) {
                                              console.log(args);
                                          }
                                          
                                          function foo(action, ...args) {
                                              action.apply(null, args); // or `action(...args)`, related to the `prefer-spread` rule.
                                          }
                                          
                                          // Note: the implicit arguments can be overwritten.
                                          function foo(arguments) {
                                              console.log(arguments); // This is the first argument.
                                          }
                                          function foo() {
                                              var arguments = 0;
                                              console.log(arguments); // This is a local variable.
                                          }

                                          When Not To Use It

                                          This rule should not be used in ES3/5 environments.

                                          In ES2015 (ES6) or later, if you don't want to be notified about arguments variables, then it's safe to disable this rule.

                                          Related Rules

                                          No magic number: 0.
                                          Open

                                                        case 0:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

                                          Examples of incorrect code for the { "enforceConst": true } option:

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

                                          Examples of incorrect code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Source: http://eslint.org/docs/rules/

                                          No magic number: 0.
                                          Open

                                                          dirpath = void 0, sakuraname = void 0;

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

                                          Examples of incorrect code for the { "enforceConst": true } option:

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

                                          Examples of incorrect code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Source: http://eslint.org/docs/rules/

                                          No magic number: 22.
                                          Open

                                                        case 22:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

                                          Examples of incorrect code for the { "enforceConst": true } option:

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

                                          Examples of incorrect code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Source: http://eslint.org/docs/rules/

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * load balloon

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

                                          Examples of incorrect code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

                                          Examples of correct code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

                                          Examples of incorrect code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

                                          Examples of correct code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @type {cuttlebone}

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

                                          Examples of incorrect code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

                                          Examples of correct code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

                                          Examples of incorrect code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

                                          Examples of correct code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @return {Promise}

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

                                          Examples of incorrect code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

                                          Examples of correct code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

                                          Examples of incorrect code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

                                          Examples of correct code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * ゴーストのビュークラス

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

                                          Examples of incorrect code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

                                          Examples of correct code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

                                          Examples of incorrect code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

                                          Examples of correct code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Missing JSDoc @returns for function.
                                          Open

                                              /**

                                          enforce valid JSDoc comments (valid-jsdoc)

                                          JSDoc generates application programming interface (API) documentation from specially-formatted comments in JavaScript code. For example, this is a JSDoc comment for a function:

                                          /**
                                           * Add two numbers.
                                           * @param {number} num1 The first number.
                                           * @param {number} num2 The second number.
                                           * @returns {number} The sum of the two numbers.
                                           */
                                          function add(num1, num2) {
                                              return num1 + num2;
                                          }

                                          If comments are invalid because of typing mistakes, then documentation will be incomplete.

                                          If comments are inconsistent because they are not updated when function definitions are modified, then readers might become confused.

                                          Rule Details

                                          This rule enforces valid and consistent JSDoc comments. It reports any of the following problems:

                                          • missing parameter tag: @arg, @argument, or @param
                                          • inconsistent order of parameter names in a comment compared to the function or method
                                          • missing return tag: @return or @returns
                                          • missing parameter or return type
                                          • missing parameter or return description
                                          • syntax error

                                          This rule does not report missing JSDoc comments for classes, functions, or methods.

                                          Note: This rule does not support all of the Google Closure documentation tool's use cases. As such, some code such as (/**number*/ n => n * 2); will be flagged as missing appropriate function JSDoc comments even though /**number*/ is intended to be a type hint and not a documentation block for the function. We don't recommend using this rule if you use type hints in this way.

                                          Examples of incorrect code for this rule:

                                          /*eslint valid-jsdoc: "error"*/
                                          
                                          // expected @param tag for parameter num1 but found num instead
                                          // missing @param tag for parameter num2
                                          // missing return type
                                          /**
                                           * Add two numbers.
                                           * @param {number} num The first number.
                                           * @returns The sum of the two numbers.
                                           */
                                          function add(num1, num2) {
                                              return num1 + num2;
                                          }
                                          
                                          // missing brace
                                          // missing @returns tag
                                          /**
                                           * @param {string name Whom to greet.
                                           */
                                          function greet(name) {
                                              console.log("Hello " + name);
                                          }
                                          
                                          // missing parameter type for num1
                                          // missing parameter description for num2
                                          /**
                                           * Represents a sum.
                                           * @constructor
                                           * @param num1 The first number.
                                           * @param {number} num2
                                           */
                                          function sum(num1, num2) {
                                              this.num1 = num1;
                                              this.num2 = num2;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint valid-jsdoc: "error"*/
                                          /*eslint-env es6*/
                                          
                                          /**
                                           * Add two numbers.
                                           * @param {number} num1 The first number.
                                           * @param {number} num2 The second number.
                                           * @returns {number} The sum of the two numbers.
                                           */
                                          function add(num1, num2) {
                                              return num1 + num2;
                                          }
                                          
                                          // default options allow missing function description
                                          // return type `void` means the function has no `return` statement
                                          /**
                                           * @param {string} name Whom to greet.
                                           * @returns {void}
                                           */
                                          function greet(name) {
                                              console.log("Hello " + name);
                                          }
                                          
                                          // @constructor tag allows missing @returns tag
                                          /**
                                           * Represents a sum.
                                           * @constructor
                                           * @param {number} num1 The first number.
                                           * @param {number} num2 The second number.
                                           */
                                          function sum(num1, num2) {
                                              this.num1 = num1;
                                              this.num2 = num2;
                                          }
                                          
                                          // class constructor allows missing @returns tag
                                          /**
                                           * Represents a sum.
                                           */
                                          class Sum {
                                              /**
                                               * @param {number} num1 The first number.
                                               * @param {number} num2 The second number.
                                               */
                                              constructor(num1, num2) {
                                                  this.num1 = num1;
                                                  this.num2 = num2;
                                              }
                                          }
                                          
                                          // @abstract tag allows @returns tag without `return` statement
                                          class Widget {
                                              /**
                                              * When the state changes, does it affect the rendered appearance?
                                              * @abstract
                                              * @param {Object} state The new state of the widget.
                                              * @returns {boolean} Is current appearance inconsistent with new state?
                                              */
                                              mustRender (state) {
                                                  throw new Error("Widget subclass did not implement mustRender");
                                              }
                                          }
                                          
                                          // @override tag allows missing @param and @returns tags
                                          class WonderfulWidget extends Widget {
                                              /**
                                               * @override
                                               */
                                              mustRender (state) {
                                                  return state !== this.state; // shallow comparison
                                              }
                                          }

                                          Options

                                          This rule has an object option:

                                          • "prefer" enforces consistent documentation tags specified by an object whose properties mean instead of key use value (for example, "return": "returns" means instead of @return use @returns)
                                          • "preferType" enforces consistent type strings specified by an object whose properties mean instead of key use value (for example, "object": "Object" means instead of object use Object)
                                          • "requireReturn" requires a return tag:
                                            • true (default) even if the function or method does not have a return statement (this option value does not apply to constructors)
                                            • false if and only if the function or method has a return statement (this option value does apply to constructors)
                                          • "requireReturnType": false allows missing type in return tags
                                          • "matchDescription" specifies (as a string) a regular expression to match the description in each JSDoc comment (for example, ".+" requires a description; this option does not apply to descriptions in parameter or return tags)
                                          • "requireParamDescription": false allows missing description in parameter tags
                                          • "requireReturnDescription": false allows missing description in return tags

                                          prefer

                                          Examples of additional incorrect code for this rule with sample "prefer": { "arg": "param", "argument": "param", "class": "constructor", "return": "returns", "virtual": "abstract" } options:

                                          /*eslint valid-jsdoc: ["error", { "prefer": { "arg": "param", "argument": "param", "class": "constructor", "return": "returns", "virtual": "abstract" } }]*/
                                          /*eslint-env es6*/
                                          
                                          /**
                                           * Add two numbers.
                                           * @arg {int} num1 The first number.
                                           * @arg {int} num2 The second number.
                                           * @return {int} The sum of the two numbers.
                                           */
                                          function add(num1, num2) {
                                              return num1 + num2;
                                          }
                                          
                                          /**
                                           * Represents a sum.
                                           * @class
                                           * @argument {number} num1 The first number.
                                           * @argument {number} num2 The second number.
                                           */
                                          function sum(num1, num2) {
                                              this.num1 = num1;
                                              this.num2 = num2;
                                          }
                                          
                                          class Widget {
                                              /**
                                               * When the state changes, does it affect the rendered appearance?
                                               * @virtual
                                               * @argument {Object} state The new state of the widget.
                                               * @return {boolean} Is current appearance inconsistent with new state?
                                               */
                                              mustRender (state) {
                                                  throw new Error("Widget subclass did not implement mustRender");
                                              }
                                          }

                                          preferType

                                          Examples of additional incorrect code for this rule with sample "preferType": { "Boolean": "boolean", "Number": "number", "object": "Object", "String": "string" } options:

                                          /*eslint valid-jsdoc: ["error", { "preferType": { "Boolean": "boolean", "Number": "number", "object": "Object", "String": "string" } }]*/
                                          /*eslint-env es6*/
                                          
                                          /**
                                           * Add two numbers.
                                           * @param {Number} num1 The first number.
                                           * @param {Number} num2 The second number.
                                           * @returns {Number} The sum of the two numbers.
                                           */
                                          function add(num1, num2) {
                                              return num1 + num2;
                                          }
                                          
                                          /**
                                           * Output a greeting as a side effect.
                                           * @param {String} name Whom to greet.
                                           * @returns {void}
                                           */
                                          function greet(name) {
                                              console.log("Hello " + name);
                                          }
                                          
                                          class Widget {
                                              /**
                                               * When the state changes, does it affect the rendered appearance?
                                               * @abstract
                                               * @param {object} state The new state of the widget.
                                               * @returns {Boolean} Is current appearance inconsistent with new state?
                                               */
                                              mustRender (state) {
                                                  throw new Error("Widget subclass did not implement mustRender");
                                              }
                                          }

                                          requireReturn

                                          Examples of additional incorrect code for this rule with the "requireReturn": false option:

                                          /*eslint valid-jsdoc: ["error", { "requireReturn": false }]*/
                                          
                                          // unexpected @returns tag because function has no `return` statement
                                          /**
                                           * @param {string} name Whom to greet.
                                           * @returns {string} The greeting.
                                           */
                                          function greet(name) {
                                              console.log("Hello " + name);
                                          }
                                          
                                          // add @abstract tag to allow @returns tag without `return` statement
                                          class Widget {
                                              /**
                                               * When the state changes, does it affect the rendered appearance?
                                               * @param {Object} state The new state of the widget.
                                               * @returns {boolean} Is current appearance inconsistent with new state?
                                               */
                                              mustRender (state) {
                                                  throw new Error("Widget subclass did not implement mustRender");
                                              }
                                          }

                                          Example of additional correct code for this rule with the "requireReturn": false option:

                                          /*eslint valid-jsdoc: ["error", { "requireReturn": false }]*/
                                          
                                          /**
                                           * @param {string} name Whom to greet.
                                           */
                                          function greet(name) {
                                              console.log("Hello " + name);
                                          }

                                          requireReturnType

                                          Example of additional correct code for this rule with the "requireReturnType": false option:

                                          /*eslint valid-jsdoc: ["error", { "requireReturnType": false }]*/
                                          
                                          /**
                                           * Add two numbers.
                                           * @param {number} num1 The first number.
                                           * @param {number} num2 The second number.
                                           * @returns The sum of the two numbers.
                                           */
                                          function add(num1, num2) {
                                              return num1 + num2;
                                          }

                                          matchDescription

                                          Example of additional incorrect code for this rule with a sample "matchDescription": ".+" option:

                                          /*eslint valid-jsdoc: ["error", { "matchDescription": ".+" }]*/
                                          
                                          // missing function description
                                          /**
                                           * @param {string} name Whom to greet.
                                           * @returns {void}
                                           */
                                          function greet(name) {
                                              console.log("Hello " + name);
                                          }

                                          requireParamDescription

                                          Example of additional correct code for this rule with the "requireParamDescription": false option:

                                          /*eslint valid-jsdoc: ["error", { "requireParamDescription": false }]*/
                                          
                                          /**
                                           * Add two numbers.
                                           * @param {int} num1
                                           * @param {int} num2
                                           * @returns {int} The sum of the two numbers.
                                           */
                                          function add(num1, num2) {
                                              return num1 + num2;
                                          }

                                          requireReturnDescription

                                          Example of additional correct code for this rule with the "requireReturnDescription": false option:

                                          /*eslint valid-jsdoc: ["error", { "requireReturnDescription": false }]*/
                                          
                                          /**
                                           * Add two numbers.
                                           * @param {number} num1 The first number.
                                           * @param {number} num2 The second number.
                                           * @returns {number}
                                           */
                                          function add(num1, num2) {
                                              return num1 + num2;
                                          }

                                          When Not To Use It

                                          If you aren't using JSDoc, then you can safely turn this rule off.

                                          Further Reading

                                          Related Rules

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                              /**

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

                                          Examples of incorrect code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

                                          Examples of correct code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

                                          Examples of incorrect code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

                                          Examples of correct code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          No magic number: 2.
                                          Open

                                                        case 2:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

                                          Examples of incorrect code for the { "enforceConst": true } option:

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

                                          Examples of incorrect code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Source: http://eslint.org/docs/rules/

                                          Unexpected var, use let or const instead.
                                          Open

                                                  var from = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * デフォルトのゴーストのビュークラス

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

                                          Examples of incorrect code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

                                          Examples of correct code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

                                          Examples of incorrect code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

                                          Examples of correct code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Bad line breaking before and after ','.
                                          Open

                                              ,

                                          Comma style (comma-style)

                                          The Comma Style rule enforces styles for comma-separated lists. There are two comma styles primarily used in JavaScript:

                                          • The standard style, in which commas are placed at the end of the current line
                                          • Comma First style, in which commas are placed at the start of the next line

                                          One of the justifications for using Comma First style is that it can help track missing and trailing commas. These are problematic because missing commas in variable declarations can lead to the leakage of global variables and trailing commas can lead to errors in older versions of IE.

                                          Rule Details

                                          This rule enforce consistent comma style in array literals, object literals, and variable declarations.

                                          This rule does not apply in either of the following cases:

                                          • comma preceded and followed by linebreak (lone comma)
                                          • single-line array literals, object literals, and variable declarations

                                          Options

                                          This rule has a string option:

                                          • "last" (default) requires a comma after and on the same line as an array element, object property, or variable declaration
                                          • "first" requires a comma before and on the same line as an array element, object property, or variable declaration

                                          This rule also accepts an additional exceptions object:

                                          • "exceptions" has properties whose names correspond to node types in the abstract syntax tree (AST) of JavaScript code:

                                            • "ArrayExpression": true ignores comma style in array literals
                                            • "ArrayPattern": true ignores comma style in array patterns of destructuring
                                            • "ArrowFunctionExpression": true ignores comma style in the parameters of arrow function expressions
                                            • "CallExpression": true ignores comma style in the arguments of function calls
                                            • "FunctionDeclaration": true ignores comma style in the parameters of function declarations
                                            • "FunctionExpression": true ignores comma style in the parameters of function expressions
                                            • "ImportDeclaration": true ignores comma style in the specifiers of import declarations
                                            • "ObjectExpression": true ignores comma style in object literals
                                            • "ObjectPattern": true ignores comma style in object patterns of destructuring
                                            • "VariableDeclaration": true ignores comma style in variable declarations

                                          A way to determine the node types as defined by ESTree is to use the online demo.

                                          last

                                          Examples of incorrect code for this rule with the default "last" option:

                                          /*eslint comma-style: ["error", "last"]*/
                                          
                                          var foo = 1
                                          ,
                                          bar = 2;
                                          
                                          var foo = 1
                                            , bar = 2;
                                          
                                          var foo = ["apples"
                                                     , "oranges"];
                                          
                                          function bar() {
                                              return {
                                                  "a": 1
                                                  ,"b:": 2
                                              };
                                          }

                                          Examples of correct code for this rule with the default "last" option:

                                          /*eslint comma-style: ["error", "last"]*/
                                          
                                          var foo = 1, bar = 2;
                                          
                                          var foo = 1,
                                              bar = 2;
                                          
                                          var foo = ["apples",
                                                     "oranges"];
                                          
                                          function bar() {
                                              return {
                                                  "a": 1,
                                                  "b:": 2
                                              };
                                          }

                                          first

                                          Examples of incorrect code for this rule with the "first" option:

                                          /*eslint comma-style: ["error", "first"]*/
                                          
                                          var foo = 1,
                                              bar = 2;
                                          
                                          var foo = ["apples",
                                                     "oranges"];
                                          
                                          function bar() {
                                              return {
                                                  "a": 1,
                                                  "b:": 2
                                              };
                                          }

                                          Examples of correct code for this rule with the "first" option:

                                          /*eslint comma-style: ["error", "first"]*/
                                          
                                          var foo = 1, bar = 2;
                                          
                                          var foo = 1
                                              ,bar = 2;
                                          
                                          var foo = ["apples"
                                                    ,"oranges"];
                                          
                                          function bar() {
                                              return {
                                                  "a": 1
                                                  ,"b:": 2
                                              };
                                          }

                                          exceptions

                                          An example use case is to enforce comma style only in var statements.

                                          Examples of incorrect code for this rule with sample "first", { "exceptions": { … } } options:

                                          /*eslint comma-style: ["error", "first", { "exceptions": { "ArrayExpression": true, "ObjectExpression": true } }]*/
                                          
                                          var o = {},
                                              a = [];

                                          Examples of correct code for this rule with sample "first", { "exceptions": { … } } options:

                                          /*eslint comma-style: ["error", "first", { "exceptions": { "ArrayExpression": true, "ObjectExpression": true } }]*/
                                          
                                          var o = {fst:1,
                                                   snd: [1,
                                                         2]}
                                            , a = [];

                                          When Not To Use It

                                          This rule can safely be turned off if your project does not care about enforcing a consistent comma style.

                                          Further Reading

                                          For more information on the Comma First style:

                                          Related Rules

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {cuttlebone} [GhostViewClass] ghost view class

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

                                          Examples of incorrect code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

                                          Examples of correct code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

                                          Examples of incorrect code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

                                          Examples of correct code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Unexpected var, use let or const instead.
                                          Open

                                                var _ref13 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee11(target) {

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          No magic number: 1.
                                          Open

                                                  var from = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

                                          Examples of incorrect code for the { "enforceConst": true } option:

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

                                          Examples of incorrect code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Source: http://eslint.org/docs/rules/

                                          No magic number: 17.
                                          Open

                                                        case 17:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

                                          Examples of incorrect code for the { "enforceConst": true } option:

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

                                          Examples of incorrect code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Source: http://eslint.org/docs/rules/

                                          No magic number: 26.
                                          Open

                                                        case 26:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

                                          Examples of incorrect code for the { "enforceConst": true } option:

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

                                          Examples of incorrect code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Source: http://eslint.org/docs/rules/

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                              /**

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

                                          Examples of incorrect code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

                                          Examples of correct code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

                                          Examples of incorrect code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

                                          Examples of correct code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                              /**

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

                                          Examples of incorrect code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

                                          Examples of correct code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

                                          Examples of incorrect code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

                                          Examples of correct code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {NanikaDirectory} balloon directory contents

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

                                          Examples of incorrect code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

                                          Examples of correct code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

                                          Examples of incorrect code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

                                          Examples of correct code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          No magic number: 10.
                                          Open

                                                        case 10:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

                                          Examples of incorrect code for the { "enforceConst": true } option:

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

                                          Examples of incorrect code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Source: http://eslint.org/docs/rules/

                                          Unexpected var, use let or const instead.
                                          Open

                                                var GhostViewClass = arguments.length <= 1 || arguments[1] === undefined ? this.GhostViewClass : arguments[1];

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          Use the rest parameters instead of 'arguments'.
                                          Open

                                                var GhostViewClass = arguments.length <= 1 || arguments[1] === undefined ? this.GhostViewClass : arguments[1];

                                          Suggest using the rest parameters instead of arguments (prefer-rest-params)

                                          There are rest parameters in ES2015. We can use that feature for variadic functions instead of the arguments variable.

                                          arguments does not have methods of Array.prototype, so it's a bit of an inconvenience.

                                          Rule Details

                                          This rule is aimed to flag usage of arguments variables.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          function foo() {
                                              console.log(arguments);
                                          }
                                          
                                          function foo(action) {
                                              var args = Array.prototype.slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }
                                          
                                          function foo(action) {
                                              var args = [].slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }

                                          Examples of correct code for this rule:

                                          function foo(...args) {
                                              console.log(args);
                                          }
                                          
                                          function foo(action, ...args) {
                                              action.apply(null, args); // or `action(...args)`, related to the `prefer-spread` rule.
                                          }
                                          
                                          // Note: the implicit arguments can be overwritten.
                                          function foo(arguments) {
                                              console.log(arguments); // This is the first argument.
                                          }
                                          function foo() {
                                              var arguments = 0;
                                              console.log(arguments); // This is a local variable.
                                          }

                                          When Not To Use It

                                          This rule should not be used in ES3/5 environments.

                                          In ES2015 (ES6) or later, if you don't want to be notified about arguments variables, then it's safe to disable this rule.

                                          Related Rules

                                          No magic number: 7.
                                          Open

                                                        case 7:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

                                          Examples of incorrect code for the { "enforceConst": true } option:

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

                                          Examples of incorrect code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Source: http://eslint.org/docs/rules/

                                          Use the rest parameters instead of 'arguments'.
                                          Open

                                                  return _ref12.apply(this, arguments);

                                          Suggest using the rest parameters instead of arguments (prefer-rest-params)

                                          There are rest parameters in ES2015. We can use that feature for variadic functions instead of the arguments variable.

                                          arguments does not have methods of Array.prototype, so it's a bit of an inconvenience.

                                          Rule Details

                                          This rule is aimed to flag usage of arguments variables.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          function foo() {
                                              console.log(arguments);
                                          }
                                          
                                          function foo(action) {
                                              var args = Array.prototype.slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }
                                          
                                          function foo(action) {
                                              var args = [].slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }

                                          Examples of correct code for this rule:

                                          function foo(...args) {
                                              console.log(args);
                                          }
                                          
                                          function foo(action, ...args) {
                                              action.apply(null, args); // or `action(...args)`, related to the `prefer-spread` rule.
                                          }
                                          
                                          // Note: the implicit arguments can be overwritten.
                                          function foo(arguments) {
                                              console.log(arguments); // This is the first argument.
                                          }
                                          function foo() {
                                              var arguments = 0;
                                              console.log(arguments); // This is a local variable.
                                          }

                                          When Not To Use It

                                          This rule should not be used in ES3/5 environments.

                                          In ES2015 (ES6) or later, if you don't want to be notified about arguments variables, then it's safe to disable this rule.

                                          Related Rules

                                          No magic number: 1.
                                          Open

                                                var GhostViewClass = arguments.length <= 1 || arguments[1] === undefined ? this.GhostViewClass : arguments[1];

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

                                          Examples of incorrect code for the { "enforceConst": true } option:

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

                                          Examples of incorrect code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Source: http://eslint.org/docs/rules/

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @param {Blob | URL | string} target install target resource (file, url or some)

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

                                          Examples of incorrect code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

                                          Examples of correct code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

                                          Examples of incorrect code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

                                          Examples of correct code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Unexpected space before function parentheses.
                                          Open

                                              value: function () {

                                          Require or disallow a space before function parenthesis (space-before-function-paren)

                                          When formatting a function, whitespace is allowed between the function name or function keyword and the opening paren. Named functions also require a space between the function keyword and the function name, but anonymous functions require no whitespace. For example:

                                          function withoutSpace(x) {
                                              // ...
                                          }
                                          
                                          function withSpace (x) {
                                              // ...
                                          }
                                          
                                          var anonymousWithoutSpace = function() {};
                                          
                                          var anonymousWithSpace = function () {};

                                          Style guides may require a space after the function keyword for anonymous functions, while others specify no whitespace. Similarly, the space after a function name may or may not be required.

                                          Rule Details

                                          This rule aims to enforce consistent spacing before function parentheses and as such, will warn whenever whitespace doesn't match the preferences specified.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "space-before-function-paren": ["error", "always"],
                                              // or
                                              "space-before-function-paren": ["error", {
                                                  "anonymous": "always",
                                                  "named": "always",
                                                  "asyncArrow": "ignore"
                                              }],
                                          }
                                          • always (default) requires a space followed by the ( of arguments.
                                          • never disallows any space followed by the ( of arguments.

                                          The string option does not check async arrow function expressions for backward compatibility.

                                          You can also use a separate option for each type of function. Each of the following options can be set to "always", "never", or "ignore". Default is "always" basically.

                                          • anonymous is for anonymous function expressions (e.g. function () {}).
                                          • named is for named function expressions (e.g. function foo () {}).
                                          • asyncArrow is for async arrow function expressions (e.g. async () => {}). asyncArrow is set to "ignore" by default for backwards compatibility.

                                          "always"

                                          Examples of incorrect code for this rule with the default "always" option:

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the default "always" option:

                                          /*eslint space-before-function-paren: "error"*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          "never"

                                          Examples of incorrect code for this rule with the "never" option:

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          var bar = function foo () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the "never" option:

                                          /*eslint space-before-function-paren: ["error", "never"]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function foo() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          // async arrow function expressions are ignored by default.
                                          var foo = async () => 1
                                          var foo = async() => 1

                                          {"anonymous": "always", "named": "never", "asyncArrow": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async(a) => await a

                                          Examples of correct code for this rule with the {"anonymous": "always", "named": "never", "asyncArrow": "always"} option:

                                          /*eslint space-before-function-paren: ["error", {"anonymous": "always", "named": "never", "asyncArrow": "always"}]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };
                                          
                                          var foo = async (a) => await a

                                          {"anonymous": "never", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "never", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "never", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          {"anonymous": "ignore", "named": "always"}

                                          Examples of incorrect code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          function foo() {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar() {
                                                  // ...
                                              }
                                          };

                                          Examples of correct code for this rule with the {"anonymous": "ignore", "named": "always"} option:

                                          /*eslint space-before-function-paren: ["error", { "anonymous": "ignore", "named": "always" }]*/
                                          /*eslint-env es6*/
                                          
                                          var bar = function() {
                                              // ...
                                          };
                                          
                                          var bar = function () {
                                              // ...
                                          };
                                          
                                          function foo () {
                                              // ...
                                          }
                                          
                                          class Foo {
                                              constructor () {
                                                  // ...
                                              }
                                          }
                                          
                                          var foo = {
                                              bar () {
                                                  // ...
                                              }
                                          };

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with the consistency of spacing before function parenthesis.

                                          Related Rules

                                          No magic number: 0.
                                          Open

                                                          dirpath = void 0, sakuraname = void 0;

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

                                          Examples of incorrect code for the { "enforceConst": true } option:

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

                                          Examples of incorrect code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Source: http://eslint.org/docs/rules/

                                          No magic number: 0.
                                          Open

                                                          ghost_result = void 0, balloon_result = void 0;

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

                                          Examples of incorrect code for the { "enforceConst": true } option:

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

                                          Examples of incorrect code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Source: http://eslint.org/docs/rules/

                                          No magic number: 3.
                                          Open

                                                          _context11.t0 = _context11['catch'](3);

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

                                          Examples of incorrect code for the { "enforceConst": true } option:

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

                                          Examples of incorrect code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Source: http://eslint.org/docs/rules/

                                          No magic number: 43.
                                          Open

                                                        case 43:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

                                          Examples of incorrect code for the { "enforceConst": true } option:

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

                                          Examples of incorrect code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Source: http://eslint.org/docs/rules/

                                          No magic number: 3.
                                          Open

                                                  }, _callee11, this, [[3, 39]]);

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

                                          Examples of incorrect code for the { "enforceConst": true } option:

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

                                          Examples of incorrect code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Source: http://eslint.org/docs/rules/

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @type {cuttlebone}

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

                                          Examples of incorrect code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

                                          Examples of correct code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

                                          Examples of incorrect code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

                                          Examples of correct code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Expected exception block, space or tab after '//' in comment.
                                          Open

                                          //# sourceMappingURL=named-kernel-manager-ghost-module.js.map

                                          Requires or disallows a whitespace (space or tab) beginning a comment (spaced-comment)

                                          Some style guides require or disallow a whitespace immediately after the initial // or /* of a comment. Whitespace after the // or /* makes it easier to read text in comments. On the other hand, commenting out code is easier without having to put a whitespace right after the // or /*.

                                          Rule Details

                                          This rule will enforce consistency of spacing after the start of a comment // or /*. It also provides several exceptions for various documentation styles.

                                          Options

                                          The rule takes two options.

                                          • The first is a string which be either "always" or "never". The default is "always".

                                            • If "always" then the // or /* must be followed by at least one whitespace.
                                            • If "never" then there should be no whitespace following.
                                          • This rule can also take a 2nd option, an object with any of the following keys: "exceptions" and "markers".

                                            • The "exceptions" value is an array of string patterns which are considered exceptions to the rule. Please note that exceptions are ignored if the first argument is "never".
                                            "spaced-comment": ["error", "always", { "exceptions": ["-", "+"] }]
                                            • The "markers" value is an array of string patterns which are considered markers for docblock-style comments, such as an additional /, used to denote documentation read by doxygen, vsdoc, etc. which must have additional characters. The "markers" array will apply regardless of the value of the first argument, e.g. "always" or "never".
                                            "spaced-comment": ["error", "always", { "markers": ["/"] }]

                                          The difference between a marker and an exception is that a marker only appears at the beginning of the comment whereas exceptions can occur anywhere in the comment string.

                                          You can also define separate exceptions and markers for block and line comments. The "block" object can have an additional key "balanced", a boolean that specifies if inline block comments should have balanced spacing. The default value is false.

                                          • If "balanced": true and "always" then the /* must be followed by at least one whitespace, and the */ must be preceded by at least one whitespace.

                                          • If "balanced": true and "never" then there should be no whitespace following /* or preceding */.

                                          • If "balanced": false then balanced whitespace is not enforced.

                                          "spaced-comment": ["error", "always", {
                                              "line": {
                                                  "markers": ["/"],
                                                  "exceptions": ["-", "+"]
                                              },
                                              "block": {
                                                  "markers": ["!"],
                                                  "exceptions": ["*"],
                                                  "balanced": true
                                              }
                                          }]

                                          always

                                          Examples of incorrect code for this rule with the "always" option:

                                          /*eslint spaced-comment: ["error", "always"]*/
                                          
                                          //This is a comment with no whitespace at the beginning
                                          
                                          /*This is a comment with no whitespace at the beginning */
                                          /* eslint spaced-comment: ["error", "always", { "block": { "balanced": true } }] */
                                          /* This is a comment with whitespace at the beginning but not the end*/

                                          Examples of correct code for this rule with the "always" option:

                                          /* eslint spaced-comment: ["error", "always"] */
                                          
                                          // This is a comment with a whitespace at the beginning
                                          
                                          /* This is a comment with a whitespace at the beginning */
                                          
                                          /*
                                           * This is a comment with a whitespace at the beginning
                                           */
                                          
                                          /*
                                          This comment has a newline
                                          */
                                          /* eslint spaced-comment: ["error", "always"] */
                                          
                                          /**
                                          * I am jsdoc
                                          */

                                          never

                                          Examples of incorrect code for this rule with the "never" option:

                                          /*eslint spaced-comment: ["error", "never"]*/
                                          
                                          // This is a comment with a whitespace at the beginning
                                          
                                          /* This is a comment with a whitespace at the beginning */
                                          
                                          /* \nThis is a comment with a whitespace at the beginning */
                                          /*eslint spaced-comment: ["error", "never", { "block": { "balanced": true } }]*/
                                          /*This is a comment with whitespace at the end */

                                          Examples of correct code for this rule with the "never" option:

                                          /*eslint spaced-comment: ["error", "never"]*/
                                          
                                          /*This is a comment with no whitespace at the beginning */
                                          /*eslint spaced-comment: ["error", "never"]*/
                                          
                                          /**
                                          * I am jsdoc
                                          */

                                          exceptions

                                          Examples of incorrect code for this rule with the "always" option combined with "exceptions":

                                          /* eslint spaced-comment: ["error", "always", { "block": { "exceptions": ["-"] } }] */
                                          
                                          //--------------
                                          // Comment block
                                          //--------------
                                          /* eslint spaced-comment: ["error", "always", { "exceptions": ["-", "+"] }] */
                                          
                                          //------++++++++
                                          // Comment block
                                          //------++++++++
                                          /* eslint spaced-comment: ["error", "always", { "exceptions": ["-", "+"] }] */
                                          
                                          /*------++++++++*/
                                          /* Comment block */
                                          /*------++++++++*/
                                          /* eslint spaced-comment: ["error", "always", { "line": { "exceptions": ["-+"] } }] */
                                          
                                          /*-+-+-+-+-+-+-+*/
                                          // Comment block
                                          /*-+-+-+-+-+-+-+*/

                                          Examples of correct code for this rule with the "always" option combined with "exceptions":

                                          /* eslint spaced-comment: ["error", "always", { "exceptions": ["-"] }] */
                                          
                                          //--------------
                                          // Comment block
                                          //--------------
                                          /* eslint spaced-comment: ["error", "always", { "line": { "exceptions": ["-"] } }] */
                                          
                                          //--------------
                                          // Comment block
                                          //--------------
                                          /* eslint spaced-comment: ["error", "always", { "exceptions": ["*"] }] */
                                          
                                          /****************
                                           * Comment block
                                           ****************/
                                          /* eslint spaced-comment: ["error", "always", { "exceptions": ["-+"] }] */
                                          
                                          //-+-+-+-+-+-+-+
                                          // Comment block
                                          //-+-+-+-+-+-+-+
                                          
                                          /*-+-+-+-+-+-+-+*/
                                          // Comment block
                                          /*-+-+-+-+-+-+-+*/
                                          /* eslint spaced-comment: ["error", "always", { "block": { "exceptions": ["-+"] } }] */
                                          
                                          /*-+-+-+-+-+-+-+*/
                                          // Comment block
                                          /*-+-+-+-+-+-+-+*/

                                          markers

                                          Examples of incorrect code for this rule with the "always" option combined with "markers":

                                          /* eslint spaced-comment: ["error", "always", { "markers": ["/"] }] */
                                          
                                          ///This is a comment with a marker but without whitespace
                                          /*eslint spaced-comment: ["error", "always", { "block": { "markers": ["!"], "balanced": true } }]*/
                                          /*! This is a comment with a marker but without whitespace at the end*/
                                          /*eslint spaced-comment: ["error", "never", { "block": { "markers": ["!"], "balanced": true } }]*/
                                          /*!This is a comment with a marker but with whitespace at the end */

                                          Examples of correct code for this rule with the "always" option combined with "markers":

                                          /* eslint spaced-comment: ["error", "always", { "markers": ["/"] }] */
                                          
                                          /// This is a comment with a marker
                                          /*eslint spaced-comment: ["error", "never", { "markers": ["!<"] }]*/
                                          
                                          //!<this is a line comment with marker block subsequent lines are ignored></this>
                                          /* eslint spaced-comment: ["error", "always", { "markers": ["global"] }] */
                                          
                                          /*global ABC*/

                                          Related Rules

                                          No magic number: 0.
                                          Open

                                                        case 0:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

                                          Examples of incorrect code for the { "enforceConst": true } option:

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

                                          Examples of incorrect code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Source: http://eslint.org/docs/rules/

                                          Expected linebreaks to be 'LF' but found 'CRLF'.
                                          Open

                                               * @return {Promise<Balloon>} balloon instance

                                          enforce consistent linebreak style (linebreak-style)

                                          When developing with a lot of people all having different editors, VCS applications and operating systems it may occur that different line endings are written by either of the mentioned (might especially happen when using the windows and mac versions of SourceTree together).

                                          The linebreaks (new lines) used in windows operating system are usually carriage returns (CR) followed by a line feed (LF) making it a carriage return line feed (CRLF) whereas Linux and Unix use a simple line feed (LF). The corresponding control sequences are "\n" (for LF) and "\r\n" for (CRLF).

                                          Many versioning systems (like git and subversion) can automatically ensure the correct ending. However to cover all contingencies, you can activate this rule.

                                          Rule Details

                                          This rule enforces consistent line endings independent of operating system, VCS, or editor used across your codebase.

                                          Options

                                          This rule has a string option:

                                          • "unix" (default) enforces the usage of Unix line endings: \n for LF.
                                          • "windows" enforces the usage of Windows line endings: \r\n for CRLF.

                                          unix

                                          Examples of incorrect code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a'; // \r\n

                                          Examples of correct code for this rule with the default "unix" option:

                                          /*eslint linebreak-style: ["error", "unix"]*/
                                          
                                          var a = 'a', // \n
                                              b = 'b'; // \n
                                          // \n
                                          function foo(params) { // \n
                                              // do stuff \n
                                          }// \n

                                          windows

                                          Examples of incorrect code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a'; // \n

                                          Examples of correct code for this rule with the "windows" option:

                                          /*eslint linebreak-style: ["error", "windows"]*/
                                          
                                          var a = 'a', // \r\n
                                              b = 'b'; // \r\n
                                          // \r\n
                                          function foo(params) { // \r\n
                                              // do stuff \r\n
                                          } // \r\n

                                          Using this rule with version control systems

                                          Version control systems sometimes have special behavior for linebreaks. To make it easy for developers to contribute to your codebase from different platforms, you may want to configure your VCS to handle linebreaks appropriately.

                                          For example, the default behavior of git on Windows systems is to convert LF linebreaks to CRLF when checking out files, but to store the linebreaks as LF when committing a change. This will cause the linebreak-style rule to report errors if configured with the "unix" setting, because the files that ESLint sees will have CRLF linebreaks. If you use git, you may want to add a line to your .gitattributes file to prevent git from converting linebreaks in .js files:

                                          *.js text eol=lf

                                          When Not To Use It

                                          If you aren't concerned about having different line endings within your code, then you can safely turn this rule off.

                                          Compatibility

                                          Use the rest parameters instead of 'arguments'.
                                          Open

                                                  var from = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];

                                          Suggest using the rest parameters instead of arguments (prefer-rest-params)

                                          There are rest parameters in ES2015. We can use that feature for variadic functions instead of the arguments variable.

                                          arguments does not have methods of Array.prototype, so it's a bit of an inconvenience.

                                          Rule Details

                                          This rule is aimed to flag usage of arguments variables.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          function foo() {
                                              console.log(arguments);
                                          }
                                          
                                          function foo(action) {
                                              var args = Array.prototype.slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }
                                          
                                          function foo(action) {
                                              var args = [].slice.call(arguments, 1);
                                              action.apply(null, args);
                                          }

                                          Examples of correct code for this rule:

                                          function foo(...args) {
                                              console.log(args);
                                          }
                                          
                                          function foo(action, ...args) {
                                              action.apply(null, args); // or `action(...args)`, related to the `prefer-spread` rule.
                                          }
                                          
                                          // Note: the implicit arguments can be overwritten.
                                          function foo(arguments) {
                                              console.log(arguments); // This is the first argument.
                                          }
                                          function foo() {
                                              var arguments = 0;
                                              console.log(arguments); // This is a local variable.
                                          }

                                          When Not To Use It

                                          This rule should not be used in ES3/5 environments.

                                          In ES2015 (ES6) or later, if you don't want to be notified about arguments variables, then it's safe to disable this rule.

                                          Related Rules

                                          Unexpected var, use let or const instead.
                                          Open

                                                  var nanikaStorage, nar, dirpath, sakuraname, install_results, ghost_result, balloon_result, profile;

                                          require let or const instead of var (no-var)

                                          ECMAScript 6 allows programmers to create variables with block scope instead of function scope using the let and const keywords. Block scope is common in many other programming languages and helps programmers avoid mistakes such as:

                                          var count = people.length;
                                          var enoughFood = count > sandwiches.length;
                                          
                                          if (enoughFood) {
                                              var count = sandwiches.length; // accidentally overriding the count variable
                                              console.log("We have " + count + " sandwiches for everyone. Plenty for all!");
                                          }
                                          
                                          // our count variable is no longer accurate
                                          console.log("We have " + count + " people and " + sandwiches.length + " sandwiches!");

                                          Rule Details

                                          This rule is aimed at discouraging the use of var and encouraging the use of const or let instead.

                                          Examples

                                          Examples of incorrect code for this rule:

                                          /*eslint no-var: "error"*/
                                          
                                          var x = "y";
                                          var CONFIG = {};

                                          Examples of correct code for this rule:

                                          /*eslint no-var: "error"*/
                                          /*eslint-env es6*/
                                          
                                          let x = "y";
                                          const CONFIG = {};

                                          When Not To Use It

                                          In addition to non-ES6 environments, existing JavaScript projects that are beginning to introduce ES6 into their codebase may not want to apply this rule if the cost of migrating from var to let is too costly. Source: http://eslint.org/docs/rules/

                                          No magic number: 31.
                                          Open

                                                        case 31:

                                          Disallow Magic Numbers (no-magic-numbers)

                                          'Magic numbers' are numbers that occur multiple time in code without an explicit meaning. They should preferably be replaced by named constants.

                                          var now = Date.now(),
                                              inOneHour = now + (60 * 60 * 1000);

                                          Rule Details

                                          The no-magic-numbers rule aims to make code more readable and refactoring easier by ensuring that special numbers are declared as constants to make their meaning explicit.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * 0.25);
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          
                                          var dataLast = data[2];
                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var SECONDS;
                                          
                                          SECONDS = 60;

                                          Examples of correct code for this rule:

                                          /*eslint no-magic-numbers: "error"*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          Options

                                          ignore

                                          An array of numbers to ignore. It's set to [] by default. If provided, it must be an Array.

                                          Examples of correct code for the sample { "ignore": [1] } option:

                                          /*eslint no-magic-numbers: ["error", { "ignore": [1] }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data.length && data[data.length - 1];

                                          ignoreArrayIndexes

                                          A boolean to specify if numbers used as array indexes are considered okay. false by default.

                                          Examples of correct code for the { "ignoreArrayIndexes": true } option:

                                          /*eslint no-magic-numbers: ["error", { "ignoreArrayIndexes": true }]*/
                                          
                                          var data = ['foo', 'bar', 'baz'];
                                          var dataLast = data[2];

                                          enforceConst

                                          A boolean to specify if we should check for the const keyword in variable declaration of numbers. false by default.

                                          Examples of incorrect code for the { "enforceConst": true } option:

                                          /*eslint no-magic-numbers: ["error", { "enforceConst": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * TAX);

                                          detectObjects

                                          A boolean to specify if we should detect numbers when setting object properties for example. false by default.

                                          Examples of incorrect code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var magic = {
                                            tax: 0.25
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Examples of correct code for the { "detectObjects": true } option:

                                          /*eslint no-magic-numbers: ["error", { "detectObjects": true }]*/
                                          
                                          var TAX = 0.25;
                                          
                                          var magic = {
                                            tax: TAX
                                          };
                                          
                                          var dutyFreePrice = 100,
                                              finalPrice = dutyFreePrice + (dutyFreePrice * magic.tax);

                                          Source: http://eslint.org/docs/rules/

                                          'NamedKernelManagerGhostModule' is already declared in the upper scope.
                                          Open

                                            function NamedKernelManagerGhostModule() {

                                          disallow variable declarations from shadowing variables declared in the outer scope (no-shadow)

                                          Shadowing is the process by which a local variable shares the same name as a variable in its containing scope. For example:

                                          var a = 3;
                                          function b() {
                                              var a = 10;
                                          }

                                          In this case, the variable a inside of b() is shadowing the variable a in the global scope. This can cause confusion while reading the code and it's impossible to access the global variable.

                                          Rule Details

                                          This rule aims to eliminate shadowed variable declarations.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-shadow: "error"*/
                                          /*eslint-env es6*/
                                          
                                          var a = 3;
                                          function b() {
                                              var a = 10;
                                          }
                                          
                                          var b = function () {
                                              var a = 10;
                                          }
                                          
                                          function b(a) {
                                              a = 10;
                                          }
                                          b(a);
                                          
                                          if (true) {
                                              let a = 5;
                                          }

                                          Options

                                          This rule takes one option, an object, with properties "builtinGlobals", "hoist" and "allow".

                                          {
                                              "no-shadow": ["error", { "builtinGlobals": false, "hoist": "functions", "allow": [] }]
                                          }

                                          builtinGlobals

                                          The builtinGlobals option is false by default. If it is true, the rule prevents shadowing of built-in global variables: Object, Array, Number, and so on.

                                          Examples of incorrect code for the { "builtinGlobals": true } option:

                                          /*eslint no-shadow: ["error", { "builtinGlobals": true }]*/
                                          
                                          function foo() {
                                              var Object = 0;
                                          }

                                          hoist

                                          The hoist option has three settings:

                                          • functions (by default) - reports shadowing before the outer functions are defined.
                                          • all - reports all shadowing before the outer variables/functions are defined.
                                          • never - never report shadowing before the outer variables/functions are defined.

                                          hoist: functions

                                          Examples of incorrect code for the default { "hoist": "functions" } option:

                                          /*eslint no-shadow: ["error", { "hoist": "functions" }]*/
                                          /*eslint-env es6*/
                                          
                                          if (true) {
                                              let b = 6;
                                          }
                                          
                                          function b() {}

                                          Although let b in the if statement is before the function declaration in the outer scope, it is incorrect.

                                          Examples of correct code for the default { "hoist": "functions" } option:

                                          /*eslint no-shadow: ["error", { "hoist": "functions" }]*/
                                          /*eslint-env es6*/
                                          
                                          if (true) {
                                              let a = 3;
                                          }
                                          
                                          let a = 5;

                                          Because let a in the if statement is before the variable declaration in the outer scope, it is correct.

                                          hoist: all

                                          Examples of incorrect code for the { "hoist": "all" } option:

                                          /*eslint no-shadow: ["error", { "hoist": "all" }]*/
                                          /*eslint-env es6*/
                                          
                                          if (true) {
                                              let a = 3;
                                              let b = 6;
                                          }
                                          
                                          let a = 5;
                                          function b() {}

                                          hoist: never

                                          Examples of correct code for the { "hoist": "never" } option:

                                          /*eslint no-shadow: ["error", { "hoist": "never" }]*/
                                          /*eslint-env es6*/
                                          
                                          if (true) {
                                              let a = 3;
                                              let b = 6;
                                          }
                                          
                                          let a = 5;
                                          function b() {}

                                          Because let a and let b in the if statement are before the declarations in the outer scope, they are correct.

                                          allow

                                          The allow option is an array of identifier names for which shadowing is allowed. For example, "resolve", "reject", "done", "cb".

                                          Examples of correct code for the { "allow": ["done"] } option:

                                          /*eslint no-shadow: ["error", { "allow": ["done"] }]*/
                                          /*eslint-env es6*/
                                          
                                          import async from 'async';
                                          
                                          function foo(done) {
                                            async.map([1, 2], function (e, done) {
                                              done(null, e * 2)
                                            }, done);
                                          }
                                          
                                          foo(function (err, result) {
                                            console.log({ err, result });
                                          });

                                          Further Reading

                                          Related Rules

                                          'NamedKernelManagerGhostModule' is assigned a value but never used.
                                          Open

                                          var NamedKernelManagerGhostModule = exports.NamedKernelManagerGhostModule = function () {

                                          Disallow Unused Variables (no-unused-vars)

                                          Variables that are declared and not used anywhere in the code are most likely an error due to incomplete refactoring. Such variables take up space in the code and can lead to confusion by readers.

                                          Rule Details

                                          This rule is aimed at eliminating unused variables, functions, and parameters of functions.

                                          A variable is considered to be used if any of the following are true:

                                          • It represents a function that is called (doSomething())
                                          • It is read (var y = x)
                                          • It is passed into a function as an argument (doSomething(x))
                                          • It is read inside of a function that is passed to another function (doSomething(function() { foo(); }))

                                          A variable is not considered to be used if it is only ever assigned to (var x = 5) or declared.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-unused-vars: "error"*/
                                          /*global some_unused_var*/
                                          
                                          // It checks variables you have defined as global
                                          some_unused_var = 42;
                                          
                                          var x;
                                          
                                          // Write-only variables are not considered as used.
                                          var y = 10;
                                          y = 5;
                                          
                                          // A read for a modification of itself is not considered as used.
                                          var z = 0;
                                          z = z + 1;
                                          
                                          // By default, unused arguments cause warnings.
                                          (function(foo) {
                                              return 5;
                                          })();
                                          
                                          // Unused recursive functions also cause warnings.
                                          function fact(n) {
                                              if (n < 2) return 1;
                                              return n * fact(n - 1);
                                          }
                                          
                                          // When a function definition destructures an array, unused entries from the array also cause warnings.
                                          function getY([x, y]) {
                                              return y;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-unused-vars: "error"*/
                                          
                                          var x = 10;
                                          alert(x);
                                          
                                          // foo is considered used here
                                          myFunc(function foo() {
                                              // ...
                                          }.bind(this));
                                          
                                          (function(foo) {
                                              return foo;
                                          })();
                                          
                                          var myFunc;
                                          myFunc = setTimeout(function() {
                                              // myFunc is considered used
                                              myFunc();
                                          }, 50);
                                          
                                          // Only the second argument from the descructured array is used.
                                          function getY([, y]) {
                                              return y;
                                          }

                                          exported

                                          In environments outside of CommonJS or ECMAScript modules, you may use var to create a global variable that may be used by other scripts. You can use the /* exported variableName */ comment block to indicate that this variable is being exported and therefore should not be considered unused.

                                          Note that /* exported */ has no effect for any of the following:

                                          • when the environment is node or commonjs
                                          • when parserOptions.sourceType is module
                                          • when ecmaFeatures.globalReturn is true

                                          The line comment // exported variableName will not work as exported is not line-specific.

                                          Examples of correct code for /* exported variableName */ operation:

                                          /* exported global_var */
                                          
                                          var global_var = 42;

                                          Options

                                          This rule takes one argument which can be a string or an object. The string settings are the same as those of the vars property (explained below).

                                          By default this rule is enabled with all option for variables and after-used for arguments.

                                          {
                                              "rules": {
                                                  "no-unused-vars": ["error", { "vars": "all", "args": "after-used", "ignoreRestSiblings": false }]
                                              }
                                          }

                                          vars

                                          The vars option has two settings:

                                          • all checks all variables for usage, including those in the global scope. This is the default setting.
                                          • local checks only that locally-declared variables are used but will allow global variables to be unused.

                                          vars: local

                                          Examples of correct code for the { "vars": "local" } option:

                                          /*eslint no-unused-vars: ["error", { "vars": "local" }]*/
                                          /*global some_unused_var */
                                          
                                          some_unused_var = 42;

                                          varsIgnorePattern

                                          The varsIgnorePattern option specifies exceptions not to check for usage: variables whose names match a regexp pattern. For example, variables whose names contain ignored or Ignored.

                                          Examples of correct code for the { "varsIgnorePattern": "[iI]gnored" } option:

                                          /*eslint no-unused-vars: ["error", { "varsIgnorePattern": "[iI]gnored" }]*/
                                          
                                          var firstVarIgnored = 1;
                                          var secondVar = 2;
                                          console.log(secondVar);

                                          args

                                          The args option has three settings:

                                          • after-used - only the last argument must be used. This allows you, for instance, to have two named parameters to a function and as long as you use the second argument, ESLint will not warn you about the first. This is the default setting.
                                          • all - all named arguments must be used.
                                          • none - do not check arguments.

                                          args: after-used

                                          Examples of incorrect code for the default { "args": "after-used" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "after-used" }]*/
                                          
                                          // 1 error
                                          // "baz" is defined but never used
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          Examples of correct code for the default { "args": "after-used" } option:

                                          /*eslint no-unused-vars: ["error", {"args": "after-used"}]*/
                                          
                                          (function(foo, bar, baz) {
                                              return baz;
                                          })();

                                          args: all

                                          Examples of incorrect code for the { "args": "all" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "all" }]*/
                                          
                                          // 2 errors
                                          // "foo" is defined but never used
                                          // "baz" is defined but never used
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          args: none

                                          Examples of correct code for the { "args": "none" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "none" }]*/
                                          
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          ignoreRestSiblings

                                          The ignoreRestSiblings option is a boolean (default: false). Using a Rest Property it is possible to "omit" properties from an object, but by default the sibling properties are marked as "unused". With this option enabled the rest property's siblings are ignored.

                                          Examples of correct code for the { "ignoreRestSiblings": true } option:

                                          /*eslint no-unused-vars: ["error", { "ignoreRestSiblings": true }]*/
                                          // 'type' is ignored because it has a rest property sibling.
                                          var { type, ...coords } = data;

                                          argsIgnorePattern

                                          The argsIgnorePattern option specifies exceptions not to check for usage: arguments whose names match a regexp pattern. For example, variables whose names begin with an underscore.

                                          Examples of correct code for the { "argsIgnorePattern": "^_" } option:

                                          /*eslint no-unused-vars: ["error", { "argsIgnorePattern": "^_" }]*/
                                          
                                          function foo(x, _y) {
                                              return x + 1;
                                          }
                                          foo();

                                          caughtErrors

                                          The caughtErrors option is used for catch block arguments validation.

                                          It has two settings:

                                          • none - do not check error objects. This is the default setting.
                                          • all - all named arguments must be used.

                                          caughtErrors: none

                                          Not specifying this rule is equivalent of assigning it to none.

                                          Examples of correct code for the { "caughtErrors": "none" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrors": "none" }]*/
                                          
                                          try {
                                              //...
                                          } catch (err) {
                                              console.error("errors");
                                          }

                                          caughtErrors: all

                                          Examples of incorrect code for the { "caughtErrors": "all" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrors": "all" }]*/
                                          
                                          // 1 error
                                          // "err" is defined but never used
                                          try {
                                              //...
                                          } catch (err) {
                                              console.error("errors");
                                          }

                                          caughtErrorsIgnorePattern

                                          The caughtErrorsIgnorePattern option specifies exceptions not to check for usage: catch arguments whose names match a regexp pattern. For example, variables whose names begin with a string 'ignore'.

                                          Examples of correct code for the { "caughtErrorsIgnorePattern": "^ignore" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrorsIgnorePattern": "^ignore" }]*/
                                          
                                          try {
                                              //...
                                          } catch (ignoreErr) {
                                              console.error("errors");
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about unused variables or function arguments, you can safely turn this rule off. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                          if (!this.isKernelExists(namedId)) {

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Expected a default case.
                                          Open

                                                      switch (_context.prev = _context.next) {

                                          Require Default Case in Switch Statements (default-case)

                                          Some code conventions require that all switch statements have a default case, even if the default case is empty, such as:

                                          switch (foo) {
                                              case 1:
                                                  doSomething();
                                                  break;
                                          
                                              case 2:
                                                  doSomething();
                                                  break;
                                          
                                              default:
                                                  // do nothing
                                          }

                                          The thinking is that it's better to always explicitly state what the default behavior should be so that it's clear whether or not the developer forgot to include the default behavior by mistake.

                                          Other code conventions allow you to skip the default case so long as there is a comment indicating the omission is intentional, such as:

                                          switch (foo) {
                                              case 1:
                                                  doSomething();
                                                  break;
                                          
                                              case 2:
                                                  doSomething();
                                                  break;
                                          
                                              // no default
                                          }

                                          Once again, the intent here is to show that the developer intended for there to be no default behavior.

                                          Rule Details

                                          This rule aims to require default case in switch statements. You may optionally include a // no default after the last case if there is no default case. The comment may be in any desired case, such as // No Default.

                                          Examples of incorrect code for this rule:

                                          /*eslint default-case: "error"*/
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint default-case: "error"*/
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              default:
                                                  /* code */
                                                  break;
                                          }
                                          
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // no default
                                          }
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // No Default
                                          }

                                          Options

                                          This rule accepts a single options argument:

                                          • Set the commentPattern option to a regular expression string to change the default /^no default$/i comment test pattern

                                          commentPattern

                                          Examples of correct code for the { "commentPattern": "^skip\\sdefault" } option:

                                          /*eslint default-case: ["error", { "commentPattern": "^skip\\sdefault" }]*/
                                          
                                          switch(a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // skip default
                                          }
                                          
                                          switch(a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // skip default case
                                          }

                                          When Not To Use It

                                          If you don't want to enforce a default case for switch statements, you can safely disable this rule.

                                          Related Rules

                                          Assignment to property of function parameter '_context'.
                                          Open

                                                            _context.next = 2;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Unexpected 'this'.
                                          Open

                                                          return this._getGhostKernelAsProfile(namedId, profile, routes, controllers, GhostViewClass);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected constant condition.
                                          Open

                                                    while (1) {

                                          disallow constant expressions in conditions (no-constant-condition)

                                          A constant expression (for example, a literal) as a test condition might be a typo or development trigger for a specific behavior. For example, the following code looks as if it is not ready for production.

                                          if (false) {
                                              doSomethingUnfinished();
                                          }

                                          Rule Details

                                          This rule disallows constant expressions in the test condition of:

                                          • if, for, while, or do...while statement
                                          • ?: ternary expression

                                          Examples of incorrect code for this rule:

                                          /*eslint no-constant-condition: "error"*/
                                          
                                          if (false) {
                                              doSomethingUnfinished();
                                          }
                                          
                                          if (void x) {
                                              doSomethingUnfinished();
                                          }
                                          
                                          for (;-2;) {
                                              doSomethingForever();
                                          }
                                          
                                          while (typeof x) {
                                              doSomethingForever();
                                          }
                                          
                                          do {
                                              doSomethingForever();
                                          } while (x = -1);
                                          
                                          var result = 0 ? a : b;

                                          Examples of correct code for this rule:

                                          /*eslint no-constant-condition: "error"*/
                                          
                                          if (x === 0) {
                                              doSomething();
                                          }
                                          
                                          for (;;) {
                                              doSomethingForever();
                                          }
                                          
                                          while (typeof x === "undefined") {
                                              doSomething();
                                          }
                                          
                                          do {
                                              doSomething();
                                          } while (x);
                                          
                                          var result = x !== 0 ? a : b;

                                          Options

                                          checkLoops

                                          Set to true by default. Setting this option to false allows constant expressions in loops.

                                          Examples of correct code for when checkLoops is false:

                                          /*eslint no-constant-condition: ["error", { "checkLoops": false }]*/
                                          
                                          while (true) {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          };
                                          
                                          for (;true;) {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          };
                                          
                                          do {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          } while (true)

                                          Source: http://eslint.org/docs/rules/

                                          Missing trailing comma.
                                          Open

                                            value: true

                                          require or disallow trailing commas (comma-dangle)

                                          Trailing commas in object literals are valid according to the ECMAScript 5 (and ECMAScript 3!) spec. However, IE8 (when not in IE8 document mode) and below will throw an error when it encounters trailing commas in JavaScript.

                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };

                                          Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. Another argument in favor of trailing commas is that it improves the clarity of diffs when an item is added or removed from an object or array:

                                          Less clear:

                                          var foo = {
                                          -    bar: "baz",
                                          -    qux: "quux"
                                          +    bar: "baz"
                                           };

                                          More clear:

                                          var foo = {
                                               bar: "baz",
                                          -    qux: "quux",
                                           };

                                          Rule Details

                                          This rule enforces consistent use of trailing commas in object and array literals.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "comma-dangle": ["error", "never"],
                                              // or
                                              "comma-dangle": ["error", {
                                                  "arrays": "never",
                                                  "objects": "never",
                                                  "imports": "never",
                                                  "exports": "never",
                                                  "functions": "ignore",
                                              }]
                                          }
                                          • "never" (default) disallows trailing commas
                                          • "always" requires trailing commas
                                          • "always-multiline" requires trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }
                                          • "only-multiline" allows (but does not require) trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }

                                          Trailing commas in function declarations and function calls are valid syntax since ECMAScript 2017; however, the string option does not check these situations for backwards compatibility.

                                          You can also use an object option to configure this rule for each type of syntax. Each of the following options can be set to "never", "always", "always-multiline", "only-multiline", or "ignore". The default for each option is "never" unless otherwise specified.

                                          • arrays is for array literals and array patterns of destructuring. (e.g. let [a,] = [1,];)
                                          • objects is for object literals and object patterns of destructuring. (e.g. let {a,} = {a: 1};)
                                          • imports is for import declarations of ES Modules. (e.g. import {a,} from "foo";)
                                          • exports is for export declarations of ES Modules. (e.g. export {a,};)
                                          • functions is for function declarations and function calls. (e.g. (function(a,){ })(b,);)
                                            functions is set to "ignore" by default for consistency with the string option.

                                          never

                                          Examples of incorrect code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          Examples of correct code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          always

                                          Examples of incorrect code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          always-multiline

                                          Examples of incorrect code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          only-multiline

                                          Examples of incorrect code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];

                                          Examples of correct code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          functions

                                          Examples of incorrect code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          Examples of correct code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of incorrect code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of correct code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with dangling commas. Source: http://eslint.org/docs/rules/

                                          Assignment to property of function parameter '_context'.
                                          Open

                                                          _context.next = 4;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Assignment to property of function parameter '_context'.
                                          Open

                                                      switch (_context.prev = _context.next) {

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Unexpected 'this'.
                                          Open

                                                  }, _callee, this);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                          this.registerKernel(namedId, kernel);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                  var _this = this;

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                          return _context4.abrupt('return', _promise2.default.all([this._get_ghost(namedId), this._get_shell(namedId, shellname, GhostViewClass), this._get_balloon(balloonname, GhostViewClass)]).then(function (_ref5) {

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                          return _context4.abrupt('return', _promise2.default.all([this._get_ghost(namedId), this._get_shell(namedId, shellname, GhostViewClass), this._get_balloon(balloonname, GhostViewClass)]).then(function (_ref5) {

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                          return _context4.abrupt('return', _promise2.default.all([this._get_ghost(namedId), this._get_shell(namedId, shellname, GhostViewClass), this._get_balloon(balloonname, GhostViewClass)]).then(function (_ref5) {

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Assignment to property of function parameter '_context2'.
                                          Open

                                                          _context2.next = 4;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Unexpected 'this'.
                                          Open

                                                          dirpath = this._get_ghost_directory_path(namedId);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          '_x18' is defined but never used.
                                          Open

                                                function _get_ghost_kernel(_x13, _x14, _x15, _x16, _x17, _x18) {

                                          Disallow Unused Variables (no-unused-vars)

                                          Variables that are declared and not used anywhere in the code are most likely an error due to incomplete refactoring. Such variables take up space in the code and can lead to confusion by readers.

                                          Rule Details

                                          This rule is aimed at eliminating unused variables, functions, and parameters of functions.

                                          A variable is considered to be used if any of the following are true:

                                          • It represents a function that is called (doSomething())
                                          • It is read (var y = x)
                                          • It is passed into a function as an argument (doSomething(x))
                                          • It is read inside of a function that is passed to another function (doSomething(function() { foo(); }))

                                          A variable is not considered to be used if it is only ever assigned to (var x = 5) or declared.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-unused-vars: "error"*/
                                          /*global some_unused_var*/
                                          
                                          // It checks variables you have defined as global
                                          some_unused_var = 42;
                                          
                                          var x;
                                          
                                          // Write-only variables are not considered as used.
                                          var y = 10;
                                          y = 5;
                                          
                                          // A read for a modification of itself is not considered as used.
                                          var z = 0;
                                          z = z + 1;
                                          
                                          // By default, unused arguments cause warnings.
                                          (function(foo) {
                                              return 5;
                                          })();
                                          
                                          // Unused recursive functions also cause warnings.
                                          function fact(n) {
                                              if (n < 2) return 1;
                                              return n * fact(n - 1);
                                          }
                                          
                                          // When a function definition destructures an array, unused entries from the array also cause warnings.
                                          function getY([x, y]) {
                                              return y;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-unused-vars: "error"*/
                                          
                                          var x = 10;
                                          alert(x);
                                          
                                          // foo is considered used here
                                          myFunc(function foo() {
                                              // ...
                                          }.bind(this));
                                          
                                          (function(foo) {
                                              return foo;
                                          })();
                                          
                                          var myFunc;
                                          myFunc = setTimeout(function() {
                                              // myFunc is considered used
                                              myFunc();
                                          }, 50);
                                          
                                          // Only the second argument from the descructured array is used.
                                          function getY([, y]) {
                                              return y;
                                          }

                                          exported

                                          In environments outside of CommonJS or ECMAScript modules, you may use var to create a global variable that may be used by other scripts. You can use the /* exported variableName */ comment block to indicate that this variable is being exported and therefore should not be considered unused.

                                          Note that /* exported */ has no effect for any of the following:

                                          • when the environment is node or commonjs
                                          • when parserOptions.sourceType is module
                                          • when ecmaFeatures.globalReturn is true

                                          The line comment // exported variableName will not work as exported is not line-specific.

                                          Examples of correct code for /* exported variableName */ operation:

                                          /* exported global_var */
                                          
                                          var global_var = 42;

                                          Options

                                          This rule takes one argument which can be a string or an object. The string settings are the same as those of the vars property (explained below).

                                          By default this rule is enabled with all option for variables and after-used for arguments.

                                          {
                                              "rules": {
                                                  "no-unused-vars": ["error", { "vars": "all", "args": "after-used", "ignoreRestSiblings": false }]
                                              }
                                          }

                                          vars

                                          The vars option has two settings:

                                          • all checks all variables for usage, including those in the global scope. This is the default setting.
                                          • local checks only that locally-declared variables are used but will allow global variables to be unused.

                                          vars: local

                                          Examples of correct code for the { "vars": "local" } option:

                                          /*eslint no-unused-vars: ["error", { "vars": "local" }]*/
                                          /*global some_unused_var */
                                          
                                          some_unused_var = 42;

                                          varsIgnorePattern

                                          The varsIgnorePattern option specifies exceptions not to check for usage: variables whose names match a regexp pattern. For example, variables whose names contain ignored or Ignored.

                                          Examples of correct code for the { "varsIgnorePattern": "[iI]gnored" } option:

                                          /*eslint no-unused-vars: ["error", { "varsIgnorePattern": "[iI]gnored" }]*/
                                          
                                          var firstVarIgnored = 1;
                                          var secondVar = 2;
                                          console.log(secondVar);

                                          args

                                          The args option has three settings:

                                          • after-used - only the last argument must be used. This allows you, for instance, to have two named parameters to a function and as long as you use the second argument, ESLint will not warn you about the first. This is the default setting.
                                          • all - all named arguments must be used.
                                          • none - do not check arguments.

                                          args: after-used

                                          Examples of incorrect code for the default { "args": "after-used" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "after-used" }]*/
                                          
                                          // 1 error
                                          // "baz" is defined but never used
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          Examples of correct code for the default { "args": "after-used" } option:

                                          /*eslint no-unused-vars: ["error", {"args": "after-used"}]*/
                                          
                                          (function(foo, bar, baz) {
                                              return baz;
                                          })();

                                          args: all

                                          Examples of incorrect code for the { "args": "all" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "all" }]*/
                                          
                                          // 2 errors
                                          // "foo" is defined but never used
                                          // "baz" is defined but never used
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          args: none

                                          Examples of correct code for the { "args": "none" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "none" }]*/
                                          
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          ignoreRestSiblings

                                          The ignoreRestSiblings option is a boolean (default: false). Using a Rest Property it is possible to "omit" properties from an object, but by default the sibling properties are marked as "unused". With this option enabled the rest property's siblings are ignored.

                                          Examples of correct code for the { "ignoreRestSiblings": true } option:

                                          /*eslint no-unused-vars: ["error", { "ignoreRestSiblings": true }]*/
                                          // 'type' is ignored because it has a rest property sibling.
                                          var { type, ...coords } = data;

                                          argsIgnorePattern

                                          The argsIgnorePattern option specifies exceptions not to check for usage: arguments whose names match a regexp pattern. For example, variables whose names begin with an underscore.

                                          Examples of correct code for the { "argsIgnorePattern": "^_" } option:

                                          /*eslint no-unused-vars: ["error", { "argsIgnorePattern": "^_" }]*/
                                          
                                          function foo(x, _y) {
                                              return x + 1;
                                          }
                                          foo();

                                          caughtErrors

                                          The caughtErrors option is used for catch block arguments validation.

                                          It has two settings:

                                          • none - do not check error objects. This is the default setting.
                                          • all - all named arguments must be used.

                                          caughtErrors: none

                                          Not specifying this rule is equivalent of assigning it to none.

                                          Examples of correct code for the { "caughtErrors": "none" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrors": "none" }]*/
                                          
                                          try {
                                              //...
                                          } catch (err) {
                                              console.error("errors");
                                          }

                                          caughtErrors: all

                                          Examples of incorrect code for the { "caughtErrors": "all" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrors": "all" }]*/
                                          
                                          // 1 error
                                          // "err" is defined but never used
                                          try {
                                              //...
                                          } catch (err) {
                                              console.error("errors");
                                          }

                                          caughtErrorsIgnorePattern

                                          The caughtErrorsIgnorePattern option specifies exceptions not to check for usage: catch arguments whose names match a regexp pattern. For example, variables whose names begin with a string 'ignore'.

                                          Examples of correct code for the { "caughtErrorsIgnorePattern": "^ignore" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrorsIgnorePattern": "^ignore" }]*/
                                          
                                          try {
                                              //...
                                          } catch (ignoreErr) {
                                              console.error("errors");
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about unused variables or function arguments, you can safely turn this rule off. Source: http://eslint.org/docs/rules/

                                          Missing trailing comma.
                                          Open

                                              }()

                                          require or disallow trailing commas (comma-dangle)

                                          Trailing commas in object literals are valid according to the ECMAScript 5 (and ECMAScript 3!) spec. However, IE8 (when not in IE8 document mode) and below will throw an error when it encounters trailing commas in JavaScript.

                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };

                                          Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. Another argument in favor of trailing commas is that it improves the clarity of diffs when an item is added or removed from an object or array:

                                          Less clear:

                                          var foo = {
                                          -    bar: "baz",
                                          -    qux: "quux"
                                          +    bar: "baz"
                                           };

                                          More clear:

                                          var foo = {
                                               bar: "baz",
                                          -    qux: "quux",
                                           };

                                          Rule Details

                                          This rule enforces consistent use of trailing commas in object and array literals.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "comma-dangle": ["error", "never"],
                                              // or
                                              "comma-dangle": ["error", {
                                                  "arrays": "never",
                                                  "objects": "never",
                                                  "imports": "never",
                                                  "exports": "never",
                                                  "functions": "ignore",
                                              }]
                                          }
                                          • "never" (default) disallows trailing commas
                                          • "always" requires trailing commas
                                          • "always-multiline" requires trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }
                                          • "only-multiline" allows (but does not require) trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }

                                          Trailing commas in function declarations and function calls are valid syntax since ECMAScript 2017; however, the string option does not check these situations for backwards compatibility.

                                          You can also use an object option to configure this rule for each type of syntax. Each of the following options can be set to "never", "always", "always-multiline", "only-multiline", or "ignore". The default for each option is "never" unless otherwise specified.

                                          • arrays is for array literals and array patterns of destructuring. (e.g. let [a,] = [1,];)
                                          • objects is for object literals and object patterns of destructuring. (e.g. let {a,} = {a: 1};)
                                          • imports is for import declarations of ES Modules. (e.g. import {a,} from "foo";)
                                          • exports is for export declarations of ES Modules. (e.g. export {a,};)
                                          • functions is for function declarations and function calls. (e.g. (function(a,){ })(b,);)
                                            functions is set to "ignore" by default for consistency with the string option.

                                          never

                                          Examples of incorrect code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          Examples of correct code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          always

                                          Examples of incorrect code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          always-multiline

                                          Examples of incorrect code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          only-multiline

                                          Examples of incorrect code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];

                                          Examples of correct code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          functions

                                          Examples of incorrect code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          Examples of correct code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of incorrect code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of correct code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with dangling commas. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                          return this._get_ghost_profile(namedId, profile);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Assignment to property of function parameter '_context2'.
                                          Open

                                                      switch (_context2.prev = _context2.next) {

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Unexpected 'this'.
                                          Open

                                                  return _ref3.apply(this, arguments);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          '_x7' is defined but never used.
                                          Open

                                                function _get_ghost_profile(_x6, _x7) {

                                          Disallow Unused Variables (no-unused-vars)

                                          Variables that are declared and not used anywhere in the code are most likely an error due to incomplete refactoring. Such variables take up space in the code and can lead to confusion by readers.

                                          Rule Details

                                          This rule is aimed at eliminating unused variables, functions, and parameters of functions.

                                          A variable is considered to be used if any of the following are true:

                                          • It represents a function that is called (doSomething())
                                          • It is read (var y = x)
                                          • It is passed into a function as an argument (doSomething(x))
                                          • It is read inside of a function that is passed to another function (doSomething(function() { foo(); }))

                                          A variable is not considered to be used if it is only ever assigned to (var x = 5) or declared.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-unused-vars: "error"*/
                                          /*global some_unused_var*/
                                          
                                          // It checks variables you have defined as global
                                          some_unused_var = 42;
                                          
                                          var x;
                                          
                                          // Write-only variables are not considered as used.
                                          var y = 10;
                                          y = 5;
                                          
                                          // A read for a modification of itself is not considered as used.
                                          var z = 0;
                                          z = z + 1;
                                          
                                          // By default, unused arguments cause warnings.
                                          (function(foo) {
                                              return 5;
                                          })();
                                          
                                          // Unused recursive functions also cause warnings.
                                          function fact(n) {
                                              if (n < 2) return 1;
                                              return n * fact(n - 1);
                                          }
                                          
                                          // When a function definition destructures an array, unused entries from the array also cause warnings.
                                          function getY([x, y]) {
                                              return y;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-unused-vars: "error"*/
                                          
                                          var x = 10;
                                          alert(x);
                                          
                                          // foo is considered used here
                                          myFunc(function foo() {
                                              // ...
                                          }.bind(this));
                                          
                                          (function(foo) {
                                              return foo;
                                          })();
                                          
                                          var myFunc;
                                          myFunc = setTimeout(function() {
                                              // myFunc is considered used
                                              myFunc();
                                          }, 50);
                                          
                                          // Only the second argument from the descructured array is used.
                                          function getY([, y]) {
                                              return y;
                                          }

                                          exported

                                          In environments outside of CommonJS or ECMAScript modules, you may use var to create a global variable that may be used by other scripts. You can use the /* exported variableName */ comment block to indicate that this variable is being exported and therefore should not be considered unused.

                                          Note that /* exported */ has no effect for any of the following:

                                          • when the environment is node or commonjs
                                          • when parserOptions.sourceType is module
                                          • when ecmaFeatures.globalReturn is true

                                          The line comment // exported variableName will not work as exported is not line-specific.

                                          Examples of correct code for /* exported variableName */ operation:

                                          /* exported global_var */
                                          
                                          var global_var = 42;

                                          Options

                                          This rule takes one argument which can be a string or an object. The string settings are the same as those of the vars property (explained below).

                                          By default this rule is enabled with all option for variables and after-used for arguments.

                                          {
                                              "rules": {
                                                  "no-unused-vars": ["error", { "vars": "all", "args": "after-used", "ignoreRestSiblings": false }]
                                              }
                                          }

                                          vars

                                          The vars option has two settings:

                                          • all checks all variables for usage, including those in the global scope. This is the default setting.
                                          • local checks only that locally-declared variables are used but will allow global variables to be unused.

                                          vars: local

                                          Examples of correct code for the { "vars": "local" } option:

                                          /*eslint no-unused-vars: ["error", { "vars": "local" }]*/
                                          /*global some_unused_var */
                                          
                                          some_unused_var = 42;

                                          varsIgnorePattern

                                          The varsIgnorePattern option specifies exceptions not to check for usage: variables whose names match a regexp pattern. For example, variables whose names contain ignored or Ignored.

                                          Examples of correct code for the { "varsIgnorePattern": "[iI]gnored" } option:

                                          /*eslint no-unused-vars: ["error", { "varsIgnorePattern": "[iI]gnored" }]*/
                                          
                                          var firstVarIgnored = 1;
                                          var secondVar = 2;
                                          console.log(secondVar);

                                          args

                                          The args option has three settings:

                                          • after-used - only the last argument must be used. This allows you, for instance, to have two named parameters to a function and as long as you use the second argument, ESLint will not warn you about the first. This is the default setting.
                                          • all - all named arguments must be used.
                                          • none - do not check arguments.

                                          args: after-used

                                          Examples of incorrect code for the default { "args": "after-used" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "after-used" }]*/
                                          
                                          // 1 error
                                          // "baz" is defined but never used
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          Examples of correct code for the default { "args": "after-used" } option:

                                          /*eslint no-unused-vars: ["error", {"args": "after-used"}]*/
                                          
                                          (function(foo, bar, baz) {
                                              return baz;
                                          })();

                                          args: all

                                          Examples of incorrect code for the { "args": "all" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "all" }]*/
                                          
                                          // 2 errors
                                          // "foo" is defined but never used
                                          // "baz" is defined but never used
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          args: none

                                          Examples of correct code for the { "args": "none" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "none" }]*/
                                          
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          ignoreRestSiblings

                                          The ignoreRestSiblings option is a boolean (default: false). Using a Rest Property it is possible to "omit" properties from an object, but by default the sibling properties are marked as "unused". With this option enabled the rest property's siblings are ignored.

                                          Examples of correct code for the { "ignoreRestSiblings": true } option:

                                          /*eslint no-unused-vars: ["error", { "ignoreRestSiblings": true }]*/
                                          // 'type' is ignored because it has a rest property sibling.
                                          var { type, ...coords } = data;

                                          argsIgnorePattern

                                          The argsIgnorePattern option specifies exceptions not to check for usage: arguments whose names match a regexp pattern. For example, variables whose names begin with an underscore.

                                          Examples of correct code for the { "argsIgnorePattern": "^_" } option:

                                          /*eslint no-unused-vars: ["error", { "argsIgnorePattern": "^_" }]*/
                                          
                                          function foo(x, _y) {
                                              return x + 1;
                                          }
                                          foo();

                                          caughtErrors

                                          The caughtErrors option is used for catch block arguments validation.

                                          It has two settings:

                                          • none - do not check error objects. This is the default setting.
                                          • all - all named arguments must be used.

                                          caughtErrors: none

                                          Not specifying this rule is equivalent of assigning it to none.

                                          Examples of correct code for the { "caughtErrors": "none" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrors": "none" }]*/
                                          
                                          try {
                                              //...
                                          } catch (err) {
                                              console.error("errors");
                                          }

                                          caughtErrors: all

                                          Examples of incorrect code for the { "caughtErrors": "all" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrors": "all" }]*/
                                          
                                          // 1 error
                                          // "err" is defined but never used
                                          try {
                                              //...
                                          } catch (err) {
                                              console.error("errors");
                                          }

                                          caughtErrorsIgnorePattern

                                          The caughtErrorsIgnorePattern option specifies exceptions not to check for usage: catch arguments whose names match a regexp pattern. For example, variables whose names begin with a string 'ignore'.

                                          Examples of correct code for the { "caughtErrorsIgnorePattern": "^ignore" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrorsIgnorePattern": "^ignore" }]*/
                                          
                                          try {
                                              //...
                                          } catch (ignoreErr) {
                                              console.error("errors");
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about unused variables or function arguments, you can safely turn this rule off. Source: http://eslint.org/docs/rules/

                                          Missing trailing comma.
                                          Open

                                              }()

                                          require or disallow trailing commas (comma-dangle)

                                          Trailing commas in object literals are valid according to the ECMAScript 5 (and ECMAScript 3!) spec. However, IE8 (when not in IE8 document mode) and below will throw an error when it encounters trailing commas in JavaScript.

                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };

                                          Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. Another argument in favor of trailing commas is that it improves the clarity of diffs when an item is added or removed from an object or array:

                                          Less clear:

                                          var foo = {
                                          -    bar: "baz",
                                          -    qux: "quux"
                                          +    bar: "baz"
                                           };

                                          More clear:

                                          var foo = {
                                               bar: "baz",
                                          -    qux: "quux",
                                           };

                                          Rule Details

                                          This rule enforces consistent use of trailing commas in object and array literals.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "comma-dangle": ["error", "never"],
                                              // or
                                              "comma-dangle": ["error", {
                                                  "arrays": "never",
                                                  "objects": "never",
                                                  "imports": "never",
                                                  "exports": "never",
                                                  "functions": "ignore",
                                              }]
                                          }
                                          • "never" (default) disallows trailing commas
                                          • "always" requires trailing commas
                                          • "always-multiline" requires trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }
                                          • "only-multiline" allows (but does not require) trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }

                                          Trailing commas in function declarations and function calls are valid syntax since ECMAScript 2017; however, the string option does not check these situations for backwards compatibility.

                                          You can also use an object option to configure this rule for each type of syntax. Each of the following options can be set to "never", "always", "always-multiline", "only-multiline", or "ignore". The default for each option is "never" unless otherwise specified.

                                          • arrays is for array literals and array patterns of destructuring. (e.g. let [a,] = [1,];)
                                          • objects is for object literals and object patterns of destructuring. (e.g. let {a,} = {a: 1};)
                                          • imports is for import declarations of ES Modules. (e.g. import {a,} from "foo";)
                                          • exports is for export declarations of ES Modules. (e.g. export {a,};)
                                          • functions is for function declarations and function calls. (e.g. (function(a,){ })(b,);)
                                            functions is set to "ignore" by default for consistency with the string option.

                                          never

                                          Examples of incorrect code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          Examples of correct code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          always

                                          Examples of incorrect code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          always-multiline

                                          Examples of incorrect code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          only-multiline

                                          Examples of incorrect code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];

                                          Examples of correct code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          functions

                                          Examples of incorrect code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          Examples of correct code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of incorrect code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of correct code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with dangling commas. Source: http://eslint.org/docs/rules/

                                          Assignment to property of function parameter '_context4'.
                                          Open

                                                      switch (_context4.prev = _context4.next) {

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Unexpected 'this'.
                                          Open

                                                  return _ref4.apply(this, arguments);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                  return _ref7.apply(this, arguments);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Missing trailing comma.
                                          Open

                                              }

                                          require or disallow trailing commas (comma-dangle)

                                          Trailing commas in object literals are valid according to the ECMAScript 5 (and ECMAScript 3!) spec. However, IE8 (when not in IE8 document mode) and below will throw an error when it encounters trailing commas in JavaScript.

                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };

                                          Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. Another argument in favor of trailing commas is that it improves the clarity of diffs when an item is added or removed from an object or array:

                                          Less clear:

                                          var foo = {
                                          -    bar: "baz",
                                          -    qux: "quux"
                                          +    bar: "baz"
                                           };

                                          More clear:

                                          var foo = {
                                               bar: "baz",
                                          -    qux: "quux",
                                           };

                                          Rule Details

                                          This rule enforces consistent use of trailing commas in object and array literals.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "comma-dangle": ["error", "never"],
                                              // or
                                              "comma-dangle": ["error", {
                                                  "arrays": "never",
                                                  "objects": "never",
                                                  "imports": "never",
                                                  "exports": "never",
                                                  "functions": "ignore",
                                              }]
                                          }
                                          • "never" (default) disallows trailing commas
                                          • "always" requires trailing commas
                                          • "always-multiline" requires trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }
                                          • "only-multiline" allows (but does not require) trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }

                                          Trailing commas in function declarations and function calls are valid syntax since ECMAScript 2017; however, the string option does not check these situations for backwards compatibility.

                                          You can also use an object option to configure this rule for each type of syntax. Each of the following options can be set to "never", "always", "always-multiline", "only-multiline", or "ignore". The default for each option is "never" unless otherwise specified.

                                          • arrays is for array literals and array patterns of destructuring. (e.g. let [a,] = [1,];)
                                          • objects is for object literals and object patterns of destructuring. (e.g. let {a,} = {a: 1};)
                                          • imports is for import declarations of ES Modules. (e.g. import {a,} from "foo";)
                                          • exports is for export declarations of ES Modules. (e.g. export {a,};)
                                          • functions is for function declarations and function calls. (e.g. (function(a,){ })(b,);)
                                            functions is set to "ignore" by default for consistency with the string option.

                                          never

                                          Examples of incorrect code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          Examples of correct code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          always

                                          Examples of incorrect code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          always-multiline

                                          Examples of incorrect code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          only-multiline

                                          Examples of incorrect code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];

                                          Examples of correct code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          functions

                                          Examples of incorrect code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          Examples of correct code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of incorrect code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of correct code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with dangling commas. Source: http://eslint.org/docs/rules/

                                          Missing trailing comma.
                                          Open

                                              }()

                                          require or disallow trailing commas (comma-dangle)

                                          Trailing commas in object literals are valid according to the ECMAScript 5 (and ECMAScript 3!) spec. However, IE8 (when not in IE8 document mode) and below will throw an error when it encounters trailing commas in JavaScript.

                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };

                                          Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. Another argument in favor of trailing commas is that it improves the clarity of diffs when an item is added or removed from an object or array:

                                          Less clear:

                                          var foo = {
                                          -    bar: "baz",
                                          -    qux: "quux"
                                          +    bar: "baz"
                                           };

                                          More clear:

                                          var foo = {
                                               bar: "baz",
                                          -    qux: "quux",
                                           };

                                          Rule Details

                                          This rule enforces consistent use of trailing commas in object and array literals.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "comma-dangle": ["error", "never"],
                                              // or
                                              "comma-dangle": ["error", {
                                                  "arrays": "never",
                                                  "objects": "never",
                                                  "imports": "never",
                                                  "exports": "never",
                                                  "functions": "ignore",
                                              }]
                                          }
                                          • "never" (default) disallows trailing commas
                                          • "always" requires trailing commas
                                          • "always-multiline" requires trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }
                                          • "only-multiline" allows (but does not require) trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }

                                          Trailing commas in function declarations and function calls are valid syntax since ECMAScript 2017; however, the string option does not check these situations for backwards compatibility.

                                          You can also use an object option to configure this rule for each type of syntax. Each of the following options can be set to "never", "always", "always-multiline", "only-multiline", or "ignore". The default for each option is "never" unless otherwise specified.

                                          • arrays is for array literals and array patterns of destructuring. (e.g. let [a,] = [1,];)
                                          • objects is for object literals and object patterns of destructuring. (e.g. let {a,} = {a: 1};)
                                          • imports is for import declarations of ES Modules. (e.g. import {a,} from "foo";)
                                          • exports is for export declarations of ES Modules. (e.g. export {a,};)
                                          • functions is for function declarations and function calls. (e.g. (function(a,){ })(b,);)
                                            functions is set to "ignore" by default for consistency with the string option.

                                          never

                                          Examples of incorrect code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          Examples of correct code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          always

                                          Examples of incorrect code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          always-multiline

                                          Examples of incorrect code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          only-multiline

                                          Examples of incorrect code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];

                                          Examples of correct code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          functions

                                          Examples of incorrect code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          Examples of correct code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of incorrect code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of correct code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with dangling commas. Source: http://eslint.org/docs/rules/

                                          Assignment to property of function parameter '_context2'.
                                          Open

                                                          _context2.t0 = profile;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Unexpected 'this'.
                                          Open

                                                          return this.components.NanikaStorage.ghost_profile(namedId);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                          return this._get_ghost_kernel(namedId, _profile.shellname, _profile.balloonname, routes, controllers, GhostViewClass);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Assignment to property of function parameter '_context2'.
                                          Open

                                                            _context2.next = 5;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Assignment to property of function parameter '_context3'.
                                          Open

                                                          _context3.next = 2;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          '_x5' is defined but never used.
                                          Open

                                                function loadGhost(_x, _x2, _x3, _x4, _x5) {

                                          Disallow Unused Variables (no-unused-vars)

                                          Variables that are declared and not used anywhere in the code are most likely an error due to incomplete refactoring. Such variables take up space in the code and can lead to confusion by readers.

                                          Rule Details

                                          This rule is aimed at eliminating unused variables, functions, and parameters of functions.

                                          A variable is considered to be used if any of the following are true:

                                          • It represents a function that is called (doSomething())
                                          • It is read (var y = x)
                                          • It is passed into a function as an argument (doSomething(x))
                                          • It is read inside of a function that is passed to another function (doSomething(function() { foo(); }))

                                          A variable is not considered to be used if it is only ever assigned to (var x = 5) or declared.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-unused-vars: "error"*/
                                          /*global some_unused_var*/
                                          
                                          // It checks variables you have defined as global
                                          some_unused_var = 42;
                                          
                                          var x;
                                          
                                          // Write-only variables are not considered as used.
                                          var y = 10;
                                          y = 5;
                                          
                                          // A read for a modification of itself is not considered as used.
                                          var z = 0;
                                          z = z + 1;
                                          
                                          // By default, unused arguments cause warnings.
                                          (function(foo) {
                                              return 5;
                                          })();
                                          
                                          // Unused recursive functions also cause warnings.
                                          function fact(n) {
                                              if (n < 2) return 1;
                                              return n * fact(n - 1);
                                          }
                                          
                                          // When a function definition destructures an array, unused entries from the array also cause warnings.
                                          function getY([x, y]) {
                                              return y;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-unused-vars: "error"*/
                                          
                                          var x = 10;
                                          alert(x);
                                          
                                          // foo is considered used here
                                          myFunc(function foo() {
                                              // ...
                                          }.bind(this));
                                          
                                          (function(foo) {
                                              return foo;
                                          })();
                                          
                                          var myFunc;
                                          myFunc = setTimeout(function() {
                                              // myFunc is considered used
                                              myFunc();
                                          }, 50);
                                          
                                          // Only the second argument from the descructured array is used.
                                          function getY([, y]) {
                                              return y;
                                          }

                                          exported

                                          In environments outside of CommonJS or ECMAScript modules, you may use var to create a global variable that may be used by other scripts. You can use the /* exported variableName */ comment block to indicate that this variable is being exported and therefore should not be considered unused.

                                          Note that /* exported */ has no effect for any of the following:

                                          • when the environment is node or commonjs
                                          • when parserOptions.sourceType is module
                                          • when ecmaFeatures.globalReturn is true

                                          The line comment // exported variableName will not work as exported is not line-specific.

                                          Examples of correct code for /* exported variableName */ operation:

                                          /* exported global_var */
                                          
                                          var global_var = 42;

                                          Options

                                          This rule takes one argument which can be a string or an object. The string settings are the same as those of the vars property (explained below).

                                          By default this rule is enabled with all option for variables and after-used for arguments.

                                          {
                                              "rules": {
                                                  "no-unused-vars": ["error", { "vars": "all", "args": "after-used", "ignoreRestSiblings": false }]
                                              }
                                          }

                                          vars

                                          The vars option has two settings:

                                          • all checks all variables for usage, including those in the global scope. This is the default setting.
                                          • local checks only that locally-declared variables are used but will allow global variables to be unused.

                                          vars: local

                                          Examples of correct code for the { "vars": "local" } option:

                                          /*eslint no-unused-vars: ["error", { "vars": "local" }]*/
                                          /*global some_unused_var */
                                          
                                          some_unused_var = 42;

                                          varsIgnorePattern

                                          The varsIgnorePattern option specifies exceptions not to check for usage: variables whose names match a regexp pattern. For example, variables whose names contain ignored or Ignored.

                                          Examples of correct code for the { "varsIgnorePattern": "[iI]gnored" } option:

                                          /*eslint no-unused-vars: ["error", { "varsIgnorePattern": "[iI]gnored" }]*/
                                          
                                          var firstVarIgnored = 1;
                                          var secondVar = 2;
                                          console.log(secondVar);

                                          args

                                          The args option has three settings:

                                          • after-used - only the last argument must be used. This allows you, for instance, to have two named parameters to a function and as long as you use the second argument, ESLint will not warn you about the first. This is the default setting.
                                          • all - all named arguments must be used.
                                          • none - do not check arguments.

                                          args: after-used

                                          Examples of incorrect code for the default { "args": "after-used" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "after-used" }]*/
                                          
                                          // 1 error
                                          // "baz" is defined but never used
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          Examples of correct code for the default { "args": "after-used" } option:

                                          /*eslint no-unused-vars: ["error", {"args": "after-used"}]*/
                                          
                                          (function(foo, bar, baz) {
                                              return baz;
                                          })();

                                          args: all

                                          Examples of incorrect code for the { "args": "all" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "all" }]*/
                                          
                                          // 2 errors
                                          // "foo" is defined but never used
                                          // "baz" is defined but never used
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          args: none

                                          Examples of correct code for the { "args": "none" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "none" }]*/
                                          
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          ignoreRestSiblings

                                          The ignoreRestSiblings option is a boolean (default: false). Using a Rest Property it is possible to "omit" properties from an object, but by default the sibling properties are marked as "unused". With this option enabled the rest property's siblings are ignored.

                                          Examples of correct code for the { "ignoreRestSiblings": true } option:

                                          /*eslint no-unused-vars: ["error", { "ignoreRestSiblings": true }]*/
                                          // 'type' is ignored because it has a rest property sibling.
                                          var { type, ...coords } = data;

                                          argsIgnorePattern

                                          The argsIgnorePattern option specifies exceptions not to check for usage: arguments whose names match a regexp pattern. For example, variables whose names begin with an underscore.

                                          Examples of correct code for the { "argsIgnorePattern": "^_" } option:

                                          /*eslint no-unused-vars: ["error", { "argsIgnorePattern": "^_" }]*/
                                          
                                          function foo(x, _y) {
                                              return x + 1;
                                          }
                                          foo();

                                          caughtErrors

                                          The caughtErrors option is used for catch block arguments validation.

                                          It has two settings:

                                          • none - do not check error objects. This is the default setting.
                                          • all - all named arguments must be used.

                                          caughtErrors: none

                                          Not specifying this rule is equivalent of assigning it to none.

                                          Examples of correct code for the { "caughtErrors": "none" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrors": "none" }]*/
                                          
                                          try {
                                              //...
                                          } catch (err) {
                                              console.error("errors");
                                          }

                                          caughtErrors: all

                                          Examples of incorrect code for the { "caughtErrors": "all" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrors": "all" }]*/
                                          
                                          // 1 error
                                          // "err" is defined but never used
                                          try {
                                              //...
                                          } catch (err) {
                                              console.error("errors");
                                          }

                                          caughtErrorsIgnorePattern

                                          The caughtErrorsIgnorePattern option specifies exceptions not to check for usage: catch arguments whose names match a regexp pattern. For example, variables whose names begin with a string 'ignore'.

                                          Examples of correct code for the { "caughtErrorsIgnorePattern": "^ignore" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrorsIgnorePattern": "^ignore" }]*/
                                          
                                          try {
                                              //...
                                          } catch (ignoreErr) {
                                              console.error("errors");
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about unused variables or function arguments, you can safely turn this rule off. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                  }, _callee3, this);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Assignment to property of function parameter '_context2'.
                                          Open

                                                          _context2.t0 = _context2.sent;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Missing trailing comma.
                                          Open

                                              }()

                                          require or disallow trailing commas (comma-dangle)

                                          Trailing commas in object literals are valid according to the ECMAScript 5 (and ECMAScript 3!) spec. However, IE8 (when not in IE8 document mode) and below will throw an error when it encounters trailing commas in JavaScript.

                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };

                                          Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. Another argument in favor of trailing commas is that it improves the clarity of diffs when an item is added or removed from an object or array:

                                          Less clear:

                                          var foo = {
                                          -    bar: "baz",
                                          -    qux: "quux"
                                          +    bar: "baz"
                                           };

                                          More clear:

                                          var foo = {
                                               bar: "baz",
                                          -    qux: "quux",
                                           };

                                          Rule Details

                                          This rule enforces consistent use of trailing commas in object and array literals.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "comma-dangle": ["error", "never"],
                                              // or
                                              "comma-dangle": ["error", {
                                                  "arrays": "never",
                                                  "objects": "never",
                                                  "imports": "never",
                                                  "exports": "never",
                                                  "functions": "ignore",
                                              }]
                                          }
                                          • "never" (default) disallows trailing commas
                                          • "always" requires trailing commas
                                          • "always-multiline" requires trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }
                                          • "only-multiline" allows (but does not require) trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }

                                          Trailing commas in function declarations and function calls are valid syntax since ECMAScript 2017; however, the string option does not check these situations for backwards compatibility.

                                          You can also use an object option to configure this rule for each type of syntax. Each of the following options can be set to "never", "always", "always-multiline", "only-multiline", or "ignore". The default for each option is "never" unless otherwise specified.

                                          • arrays is for array literals and array patterns of destructuring. (e.g. let [a,] = [1,];)
                                          • objects is for object literals and object patterns of destructuring. (e.g. let {a,} = {a: 1};)
                                          • imports is for import declarations of ES Modules. (e.g. import {a,} from "foo";)
                                          • exports is for export declarations of ES Modules. (e.g. export {a,};)
                                          • functions is for function declarations and function calls. (e.g. (function(a,){ })(b,);)
                                            functions is set to "ignore" by default for consistency with the string option.

                                          never

                                          Examples of incorrect code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          Examples of correct code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          always

                                          Examples of incorrect code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          always-multiline

                                          Examples of incorrect code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          only-multiline

                                          Examples of incorrect code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];

                                          Examples of correct code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          functions

                                          Examples of incorrect code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          Examples of correct code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of incorrect code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of correct code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with dangling commas. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                  return _ref2.apply(this, arguments);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Missing trailing comma.
                                          Open

                                                              TimerEventSource: _this.components.TimerEventSource

                                          require or disallow trailing commas (comma-dangle)

                                          Trailing commas in object literals are valid according to the ECMAScript 5 (and ECMAScript 3!) spec. However, IE8 (when not in IE8 document mode) and below will throw an error when it encounters trailing commas in JavaScript.

                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };

                                          Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. Another argument in favor of trailing commas is that it improves the clarity of diffs when an item is added or removed from an object or array:

                                          Less clear:

                                          var foo = {
                                          -    bar: "baz",
                                          -    qux: "quux"
                                          +    bar: "baz"
                                           };

                                          More clear:

                                          var foo = {
                                               bar: "baz",
                                          -    qux: "quux",
                                           };

                                          Rule Details

                                          This rule enforces consistent use of trailing commas in object and array literals.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "comma-dangle": ["error", "never"],
                                              // or
                                              "comma-dangle": ["error", {
                                                  "arrays": "never",
                                                  "objects": "never",
                                                  "imports": "never",
                                                  "exports": "never",
                                                  "functions": "ignore",
                                              }]
                                          }
                                          • "never" (default) disallows trailing commas
                                          • "always" requires trailing commas
                                          • "always-multiline" requires trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }
                                          • "only-multiline" allows (but does not require) trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }

                                          Trailing commas in function declarations and function calls are valid syntax since ECMAScript 2017; however, the string option does not check these situations for backwards compatibility.

                                          You can also use an object option to configure this rule for each type of syntax. Each of the following options can be set to "never", "always", "always-multiline", "only-multiline", or "ignore". The default for each option is "never" unless otherwise specified.

                                          • arrays is for array literals and array patterns of destructuring. (e.g. let [a,] = [1,];)
                                          • objects is for object literals and object patterns of destructuring. (e.g. let {a,} = {a: 1};)
                                          • imports is for import declarations of ES Modules. (e.g. import {a,} from "foo";)
                                          • exports is for export declarations of ES Modules. (e.g. export {a,};)
                                          • functions is for function declarations and function calls. (e.g. (function(a,){ })(b,);)
                                            functions is set to "ignore" by default for consistency with the string option.

                                          never

                                          Examples of incorrect code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          Examples of correct code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          always

                                          Examples of incorrect code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          always-multiline

                                          Examples of incorrect code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          only-multiline

                                          Examples of incorrect code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];

                                          Examples of correct code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          functions

                                          Examples of incorrect code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          Examples of correct code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of incorrect code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of correct code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with dangling commas. Source: http://eslint.org/docs/rules/

                                          Expected a default case.
                                          Open

                                                      switch (_context5.prev = _context5.next) {

                                          Require Default Case in Switch Statements (default-case)

                                          Some code conventions require that all switch statements have a default case, even if the default case is empty, such as:

                                          switch (foo) {
                                              case 1:
                                                  doSomething();
                                                  break;
                                          
                                              case 2:
                                                  doSomething();
                                                  break;
                                          
                                              default:
                                                  // do nothing
                                          }

                                          The thinking is that it's better to always explicitly state what the default behavior should be so that it's clear whether or not the developer forgot to include the default behavior by mistake.

                                          Other code conventions allow you to skip the default case so long as there is a comment indicating the omission is intentional, such as:

                                          switch (foo) {
                                              case 1:
                                                  doSomething();
                                                  break;
                                          
                                              case 2:
                                                  doSomething();
                                                  break;
                                          
                                              // no default
                                          }

                                          Once again, the intent here is to show that the developer intended for there to be no default behavior.

                                          Rule Details

                                          This rule aims to require default case in switch statements. You may optionally include a // no default after the last case if there is no default case. The comment may be in any desired case, such as // No Default.

                                          Examples of incorrect code for this rule:

                                          /*eslint default-case: "error"*/
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint default-case: "error"*/
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              default:
                                                  /* code */
                                                  break;
                                          }
                                          
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // no default
                                          }
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // No Default
                                          }

                                          Options

                                          This rule accepts a single options argument:

                                          • Set the commentPattern option to a regular expression string to change the default /^no default$/i comment test pattern

                                          commentPattern

                                          Examples of correct code for the { "commentPattern": "^skip\\sdefault" } option:

                                          /*eslint default-case: ["error", { "commentPattern": "^skip\\sdefault" }]*/
                                          
                                          switch(a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // skip default
                                          }
                                          
                                          switch(a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // skip default case
                                          }

                                          When Not To Use It

                                          If you don't want to enforce a default case for switch statements, you can safely disable this rule.

                                          Related Rules

                                          Assignment to property of function parameter '_context3'.
                                          Open

                                                      switch (_context3.prev = _context3.next) {

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Assignment to property of function parameter '_context3'.
                                          Open

                                                          _context3.next = 5;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Unexpected 'this'.
                                          Open

                                                  }, _callee4, this);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected constant condition.
                                          Open

                                                    while (1) {

                                          disallow constant expressions in conditions (no-constant-condition)

                                          A constant expression (for example, a literal) as a test condition might be a typo or development trigger for a specific behavior. For example, the following code looks as if it is not ready for production.

                                          if (false) {
                                              doSomethingUnfinished();
                                          }

                                          Rule Details

                                          This rule disallows constant expressions in the test condition of:

                                          • if, for, while, or do...while statement
                                          • ?: ternary expression

                                          Examples of incorrect code for this rule:

                                          /*eslint no-constant-condition: "error"*/
                                          
                                          if (false) {
                                              doSomethingUnfinished();
                                          }
                                          
                                          if (void x) {
                                              doSomethingUnfinished();
                                          }
                                          
                                          for (;-2;) {
                                              doSomethingForever();
                                          }
                                          
                                          while (typeof x) {
                                              doSomethingForever();
                                          }
                                          
                                          do {
                                              doSomethingForever();
                                          } while (x = -1);
                                          
                                          var result = 0 ? a : b;

                                          Examples of correct code for this rule:

                                          /*eslint no-constant-condition: "error"*/
                                          
                                          if (x === 0) {
                                              doSomething();
                                          }
                                          
                                          for (;;) {
                                              doSomethingForever();
                                          }
                                          
                                          while (typeof x === "undefined") {
                                              doSomething();
                                          }
                                          
                                          do {
                                              doSomething();
                                          } while (x);
                                          
                                          var result = x !== 0 ? a : b;

                                          Options

                                          checkLoops

                                          Set to true by default. Setting this option to false allows constant expressions in loops.

                                          Examples of correct code for when checkLoops is false:

                                          /*eslint no-constant-condition: ["error", { "checkLoops": false }]*/
                                          
                                          while (true) {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          };
                                          
                                          for (;true;) {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          };
                                          
                                          do {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          } while (true)

                                          Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                          this.emit('ghost_load', namedId);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                          return this._load_ghost(this.components.NanikaStorage.backend.fs, dirpath);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                          this.emit('ghost_loaded', namedId);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected constant condition.
                                          Open

                                                    while (1) {

                                          disallow constant expressions in conditions (no-constant-condition)

                                          A constant expression (for example, a literal) as a test condition might be a typo or development trigger for a specific behavior. For example, the following code looks as if it is not ready for production.

                                          if (false) {
                                              doSomethingUnfinished();
                                          }

                                          Rule Details

                                          This rule disallows constant expressions in the test condition of:

                                          • if, for, while, or do...while statement
                                          • ?: ternary expression

                                          Examples of incorrect code for this rule:

                                          /*eslint no-constant-condition: "error"*/
                                          
                                          if (false) {
                                              doSomethingUnfinished();
                                          }
                                          
                                          if (void x) {
                                              doSomethingUnfinished();
                                          }
                                          
                                          for (;-2;) {
                                              doSomethingForever();
                                          }
                                          
                                          while (typeof x) {
                                              doSomethingForever();
                                          }
                                          
                                          do {
                                              doSomethingForever();
                                          } while (x = -1);
                                          
                                          var result = 0 ? a : b;

                                          Examples of correct code for this rule:

                                          /*eslint no-constant-condition: "error"*/
                                          
                                          if (x === 0) {
                                              doSomething();
                                          }
                                          
                                          for (;;) {
                                              doSomethingForever();
                                          }
                                          
                                          while (typeof x === "undefined") {
                                              doSomething();
                                          }
                                          
                                          do {
                                              doSomething();
                                          } while (x);
                                          
                                          var result = x !== 0 ? a : b;

                                          Options

                                          checkLoops

                                          Set to true by default. Setting this option to false allows constant expressions in loops.

                                          Examples of correct code for when checkLoops is false:

                                          /*eslint no-constant-condition: ["error", { "checkLoops": false }]*/
                                          
                                          while (true) {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          };
                                          
                                          for (;true;) {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          };
                                          
                                          do {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          } while (true)

                                          Source: http://eslint.org/docs/rules/

                                          Expected a default case.
                                          Open

                                                      switch (_context4.prev = _context4.next) {

                                          Require Default Case in Switch Statements (default-case)

                                          Some code conventions require that all switch statements have a default case, even if the default case is empty, such as:

                                          switch (foo) {
                                              case 1:
                                                  doSomething();
                                                  break;
                                          
                                              case 2:
                                                  doSomething();
                                                  break;
                                          
                                              default:
                                                  // do nothing
                                          }

                                          The thinking is that it's better to always explicitly state what the default behavior should be so that it's clear whether or not the developer forgot to include the default behavior by mistake.

                                          Other code conventions allow you to skip the default case so long as there is a comment indicating the omission is intentional, such as:

                                          switch (foo) {
                                              case 1:
                                                  doSomething();
                                                  break;
                                          
                                              case 2:
                                                  doSomething();
                                                  break;
                                          
                                              // no default
                                          }

                                          Once again, the intent here is to show that the developer intended for there to be no default behavior.

                                          Rule Details

                                          This rule aims to require default case in switch statements. You may optionally include a // no default after the last case if there is no default case. The comment may be in any desired case, such as // No Default.

                                          Examples of incorrect code for this rule:

                                          /*eslint default-case: "error"*/
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint default-case: "error"*/
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              default:
                                                  /* code */
                                                  break;
                                          }
                                          
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // no default
                                          }
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // No Default
                                          }

                                          Options

                                          This rule accepts a single options argument:

                                          • Set the commentPattern option to a regular expression string to change the default /^no default$/i comment test pattern

                                          commentPattern

                                          Examples of correct code for the { "commentPattern": "^skip\\sdefault" } option:

                                          /*eslint default-case: ["error", { "commentPattern": "^skip\\sdefault" }]*/
                                          
                                          switch(a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // skip default
                                          }
                                          
                                          switch(a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // skip default case
                                          }

                                          When Not To Use It

                                          If you don't want to enforce a default case for switch statements, you can safely disable this rule.

                                          Related Rules

                                          Unexpected 'this'.
                                          Open

                                                  }, _callee5, this);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                  return _ref.apply(this, arguments);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected constant condition.
                                          Open

                                                    while (1) {

                                          disallow constant expressions in conditions (no-constant-condition)

                                          A constant expression (for example, a literal) as a test condition might be a typo or development trigger for a specific behavior. For example, the following code looks as if it is not ready for production.

                                          if (false) {
                                              doSomethingUnfinished();
                                          }

                                          Rule Details

                                          This rule disallows constant expressions in the test condition of:

                                          • if, for, while, or do...while statement
                                          • ?: ternary expression

                                          Examples of incorrect code for this rule:

                                          /*eslint no-constant-condition: "error"*/
                                          
                                          if (false) {
                                              doSomethingUnfinished();
                                          }
                                          
                                          if (void x) {
                                              doSomethingUnfinished();
                                          }
                                          
                                          for (;-2;) {
                                              doSomethingForever();
                                          }
                                          
                                          while (typeof x) {
                                              doSomethingForever();
                                          }
                                          
                                          do {
                                              doSomethingForever();
                                          } while (x = -1);
                                          
                                          var result = 0 ? a : b;

                                          Examples of correct code for this rule:

                                          /*eslint no-constant-condition: "error"*/
                                          
                                          if (x === 0) {
                                              doSomething();
                                          }
                                          
                                          for (;;) {
                                              doSomethingForever();
                                          }
                                          
                                          while (typeof x === "undefined") {
                                              doSomething();
                                          }
                                          
                                          do {
                                              doSomething();
                                          } while (x);
                                          
                                          var result = x !== 0 ? a : b;

                                          Options

                                          checkLoops

                                          Set to true by default. Setting this option to false allows constant expressions in loops.

                                          Examples of correct code for when checkLoops is false:

                                          /*eslint no-constant-condition: ["error", { "checkLoops": false }]*/
                                          
                                          while (true) {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          };
                                          
                                          for (;true;) {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          };
                                          
                                          do {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          } while (true)

                                          Source: http://eslint.org/docs/rules/

                                          Expected a 'break' statement before 'case'.
                                          Open

                                                        case 5:

                                          Disallow Case Statement Fallthrough (no-fallthrough)

                                          The switch statement in JavaScript is one of the more error-prone constructs of the language thanks in part to the ability to "fall through" from one case to the next. For example:

                                          switch(foo) {
                                              case 1:
                                                  doSomething();
                                          
                                              case 2:
                                                  doSomethingElse();
                                          }

                                          In this example, if foo is 1, then execution will flow through both cases, as the first falls through to the second. You can prevent this by using break, as in this example:

                                          switch(foo) {
                                              case 1:
                                                  doSomething();
                                                  break;
                                          
                                              case 2:
                                                  doSomethingElse();
                                          }

                                          That works fine when you don't want a fallthrough, but what if the fallthrough is intentional, there is no way to indicate that in the language. It's considered a best practice to always indicate when a fallthrough is intentional using a comment which matches the /falls?\s?through/i regular expression:

                                          switch(foo) {
                                              case 1:
                                                  doSomething();
                                                  // falls through
                                          
                                              case 2:
                                                  doSomethingElse();
                                          }
                                          
                                          switch(foo) {
                                              case 1:
                                                  doSomething();
                                                  // fall through
                                          
                                              case 2:
                                                  doSomethingElse();
                                          }
                                          
                                          switch(foo) {
                                              case 1:
                                                  doSomething();
                                                  // fallsthrough
                                          
                                              case 2:
                                                  doSomethingElse();
                                          }

                                          In this example, there is no confusion as to the expected behavior. It is clear that the first case is meant to fall through to the second case.

                                          Rule Details

                                          This rule is aimed at eliminating unintentional fallthrough of one case to the other. As such, it flags any fallthrough scenarios that are not marked by a comment.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-fallthrough: "error"*/
                                          
                                          switch(foo) {
                                              case 1:
                                                  doSomething();
                                          
                                              case 2:
                                                  doSomething();
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-fallthrough: "error"*/
                                          
                                          switch(foo) {
                                              case 1:
                                                  doSomething();
                                                  break;
                                          
                                              case 2:
                                                  doSomething();
                                          }
                                          
                                          function bar(foo) {
                                              switch(foo) {
                                                  case 1:
                                                      doSomething();
                                                      return;
                                          
                                                  case 2:
                                                      doSomething();
                                              }
                                          }
                                          
                                          switch(foo) {
                                              case 1:
                                                  doSomething();
                                                  throw new Error("Boo!");
                                          
                                              case 2:
                                                  doSomething();
                                          }
                                          
                                          switch(foo) {
                                              case 1:
                                              case 2:
                                                  doSomething();
                                          }
                                          
                                          switch(foo) {
                                              case 1:
                                                  doSomething();
                                                  // falls through
                                          
                                              case 2:
                                                  doSomething();
                                          }

                                          Note that the last case statement in these examples does not cause a warning because there is nothing to fall through into.

                                          Options

                                          This rule accepts a single options argument:

                                          • Set the commentPattern option to a regular expression string to change the test for intentional fallthrough comment

                                          commentPattern

                                          Examples of correct code for the { "commentPattern": "break[\\s\\w]*omitted" } option:

                                          /*eslint no-fallthrough: ["error", { "commentPattern": "break[\\s\\w]*omitted" }]*/
                                          
                                          switch(foo) {
                                              case 1:
                                                  doSomething();
                                                  // break omitted
                                          
                                              case 2:
                                                  doSomething();
                                          }
                                          
                                          switch(foo) {
                                              case 1:
                                                  doSomething();
                                                  // caution: break is omitted intentionally
                                          
                                              default:
                                                  doSomething();
                                          }

                                          When Not To Use It

                                          If you don't want to enforce that each case statement should end with a throw, return, break, or comment, then you can safely turn this rule off.

                                          Related Rules

                                          Expected a default case.
                                          Open

                                                      switch (_context3.prev = _context3.next) {

                                          Require Default Case in Switch Statements (default-case)

                                          Some code conventions require that all switch statements have a default case, even if the default case is empty, such as:

                                          switch (foo) {
                                              case 1:
                                                  doSomething();
                                                  break;
                                          
                                              case 2:
                                                  doSomething();
                                                  break;
                                          
                                              default:
                                                  // do nothing
                                          }

                                          The thinking is that it's better to always explicitly state what the default behavior should be so that it's clear whether or not the developer forgot to include the default behavior by mistake.

                                          Other code conventions allow you to skip the default case so long as there is a comment indicating the omission is intentional, such as:

                                          switch (foo) {
                                              case 1:
                                                  doSomething();
                                                  break;
                                          
                                              case 2:
                                                  doSomething();
                                                  break;
                                          
                                              // no default
                                          }

                                          Once again, the intent here is to show that the developer intended for there to be no default behavior.

                                          Rule Details

                                          This rule aims to require default case in switch statements. You may optionally include a // no default after the last case if there is no default case. The comment may be in any desired case, such as // No Default.

                                          Examples of incorrect code for this rule:

                                          /*eslint default-case: "error"*/
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint default-case: "error"*/
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              default:
                                                  /* code */
                                                  break;
                                          }
                                          
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // no default
                                          }
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // No Default
                                          }

                                          Options

                                          This rule accepts a single options argument:

                                          • Set the commentPattern option to a regular expression string to change the default /^no default$/i comment test pattern

                                          commentPattern

                                          Examples of correct code for the { "commentPattern": "^skip\\sdefault" } option:

                                          /*eslint default-case: ["error", { "commentPattern": "^skip\\sdefault" }]*/
                                          
                                          switch(a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // skip default
                                          }
                                          
                                          switch(a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // skip default case
                                          }

                                          When Not To Use It

                                          If you don't want to enforce a default case for switch statements, you can safely disable this rule.

                                          Related Rules

                                          '_x19' is defined but never used.
                                          Open

                                                function _get_ghost(_x19) {

                                          Disallow Unused Variables (no-unused-vars)

                                          Variables that are declared and not used anywhere in the code are most likely an error due to incomplete refactoring. Such variables take up space in the code and can lead to confusion by readers.

                                          Rule Details

                                          This rule is aimed at eliminating unused variables, functions, and parameters of functions.

                                          A variable is considered to be used if any of the following are true:

                                          • It represents a function that is called (doSomething())
                                          • It is read (var y = x)
                                          • It is passed into a function as an argument (doSomething(x))
                                          • It is read inside of a function that is passed to another function (doSomething(function() { foo(); }))

                                          A variable is not considered to be used if it is only ever assigned to (var x = 5) or declared.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-unused-vars: "error"*/
                                          /*global some_unused_var*/
                                          
                                          // It checks variables you have defined as global
                                          some_unused_var = 42;
                                          
                                          var x;
                                          
                                          // Write-only variables are not considered as used.
                                          var y = 10;
                                          y = 5;
                                          
                                          // A read for a modification of itself is not considered as used.
                                          var z = 0;
                                          z = z + 1;
                                          
                                          // By default, unused arguments cause warnings.
                                          (function(foo) {
                                              return 5;
                                          })();
                                          
                                          // Unused recursive functions also cause warnings.
                                          function fact(n) {
                                              if (n < 2) return 1;
                                              return n * fact(n - 1);
                                          }
                                          
                                          // When a function definition destructures an array, unused entries from the array also cause warnings.
                                          function getY([x, y]) {
                                              return y;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-unused-vars: "error"*/
                                          
                                          var x = 10;
                                          alert(x);
                                          
                                          // foo is considered used here
                                          myFunc(function foo() {
                                              // ...
                                          }.bind(this));
                                          
                                          (function(foo) {
                                              return foo;
                                          })();
                                          
                                          var myFunc;
                                          myFunc = setTimeout(function() {
                                              // myFunc is considered used
                                              myFunc();
                                          }, 50);
                                          
                                          // Only the second argument from the descructured array is used.
                                          function getY([, y]) {
                                              return y;
                                          }

                                          exported

                                          In environments outside of CommonJS or ECMAScript modules, you may use var to create a global variable that may be used by other scripts. You can use the /* exported variableName */ comment block to indicate that this variable is being exported and therefore should not be considered unused.

                                          Note that /* exported */ has no effect for any of the following:

                                          • when the environment is node or commonjs
                                          • when parserOptions.sourceType is module
                                          • when ecmaFeatures.globalReturn is true

                                          The line comment // exported variableName will not work as exported is not line-specific.

                                          Examples of correct code for /* exported variableName */ operation:

                                          /* exported global_var */
                                          
                                          var global_var = 42;

                                          Options

                                          This rule takes one argument which can be a string or an object. The string settings are the same as those of the vars property (explained below).

                                          By default this rule is enabled with all option for variables and after-used for arguments.

                                          {
                                              "rules": {
                                                  "no-unused-vars": ["error", { "vars": "all", "args": "after-used", "ignoreRestSiblings": false }]
                                              }
                                          }

                                          vars

                                          The vars option has two settings:

                                          • all checks all variables for usage, including those in the global scope. This is the default setting.
                                          • local checks only that locally-declared variables are used but will allow global variables to be unused.

                                          vars: local

                                          Examples of correct code for the { "vars": "local" } option:

                                          /*eslint no-unused-vars: ["error", { "vars": "local" }]*/
                                          /*global some_unused_var */
                                          
                                          some_unused_var = 42;

                                          varsIgnorePattern

                                          The varsIgnorePattern option specifies exceptions not to check for usage: variables whose names match a regexp pattern. For example, variables whose names contain ignored or Ignored.

                                          Examples of correct code for the { "varsIgnorePattern": "[iI]gnored" } option:

                                          /*eslint no-unused-vars: ["error", { "varsIgnorePattern": "[iI]gnored" }]*/
                                          
                                          var firstVarIgnored = 1;
                                          var secondVar = 2;
                                          console.log(secondVar);

                                          args

                                          The args option has three settings:

                                          • after-used - only the last argument must be used. This allows you, for instance, to have two named parameters to a function and as long as you use the second argument, ESLint will not warn you about the first. This is the default setting.
                                          • all - all named arguments must be used.
                                          • none - do not check arguments.

                                          args: after-used

                                          Examples of incorrect code for the default { "args": "after-used" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "after-used" }]*/
                                          
                                          // 1 error
                                          // "baz" is defined but never used
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          Examples of correct code for the default { "args": "after-used" } option:

                                          /*eslint no-unused-vars: ["error", {"args": "after-used"}]*/
                                          
                                          (function(foo, bar, baz) {
                                              return baz;
                                          })();

                                          args: all

                                          Examples of incorrect code for the { "args": "all" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "all" }]*/
                                          
                                          // 2 errors
                                          // "foo" is defined but never used
                                          // "baz" is defined but never used
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          args: none

                                          Examples of correct code for the { "args": "none" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "none" }]*/
                                          
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          ignoreRestSiblings

                                          The ignoreRestSiblings option is a boolean (default: false). Using a Rest Property it is possible to "omit" properties from an object, but by default the sibling properties are marked as "unused". With this option enabled the rest property's siblings are ignored.

                                          Examples of correct code for the { "ignoreRestSiblings": true } option:

                                          /*eslint no-unused-vars: ["error", { "ignoreRestSiblings": true }]*/
                                          // 'type' is ignored because it has a rest property sibling.
                                          var { type, ...coords } = data;

                                          argsIgnorePattern

                                          The argsIgnorePattern option specifies exceptions not to check for usage: arguments whose names match a regexp pattern. For example, variables whose names begin with an underscore.

                                          Examples of correct code for the { "argsIgnorePattern": "^_" } option:

                                          /*eslint no-unused-vars: ["error", { "argsIgnorePattern": "^_" }]*/
                                          
                                          function foo(x, _y) {
                                              return x + 1;
                                          }
                                          foo();

                                          caughtErrors

                                          The caughtErrors option is used for catch block arguments validation.

                                          It has two settings:

                                          • none - do not check error objects. This is the default setting.
                                          • all - all named arguments must be used.

                                          caughtErrors: none

                                          Not specifying this rule is equivalent of assigning it to none.

                                          Examples of correct code for the { "caughtErrors": "none" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrors": "none" }]*/
                                          
                                          try {
                                              //...
                                          } catch (err) {
                                              console.error("errors");
                                          }

                                          caughtErrors: all

                                          Examples of incorrect code for the { "caughtErrors": "all" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrors": "all" }]*/
                                          
                                          // 1 error
                                          // "err" is defined but never used
                                          try {
                                              //...
                                          } catch (err) {
                                              console.error("errors");
                                          }

                                          caughtErrorsIgnorePattern

                                          The caughtErrorsIgnorePattern option specifies exceptions not to check for usage: catch arguments whose names match a regexp pattern. For example, variables whose names begin with a string 'ignore'.

                                          Examples of correct code for the { "caughtErrorsIgnorePattern": "^ignore" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrorsIgnorePattern": "^ignore" }]*/
                                          
                                          try {
                                              //...
                                          } catch (ignoreErr) {
                                              console.error("errors");
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about unused variables or function arguments, you can safely turn this rule off. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                  }, _callee2, this);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Assignment to property of function parameter '_context5'.
                                          Open

                                                      switch (_context5.prev = _context5.next) {

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Assignment to property of function parameter '_context5'.
                                          Open

                                                          _context5.next = 4;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Unexpected 'this'.
                                          Open

                                                          return this._load_ghost(this.components.NanikaStorage.backend.fs, dirpath);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected constant condition.
                                          Open

                                                    while (1) {

                                          disallow constant expressions in conditions (no-constant-condition)

                                          A constant expression (for example, a literal) as a test condition might be a typo or development trigger for a specific behavior. For example, the following code looks as if it is not ready for production.

                                          if (false) {
                                              doSomethingUnfinished();
                                          }

                                          Rule Details

                                          This rule disallows constant expressions in the test condition of:

                                          • if, for, while, or do...while statement
                                          • ?: ternary expression

                                          Examples of incorrect code for this rule:

                                          /*eslint no-constant-condition: "error"*/
                                          
                                          if (false) {
                                              doSomethingUnfinished();
                                          }
                                          
                                          if (void x) {
                                              doSomethingUnfinished();
                                          }
                                          
                                          for (;-2;) {
                                              doSomethingForever();
                                          }
                                          
                                          while (typeof x) {
                                              doSomethingForever();
                                          }
                                          
                                          do {
                                              doSomethingForever();
                                          } while (x = -1);
                                          
                                          var result = 0 ? a : b;

                                          Examples of correct code for this rule:

                                          /*eslint no-constant-condition: "error"*/
                                          
                                          if (x === 0) {
                                              doSomething();
                                          }
                                          
                                          for (;;) {
                                              doSomethingForever();
                                          }
                                          
                                          while (typeof x === "undefined") {
                                              doSomething();
                                          }
                                          
                                          do {
                                              doSomething();
                                          } while (x);
                                          
                                          var result = x !== 0 ? a : b;

                                          Options

                                          checkLoops

                                          Set to true by default. Setting this option to false allows constant expressions in loops.

                                          Examples of correct code for when checkLoops is false:

                                          /*eslint no-constant-condition: ["error", { "checkLoops": false }]*/
                                          
                                          while (true) {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          };
                                          
                                          for (;true;) {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          };
                                          
                                          do {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          } while (true)

                                          Source: http://eslint.org/docs/rules/

                                          Expected a default case.
                                          Open

                                                      switch (_context2.prev = _context2.next) {

                                          Require Default Case in Switch Statements (default-case)

                                          Some code conventions require that all switch statements have a default case, even if the default case is empty, such as:

                                          switch (foo) {
                                              case 1:
                                                  doSomething();
                                                  break;
                                          
                                              case 2:
                                                  doSomething();
                                                  break;
                                          
                                              default:
                                                  // do nothing
                                          }

                                          The thinking is that it's better to always explicitly state what the default behavior should be so that it's clear whether or not the developer forgot to include the default behavior by mistake.

                                          Other code conventions allow you to skip the default case so long as there is a comment indicating the omission is intentional, such as:

                                          switch (foo) {
                                              case 1:
                                                  doSomething();
                                                  break;
                                          
                                              case 2:
                                                  doSomething();
                                                  break;
                                          
                                              // no default
                                          }

                                          Once again, the intent here is to show that the developer intended for there to be no default behavior.

                                          Rule Details

                                          This rule aims to require default case in switch statements. You may optionally include a // no default after the last case if there is no default case. The comment may be in any desired case, such as // No Default.

                                          Examples of incorrect code for this rule:

                                          /*eslint default-case: "error"*/
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint default-case: "error"*/
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              default:
                                                  /* code */
                                                  break;
                                          }
                                          
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // no default
                                          }
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // No Default
                                          }

                                          Options

                                          This rule accepts a single options argument:

                                          • Set the commentPattern option to a regular expression string to change the default /^no default$/i comment test pattern

                                          commentPattern

                                          Examples of correct code for the { "commentPattern": "^skip\\sdefault" } option:

                                          /*eslint default-case: ["error", { "commentPattern": "^skip\\sdefault" }]*/
                                          
                                          switch(a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // skip default
                                          }
                                          
                                          switch(a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // skip default case
                                          }

                                          When Not To Use It

                                          If you don't want to enforce a default case for switch statements, you can safely disable this rule.

                                          Related Rules

                                          '_x12' is defined but never used.
                                          Open

                                                function _getGhostKernelAsProfile(_x8, _x9, _x10, _x11, _x12) {

                                          Disallow Unused Variables (no-unused-vars)

                                          Variables that are declared and not used anywhere in the code are most likely an error due to incomplete refactoring. Such variables take up space in the code and can lead to confusion by readers.

                                          Rule Details

                                          This rule is aimed at eliminating unused variables, functions, and parameters of functions.

                                          A variable is considered to be used if any of the following are true:

                                          • It represents a function that is called (doSomething())
                                          • It is read (var y = x)
                                          • It is passed into a function as an argument (doSomething(x))
                                          • It is read inside of a function that is passed to another function (doSomething(function() { foo(); }))

                                          A variable is not considered to be used if it is only ever assigned to (var x = 5) or declared.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-unused-vars: "error"*/
                                          /*global some_unused_var*/
                                          
                                          // It checks variables you have defined as global
                                          some_unused_var = 42;
                                          
                                          var x;
                                          
                                          // Write-only variables are not considered as used.
                                          var y = 10;
                                          y = 5;
                                          
                                          // A read for a modification of itself is not considered as used.
                                          var z = 0;
                                          z = z + 1;
                                          
                                          // By default, unused arguments cause warnings.
                                          (function(foo) {
                                              return 5;
                                          })();
                                          
                                          // Unused recursive functions also cause warnings.
                                          function fact(n) {
                                              if (n < 2) return 1;
                                              return n * fact(n - 1);
                                          }
                                          
                                          // When a function definition destructures an array, unused entries from the array also cause warnings.
                                          function getY([x, y]) {
                                              return y;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-unused-vars: "error"*/
                                          
                                          var x = 10;
                                          alert(x);
                                          
                                          // foo is considered used here
                                          myFunc(function foo() {
                                              // ...
                                          }.bind(this));
                                          
                                          (function(foo) {
                                              return foo;
                                          })();
                                          
                                          var myFunc;
                                          myFunc = setTimeout(function() {
                                              // myFunc is considered used
                                              myFunc();
                                          }, 50);
                                          
                                          // Only the second argument from the descructured array is used.
                                          function getY([, y]) {
                                              return y;
                                          }

                                          exported

                                          In environments outside of CommonJS or ECMAScript modules, you may use var to create a global variable that may be used by other scripts. You can use the /* exported variableName */ comment block to indicate that this variable is being exported and therefore should not be considered unused.

                                          Note that /* exported */ has no effect for any of the following:

                                          • when the environment is node or commonjs
                                          • when parserOptions.sourceType is module
                                          • when ecmaFeatures.globalReturn is true

                                          The line comment // exported variableName will not work as exported is not line-specific.

                                          Examples of correct code for /* exported variableName */ operation:

                                          /* exported global_var */
                                          
                                          var global_var = 42;

                                          Options

                                          This rule takes one argument which can be a string or an object. The string settings are the same as those of the vars property (explained below).

                                          By default this rule is enabled with all option for variables and after-used for arguments.

                                          {
                                              "rules": {
                                                  "no-unused-vars": ["error", { "vars": "all", "args": "after-used", "ignoreRestSiblings": false }]
                                              }
                                          }

                                          vars

                                          The vars option has two settings:

                                          • all checks all variables for usage, including those in the global scope. This is the default setting.
                                          • local checks only that locally-declared variables are used but will allow global variables to be unused.

                                          vars: local

                                          Examples of correct code for the { "vars": "local" } option:

                                          /*eslint no-unused-vars: ["error", { "vars": "local" }]*/
                                          /*global some_unused_var */
                                          
                                          some_unused_var = 42;

                                          varsIgnorePattern

                                          The varsIgnorePattern option specifies exceptions not to check for usage: variables whose names match a regexp pattern. For example, variables whose names contain ignored or Ignored.

                                          Examples of correct code for the { "varsIgnorePattern": "[iI]gnored" } option:

                                          /*eslint no-unused-vars: ["error", { "varsIgnorePattern": "[iI]gnored" }]*/
                                          
                                          var firstVarIgnored = 1;
                                          var secondVar = 2;
                                          console.log(secondVar);

                                          args

                                          The args option has three settings:

                                          • after-used - only the last argument must be used. This allows you, for instance, to have two named parameters to a function and as long as you use the second argument, ESLint will not warn you about the first. This is the default setting.
                                          • all - all named arguments must be used.
                                          • none - do not check arguments.

                                          args: after-used

                                          Examples of incorrect code for the default { "args": "after-used" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "after-used" }]*/
                                          
                                          // 1 error
                                          // "baz" is defined but never used
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          Examples of correct code for the default { "args": "after-used" } option:

                                          /*eslint no-unused-vars: ["error", {"args": "after-used"}]*/
                                          
                                          (function(foo, bar, baz) {
                                              return baz;
                                          })();

                                          args: all

                                          Examples of incorrect code for the { "args": "all" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "all" }]*/
                                          
                                          // 2 errors
                                          // "foo" is defined but never used
                                          // "baz" is defined but never used
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          args: none

                                          Examples of correct code for the { "args": "none" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "none" }]*/
                                          
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          ignoreRestSiblings

                                          The ignoreRestSiblings option is a boolean (default: false). Using a Rest Property it is possible to "omit" properties from an object, but by default the sibling properties are marked as "unused". With this option enabled the rest property's siblings are ignored.

                                          Examples of correct code for the { "ignoreRestSiblings": true } option:

                                          /*eslint no-unused-vars: ["error", { "ignoreRestSiblings": true }]*/
                                          // 'type' is ignored because it has a rest property sibling.
                                          var { type, ...coords } = data;

                                          argsIgnorePattern

                                          The argsIgnorePattern option specifies exceptions not to check for usage: arguments whose names match a regexp pattern. For example, variables whose names begin with an underscore.

                                          Examples of correct code for the { "argsIgnorePattern": "^_" } option:

                                          /*eslint no-unused-vars: ["error", { "argsIgnorePattern": "^_" }]*/
                                          
                                          function foo(x, _y) {
                                              return x + 1;
                                          }
                                          foo();

                                          caughtErrors

                                          The caughtErrors option is used for catch block arguments validation.

                                          It has two settings:

                                          • none - do not check error objects. This is the default setting.
                                          • all - all named arguments must be used.

                                          caughtErrors: none

                                          Not specifying this rule is equivalent of assigning it to none.

                                          Examples of correct code for the { "caughtErrors": "none" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrors": "none" }]*/
                                          
                                          try {
                                              //...
                                          } catch (err) {
                                              console.error("errors");
                                          }

                                          caughtErrors: all

                                          Examples of incorrect code for the { "caughtErrors": "all" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrors": "all" }]*/
                                          
                                          // 1 error
                                          // "err" is defined but never used
                                          try {
                                              //...
                                          } catch (err) {
                                              console.error("errors");
                                          }

                                          caughtErrorsIgnorePattern

                                          The caughtErrorsIgnorePattern option specifies exceptions not to check for usage: catch arguments whose names match a regexp pattern. For example, variables whose names begin with a string 'ignore'.

                                          Examples of correct code for the { "caughtErrorsIgnorePattern": "^ignore" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrorsIgnorePattern": "^ignore" }]*/
                                          
                                          try {
                                              //...
                                          } catch (ignoreErr) {
                                              console.error("errors");
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about unused variables or function arguments, you can safely turn this rule off. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                          this.emit('load_shell_files', namedId, shellname);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Missing trailing comma.
                                          Open

                                              }()

                                          require or disallow trailing commas (comma-dangle)

                                          Trailing commas in object literals are valid according to the ECMAScript 5 (and ECMAScript 3!) spec. However, IE8 (when not in IE8 document mode) and below will throw an error when it encounters trailing commas in JavaScript.

                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };

                                          Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. Another argument in favor of trailing commas is that it improves the clarity of diffs when an item is added or removed from an object or array:

                                          Less clear:

                                          var foo = {
                                          -    bar: "baz",
                                          -    qux: "quux"
                                          +    bar: "baz"
                                           };

                                          More clear:

                                          var foo = {
                                               bar: "baz",
                                          -    qux: "quux",
                                           };

                                          Rule Details

                                          This rule enforces consistent use of trailing commas in object and array literals.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "comma-dangle": ["error", "never"],
                                              // or
                                              "comma-dangle": ["error", {
                                                  "arrays": "never",
                                                  "objects": "never",
                                                  "imports": "never",
                                                  "exports": "never",
                                                  "functions": "ignore",
                                              }]
                                          }
                                          • "never" (default) disallows trailing commas
                                          • "always" requires trailing commas
                                          • "always-multiline" requires trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }
                                          • "only-multiline" allows (but does not require) trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }

                                          Trailing commas in function declarations and function calls are valid syntax since ECMAScript 2017; however, the string option does not check these situations for backwards compatibility.

                                          You can also use an object option to configure this rule for each type of syntax. Each of the following options can be set to "never", "always", "always-multiline", "only-multiline", or "ignore". The default for each option is "never" unless otherwise specified.

                                          • arrays is for array literals and array patterns of destructuring. (e.g. let [a,] = [1,];)
                                          • objects is for object literals and object patterns of destructuring. (e.g. let {a,} = {a: 1};)
                                          • imports is for import declarations of ES Modules. (e.g. import {a,} from "foo";)
                                          • exports is for export declarations of ES Modules. (e.g. export {a,};)
                                          • functions is for function declarations and function calls. (e.g. (function(a,){ })(b,);)
                                            functions is set to "ignore" by default for consistency with the string option.

                                          never

                                          Examples of incorrect code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          Examples of correct code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          always

                                          Examples of incorrect code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          always-multiline

                                          Examples of incorrect code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          only-multiline

                                          Examples of incorrect code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];

                                          Examples of correct code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          functions

                                          Examples of incorrect code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          Examples of correct code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of incorrect code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of correct code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with dangling commas. Source: http://eslint.org/docs/rules/

                                          Missing trailing comma.
                                          Open

                                              }()

                                          require or disallow trailing commas (comma-dangle)

                                          Trailing commas in object literals are valid according to the ECMAScript 5 (and ECMAScript 3!) spec. However, IE8 (when not in IE8 document mode) and below will throw an error when it encounters trailing commas in JavaScript.

                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };

                                          Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. Another argument in favor of trailing commas is that it improves the clarity of diffs when an item is added or removed from an object or array:

                                          Less clear:

                                          var foo = {
                                          -    bar: "baz",
                                          -    qux: "quux"
                                          +    bar: "baz"
                                           };

                                          More clear:

                                          var foo = {
                                               bar: "baz",
                                          -    qux: "quux",
                                           };

                                          Rule Details

                                          This rule enforces consistent use of trailing commas in object and array literals.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "comma-dangle": ["error", "never"],
                                              // or
                                              "comma-dangle": ["error", {
                                                  "arrays": "never",
                                                  "objects": "never",
                                                  "imports": "never",
                                                  "exports": "never",
                                                  "functions": "ignore",
                                              }]
                                          }
                                          • "never" (default) disallows trailing commas
                                          • "always" requires trailing commas
                                          • "always-multiline" requires trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }
                                          • "only-multiline" allows (but does not require) trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }

                                          Trailing commas in function declarations and function calls are valid syntax since ECMAScript 2017; however, the string option does not check these situations for backwards compatibility.

                                          You can also use an object option to configure this rule for each type of syntax. Each of the following options can be set to "never", "always", "always-multiline", "only-multiline", or "ignore". The default for each option is "never" unless otherwise specified.

                                          • arrays is for array literals and array patterns of destructuring. (e.g. let [a,] = [1,];)
                                          • objects is for object literals and object patterns of destructuring. (e.g. let {a,} = {a: 1};)
                                          • imports is for import declarations of ES Modules. (e.g. import {a,} from "foo";)
                                          • exports is for export declarations of ES Modules. (e.g. export {a,};)
                                          • functions is for function declarations and function calls. (e.g. (function(a,){ })(b,);)
                                            functions is set to "ignore" by default for consistency with the string option.

                                          never

                                          Examples of incorrect code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          Examples of correct code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          always

                                          Examples of incorrect code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          always-multiline

                                          Examples of incorrect code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          only-multiline

                                          Examples of incorrect code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];

                                          Examples of correct code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          functions

                                          Examples of incorrect code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          Examples of correct code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of incorrect code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of correct code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with dangling commas. Source: http://eslint.org/docs/rules/

                                          '_x21' is defined but never used.
                                          Open

                                                function _load_ghost(_x20, _x21) {

                                          Disallow Unused Variables (no-unused-vars)

                                          Variables that are declared and not used anywhere in the code are most likely an error due to incomplete refactoring. Such variables take up space in the code and can lead to confusion by readers.

                                          Rule Details

                                          This rule is aimed at eliminating unused variables, functions, and parameters of functions.

                                          A variable is considered to be used if any of the following are true:

                                          • It represents a function that is called (doSomething())
                                          • It is read (var y = x)
                                          • It is passed into a function as an argument (doSomething(x))
                                          • It is read inside of a function that is passed to another function (doSomething(function() { foo(); }))

                                          A variable is not considered to be used if it is only ever assigned to (var x = 5) or declared.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-unused-vars: "error"*/
                                          /*global some_unused_var*/
                                          
                                          // It checks variables you have defined as global
                                          some_unused_var = 42;
                                          
                                          var x;
                                          
                                          // Write-only variables are not considered as used.
                                          var y = 10;
                                          y = 5;
                                          
                                          // A read for a modification of itself is not considered as used.
                                          var z = 0;
                                          z = z + 1;
                                          
                                          // By default, unused arguments cause warnings.
                                          (function(foo) {
                                              return 5;
                                          })();
                                          
                                          // Unused recursive functions also cause warnings.
                                          function fact(n) {
                                              if (n < 2) return 1;
                                              return n * fact(n - 1);
                                          }
                                          
                                          // When a function definition destructures an array, unused entries from the array also cause warnings.
                                          function getY([x, y]) {
                                              return y;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-unused-vars: "error"*/
                                          
                                          var x = 10;
                                          alert(x);
                                          
                                          // foo is considered used here
                                          myFunc(function foo() {
                                              // ...
                                          }.bind(this));
                                          
                                          (function(foo) {
                                              return foo;
                                          })();
                                          
                                          var myFunc;
                                          myFunc = setTimeout(function() {
                                              // myFunc is considered used
                                              myFunc();
                                          }, 50);
                                          
                                          // Only the second argument from the descructured array is used.
                                          function getY([, y]) {
                                              return y;
                                          }

                                          exported

                                          In environments outside of CommonJS or ECMAScript modules, you may use var to create a global variable that may be used by other scripts. You can use the /* exported variableName */ comment block to indicate that this variable is being exported and therefore should not be considered unused.

                                          Note that /* exported */ has no effect for any of the following:

                                          • when the environment is node or commonjs
                                          • when parserOptions.sourceType is module
                                          • when ecmaFeatures.globalReturn is true

                                          The line comment // exported variableName will not work as exported is not line-specific.

                                          Examples of correct code for /* exported variableName */ operation:

                                          /* exported global_var */
                                          
                                          var global_var = 42;

                                          Options

                                          This rule takes one argument which can be a string or an object. The string settings are the same as those of the vars property (explained below).

                                          By default this rule is enabled with all option for variables and after-used for arguments.

                                          {
                                              "rules": {
                                                  "no-unused-vars": ["error", { "vars": "all", "args": "after-used", "ignoreRestSiblings": false }]
                                              }
                                          }

                                          vars

                                          The vars option has two settings:

                                          • all checks all variables for usage, including those in the global scope. This is the default setting.
                                          • local checks only that locally-declared variables are used but will allow global variables to be unused.

                                          vars: local

                                          Examples of correct code for the { "vars": "local" } option:

                                          /*eslint no-unused-vars: ["error", { "vars": "local" }]*/
                                          /*global some_unused_var */
                                          
                                          some_unused_var = 42;

                                          varsIgnorePattern

                                          The varsIgnorePattern option specifies exceptions not to check for usage: variables whose names match a regexp pattern. For example, variables whose names contain ignored or Ignored.

                                          Examples of correct code for the { "varsIgnorePattern": "[iI]gnored" } option:

                                          /*eslint no-unused-vars: ["error", { "varsIgnorePattern": "[iI]gnored" }]*/
                                          
                                          var firstVarIgnored = 1;
                                          var secondVar = 2;
                                          console.log(secondVar);

                                          args

                                          The args option has three settings:

                                          • after-used - only the last argument must be used. This allows you, for instance, to have two named parameters to a function and as long as you use the second argument, ESLint will not warn you about the first. This is the default setting.
                                          • all - all named arguments must be used.
                                          • none - do not check arguments.

                                          args: after-used

                                          Examples of incorrect code for the default { "args": "after-used" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "after-used" }]*/
                                          
                                          // 1 error
                                          // "baz" is defined but never used
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          Examples of correct code for the default { "args": "after-used" } option:

                                          /*eslint no-unused-vars: ["error", {"args": "after-used"}]*/
                                          
                                          (function(foo, bar, baz) {
                                              return baz;
                                          })();

                                          args: all

                                          Examples of incorrect code for the { "args": "all" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "all" }]*/
                                          
                                          // 2 errors
                                          // "foo" is defined but never used
                                          // "baz" is defined but never used
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          args: none

                                          Examples of correct code for the { "args": "none" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "none" }]*/
                                          
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          ignoreRestSiblings

                                          The ignoreRestSiblings option is a boolean (default: false). Using a Rest Property it is possible to "omit" properties from an object, but by default the sibling properties are marked as "unused". With this option enabled the rest property's siblings are ignored.

                                          Examples of correct code for the { "ignoreRestSiblings": true } option:

                                          /*eslint no-unused-vars: ["error", { "ignoreRestSiblings": true }]*/
                                          // 'type' is ignored because it has a rest property sibling.
                                          var { type, ...coords } = data;

                                          argsIgnorePattern

                                          The argsIgnorePattern option specifies exceptions not to check for usage: arguments whose names match a regexp pattern. For example, variables whose names begin with an underscore.

                                          Examples of correct code for the { "argsIgnorePattern": "^_" } option:

                                          /*eslint no-unused-vars: ["error", { "argsIgnorePattern": "^_" }]*/
                                          
                                          function foo(x, _y) {
                                              return x + 1;
                                          }
                                          foo();

                                          caughtErrors

                                          The caughtErrors option is used for catch block arguments validation.

                                          It has two settings:

                                          • none - do not check error objects. This is the default setting.
                                          • all - all named arguments must be used.

                                          caughtErrors: none

                                          Not specifying this rule is equivalent of assigning it to none.

                                          Examples of correct code for the { "caughtErrors": "none" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrors": "none" }]*/
                                          
                                          try {
                                              //...
                                          } catch (err) {
                                              console.error("errors");
                                          }

                                          caughtErrors: all

                                          Examples of incorrect code for the { "caughtErrors": "all" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrors": "all" }]*/
                                          
                                          // 1 error
                                          // "err" is defined but never used
                                          try {
                                              //...
                                          } catch (err) {
                                              console.error("errors");
                                          }

                                          caughtErrorsIgnorePattern

                                          The caughtErrorsIgnorePattern option specifies exceptions not to check for usage: catch arguments whose names match a regexp pattern. For example, variables whose names begin with a string 'ignore'.

                                          Examples of correct code for the { "caughtErrorsIgnorePattern": "^ignore" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrorsIgnorePattern": "^ignore" }]*/
                                          
                                          try {
                                              //...
                                          } catch (ignoreErr) {
                                              console.error("errors");
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about unused variables or function arguments, you can safely turn this rule off. Source: http://eslint.org/docs/rules/

                                          '_x24' is defined but never used.
                                          Open

                                                function _get_shell(_x22, _x23, _x24) {

                                          Disallow Unused Variables (no-unused-vars)

                                          Variables that are declared and not used anywhere in the code are most likely an error due to incomplete refactoring. Such variables take up space in the code and can lead to confusion by readers.

                                          Rule Details

                                          This rule is aimed at eliminating unused variables, functions, and parameters of functions.

                                          A variable is considered to be used if any of the following are true:

                                          • It represents a function that is called (doSomething())
                                          • It is read (var y = x)
                                          • It is passed into a function as an argument (doSomething(x))
                                          • It is read inside of a function that is passed to another function (doSomething(function() { foo(); }))

                                          A variable is not considered to be used if it is only ever assigned to (var x = 5) or declared.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-unused-vars: "error"*/
                                          /*global some_unused_var*/
                                          
                                          // It checks variables you have defined as global
                                          some_unused_var = 42;
                                          
                                          var x;
                                          
                                          // Write-only variables are not considered as used.
                                          var y = 10;
                                          y = 5;
                                          
                                          // A read for a modification of itself is not considered as used.
                                          var z = 0;
                                          z = z + 1;
                                          
                                          // By default, unused arguments cause warnings.
                                          (function(foo) {
                                              return 5;
                                          })();
                                          
                                          // Unused recursive functions also cause warnings.
                                          function fact(n) {
                                              if (n < 2) return 1;
                                              return n * fact(n - 1);
                                          }
                                          
                                          // When a function definition destructures an array, unused entries from the array also cause warnings.
                                          function getY([x, y]) {
                                              return y;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-unused-vars: "error"*/
                                          
                                          var x = 10;
                                          alert(x);
                                          
                                          // foo is considered used here
                                          myFunc(function foo() {
                                              // ...
                                          }.bind(this));
                                          
                                          (function(foo) {
                                              return foo;
                                          })();
                                          
                                          var myFunc;
                                          myFunc = setTimeout(function() {
                                              // myFunc is considered used
                                              myFunc();
                                          }, 50);
                                          
                                          // Only the second argument from the descructured array is used.
                                          function getY([, y]) {
                                              return y;
                                          }

                                          exported

                                          In environments outside of CommonJS or ECMAScript modules, you may use var to create a global variable that may be used by other scripts. You can use the /* exported variableName */ comment block to indicate that this variable is being exported and therefore should not be considered unused.

                                          Note that /* exported */ has no effect for any of the following:

                                          • when the environment is node or commonjs
                                          • when parserOptions.sourceType is module
                                          • when ecmaFeatures.globalReturn is true

                                          The line comment // exported variableName will not work as exported is not line-specific.

                                          Examples of correct code for /* exported variableName */ operation:

                                          /* exported global_var */
                                          
                                          var global_var = 42;

                                          Options

                                          This rule takes one argument which can be a string or an object. The string settings are the same as those of the vars property (explained below).

                                          By default this rule is enabled with all option for variables and after-used for arguments.

                                          {
                                              "rules": {
                                                  "no-unused-vars": ["error", { "vars": "all", "args": "after-used", "ignoreRestSiblings": false }]
                                              }
                                          }

                                          vars

                                          The vars option has two settings:

                                          • all checks all variables for usage, including those in the global scope. This is the default setting.
                                          • local checks only that locally-declared variables are used but will allow global variables to be unused.

                                          vars: local

                                          Examples of correct code for the { "vars": "local" } option:

                                          /*eslint no-unused-vars: ["error", { "vars": "local" }]*/
                                          /*global some_unused_var */
                                          
                                          some_unused_var = 42;

                                          varsIgnorePattern

                                          The varsIgnorePattern option specifies exceptions not to check for usage: variables whose names match a regexp pattern. For example, variables whose names contain ignored or Ignored.

                                          Examples of correct code for the { "varsIgnorePattern": "[iI]gnored" } option:

                                          /*eslint no-unused-vars: ["error", { "varsIgnorePattern": "[iI]gnored" }]*/
                                          
                                          var firstVarIgnored = 1;
                                          var secondVar = 2;
                                          console.log(secondVar);

                                          args

                                          The args option has three settings:

                                          • after-used - only the last argument must be used. This allows you, for instance, to have two named parameters to a function and as long as you use the second argument, ESLint will not warn you about the first. This is the default setting.
                                          • all - all named arguments must be used.
                                          • none - do not check arguments.

                                          args: after-used

                                          Examples of incorrect code for the default { "args": "after-used" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "after-used" }]*/
                                          
                                          // 1 error
                                          // "baz" is defined but never used
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          Examples of correct code for the default { "args": "after-used" } option:

                                          /*eslint no-unused-vars: ["error", {"args": "after-used"}]*/
                                          
                                          (function(foo, bar, baz) {
                                              return baz;
                                          })();

                                          args: all

                                          Examples of incorrect code for the { "args": "all" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "all" }]*/
                                          
                                          // 2 errors
                                          // "foo" is defined but never used
                                          // "baz" is defined but never used
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          args: none

                                          Examples of correct code for the { "args": "none" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "none" }]*/
                                          
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          ignoreRestSiblings

                                          The ignoreRestSiblings option is a boolean (default: false). Using a Rest Property it is possible to "omit" properties from an object, but by default the sibling properties are marked as "unused". With this option enabled the rest property's siblings are ignored.

                                          Examples of correct code for the { "ignoreRestSiblings": true } option:

                                          /*eslint no-unused-vars: ["error", { "ignoreRestSiblings": true }]*/
                                          // 'type' is ignored because it has a rest property sibling.
                                          var { type, ...coords } = data;

                                          argsIgnorePattern

                                          The argsIgnorePattern option specifies exceptions not to check for usage: arguments whose names match a regexp pattern. For example, variables whose names begin with an underscore.

                                          Examples of correct code for the { "argsIgnorePattern": "^_" } option:

                                          /*eslint no-unused-vars: ["error", { "argsIgnorePattern": "^_" }]*/
                                          
                                          function foo(x, _y) {
                                              return x + 1;
                                          }
                                          foo();

                                          caughtErrors

                                          The caughtErrors option is used for catch block arguments validation.

                                          It has two settings:

                                          • none - do not check error objects. This is the default setting.
                                          • all - all named arguments must be used.

                                          caughtErrors: none

                                          Not specifying this rule is equivalent of assigning it to none.

                                          Examples of correct code for the { "caughtErrors": "none" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrors": "none" }]*/
                                          
                                          try {
                                              //...
                                          } catch (err) {
                                              console.error("errors");
                                          }

                                          caughtErrors: all

                                          Examples of incorrect code for the { "caughtErrors": "all" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrors": "all" }]*/
                                          
                                          // 1 error
                                          // "err" is defined but never used
                                          try {
                                              //...
                                          } catch (err) {
                                              console.error("errors");
                                          }

                                          caughtErrorsIgnorePattern

                                          The caughtErrorsIgnorePattern option specifies exceptions not to check for usage: catch arguments whose names match a regexp pattern. For example, variables whose names begin with a string 'ignore'.

                                          Examples of correct code for the { "caughtErrorsIgnorePattern": "^ignore" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrorsIgnorePattern": "^ignore" }]*/
                                          
                                          try {
                                              //...
                                          } catch (ignoreErr) {
                                              console.error("errors");
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about unused variables or function arguments, you can safely turn this rule off. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                          return this._load_shell(directory, GhostViewClass);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Assignment to property of function parameter '_context8'.
                                          Open

                                                          _context8.next = 2;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          '_x26' is defined but never used.
                                          Open

                                                function _get_shell_directory(_x25, _x26) {

                                          Disallow Unused Variables (no-unused-vars)

                                          Variables that are declared and not used anywhere in the code are most likely an error due to incomplete refactoring. Such variables take up space in the code and can lead to confusion by readers.

                                          Rule Details

                                          This rule is aimed at eliminating unused variables, functions, and parameters of functions.

                                          A variable is considered to be used if any of the following are true:

                                          • It represents a function that is called (doSomething())
                                          • It is read (var y = x)
                                          • It is passed into a function as an argument (doSomething(x))
                                          • It is read inside of a function that is passed to another function (doSomething(function() { foo(); }))

                                          A variable is not considered to be used if it is only ever assigned to (var x = 5) or declared.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-unused-vars: "error"*/
                                          /*global some_unused_var*/
                                          
                                          // It checks variables you have defined as global
                                          some_unused_var = 42;
                                          
                                          var x;
                                          
                                          // Write-only variables are not considered as used.
                                          var y = 10;
                                          y = 5;
                                          
                                          // A read for a modification of itself is not considered as used.
                                          var z = 0;
                                          z = z + 1;
                                          
                                          // By default, unused arguments cause warnings.
                                          (function(foo) {
                                              return 5;
                                          })();
                                          
                                          // Unused recursive functions also cause warnings.
                                          function fact(n) {
                                              if (n < 2) return 1;
                                              return n * fact(n - 1);
                                          }
                                          
                                          // When a function definition destructures an array, unused entries from the array also cause warnings.
                                          function getY([x, y]) {
                                              return y;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-unused-vars: "error"*/
                                          
                                          var x = 10;
                                          alert(x);
                                          
                                          // foo is considered used here
                                          myFunc(function foo() {
                                              // ...
                                          }.bind(this));
                                          
                                          (function(foo) {
                                              return foo;
                                          })();
                                          
                                          var myFunc;
                                          myFunc = setTimeout(function() {
                                              // myFunc is considered used
                                              myFunc();
                                          }, 50);
                                          
                                          // Only the second argument from the descructured array is used.
                                          function getY([, y]) {
                                              return y;
                                          }

                                          exported

                                          In environments outside of CommonJS or ECMAScript modules, you may use var to create a global variable that may be used by other scripts. You can use the /* exported variableName */ comment block to indicate that this variable is being exported and therefore should not be considered unused.

                                          Note that /* exported */ has no effect for any of the following:

                                          • when the environment is node or commonjs
                                          • when parserOptions.sourceType is module
                                          • when ecmaFeatures.globalReturn is true

                                          The line comment // exported variableName will not work as exported is not line-specific.

                                          Examples of correct code for /* exported variableName */ operation:

                                          /* exported global_var */
                                          
                                          var global_var = 42;

                                          Options

                                          This rule takes one argument which can be a string or an object. The string settings are the same as those of the vars property (explained below).

                                          By default this rule is enabled with all option for variables and after-used for arguments.

                                          {
                                              "rules": {
                                                  "no-unused-vars": ["error", { "vars": "all", "args": "after-used", "ignoreRestSiblings": false }]
                                              }
                                          }

                                          vars

                                          The vars option has two settings:

                                          • all checks all variables for usage, including those in the global scope. This is the default setting.
                                          • local checks only that locally-declared variables are used but will allow global variables to be unused.

                                          vars: local

                                          Examples of correct code for the { "vars": "local" } option:

                                          /*eslint no-unused-vars: ["error", { "vars": "local" }]*/
                                          /*global some_unused_var */
                                          
                                          some_unused_var = 42;

                                          varsIgnorePattern

                                          The varsIgnorePattern option specifies exceptions not to check for usage: variables whose names match a regexp pattern. For example, variables whose names contain ignored or Ignored.

                                          Examples of correct code for the { "varsIgnorePattern": "[iI]gnored" } option:

                                          /*eslint no-unused-vars: ["error", { "varsIgnorePattern": "[iI]gnored" }]*/
                                          
                                          var firstVarIgnored = 1;
                                          var secondVar = 2;
                                          console.log(secondVar);

                                          args

                                          The args option has three settings:

                                          • after-used - only the last argument must be used. This allows you, for instance, to have two named parameters to a function and as long as you use the second argument, ESLint will not warn you about the first. This is the default setting.
                                          • all - all named arguments must be used.
                                          • none - do not check arguments.

                                          args: after-used

                                          Examples of incorrect code for the default { "args": "after-used" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "after-used" }]*/
                                          
                                          // 1 error
                                          // "baz" is defined but never used
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          Examples of correct code for the default { "args": "after-used" } option:

                                          /*eslint no-unused-vars: ["error", {"args": "after-used"}]*/
                                          
                                          (function(foo, bar, baz) {
                                              return baz;
                                          })();

                                          args: all

                                          Examples of incorrect code for the { "args": "all" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "all" }]*/
                                          
                                          // 2 errors
                                          // "foo" is defined but never used
                                          // "baz" is defined but never used
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          args: none

                                          Examples of correct code for the { "args": "none" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "none" }]*/
                                          
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          ignoreRestSiblings

                                          The ignoreRestSiblings option is a boolean (default: false). Using a Rest Property it is possible to "omit" properties from an object, but by default the sibling properties are marked as "unused". With this option enabled the rest property's siblings are ignored.

                                          Examples of correct code for the { "ignoreRestSiblings": true } option:

                                          /*eslint no-unused-vars: ["error", { "ignoreRestSiblings": true }]*/
                                          // 'type' is ignored because it has a rest property sibling.
                                          var { type, ...coords } = data;

                                          argsIgnorePattern

                                          The argsIgnorePattern option specifies exceptions not to check for usage: arguments whose names match a regexp pattern. For example, variables whose names begin with an underscore.

                                          Examples of correct code for the { "argsIgnorePattern": "^_" } option:

                                          /*eslint no-unused-vars: ["error", { "argsIgnorePattern": "^_" }]*/
                                          
                                          function foo(x, _y) {
                                              return x + 1;
                                          }
                                          foo();

                                          caughtErrors

                                          The caughtErrors option is used for catch block arguments validation.

                                          It has two settings:

                                          • none - do not check error objects. This is the default setting.
                                          • all - all named arguments must be used.

                                          caughtErrors: none

                                          Not specifying this rule is equivalent of assigning it to none.

                                          Examples of correct code for the { "caughtErrors": "none" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrors": "none" }]*/
                                          
                                          try {
                                              //...
                                          } catch (err) {
                                              console.error("errors");
                                          }

                                          caughtErrors: all

                                          Examples of incorrect code for the { "caughtErrors": "all" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrors": "all" }]*/
                                          
                                          // 1 error
                                          // "err" is defined but never used
                                          try {
                                              //...
                                          } catch (err) {
                                              console.error("errors");
                                          }

                                          caughtErrorsIgnorePattern

                                          The caughtErrorsIgnorePattern option specifies exceptions not to check for usage: catch arguments whose names match a regexp pattern. For example, variables whose names begin with a string 'ignore'.

                                          Examples of correct code for the { "caughtErrorsIgnorePattern": "^ignore" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrorsIgnorePattern": "^ignore" }]*/
                                          
                                          try {
                                              //...
                                          } catch (ignoreErr) {
                                              console.error("errors");
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about unused variables or function arguments, you can safely turn this rule off. Source: http://eslint.org/docs/rules/

                                          Expected a default case.
                                          Open

                                                      switch (_context9.prev = _context9.next) {

                                          Require Default Case in Switch Statements (default-case)

                                          Some code conventions require that all switch statements have a default case, even if the default case is empty, such as:

                                          switch (foo) {
                                              case 1:
                                                  doSomething();
                                                  break;
                                          
                                              case 2:
                                                  doSomething();
                                                  break;
                                          
                                              default:
                                                  // do nothing
                                          }

                                          The thinking is that it's better to always explicitly state what the default behavior should be so that it's clear whether or not the developer forgot to include the default behavior by mistake.

                                          Other code conventions allow you to skip the default case so long as there is a comment indicating the omission is intentional, such as:

                                          switch (foo) {
                                              case 1:
                                                  doSomething();
                                                  break;
                                          
                                              case 2:
                                                  doSomething();
                                                  break;
                                          
                                              // no default
                                          }

                                          Once again, the intent here is to show that the developer intended for there to be no default behavior.

                                          Rule Details

                                          This rule aims to require default case in switch statements. You may optionally include a // no default after the last case if there is no default case. The comment may be in any desired case, such as // No Default.

                                          Examples of incorrect code for this rule:

                                          /*eslint default-case: "error"*/
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint default-case: "error"*/
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              default:
                                                  /* code */
                                                  break;
                                          }
                                          
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // no default
                                          }
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // No Default
                                          }

                                          Options

                                          This rule accepts a single options argument:

                                          • Set the commentPattern option to a regular expression string to change the default /^no default$/i comment test pattern

                                          commentPattern

                                          Examples of correct code for the { "commentPattern": "^skip\\sdefault" } option:

                                          /*eslint default-case: ["error", { "commentPattern": "^skip\\sdefault" }]*/
                                          
                                          switch(a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // skip default
                                          }
                                          
                                          switch(a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // skip default case
                                          }

                                          When Not To Use It

                                          If you don't want to enforce a default case for switch statements, you can safely disable this rule.

                                          Related Rules

                                          Unexpected 'this'.
                                          Open

                                                          this.emit('load_balloon_files', balloonname);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                          this.emit('balloon_load', balloonname, directory);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Assignment to property of function parameter '_context6'.
                                          Open

                                                          _context6.next = 5;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Assignment to property of function parameter '_context7'.
                                          Open

                                                          _context7.next = 3;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Unexpected 'this'.
                                          Open

                                                          this.emit('shell_loaded', namedId, shellname, shell);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected constant condition.
                                          Open

                                                    while (1) {

                                          disallow constant expressions in conditions (no-constant-condition)

                                          A constant expression (for example, a literal) as a test condition might be a typo or development trigger for a specific behavior. For example, the following code looks as if it is not ready for production.

                                          if (false) {
                                              doSomethingUnfinished();
                                          }

                                          Rule Details

                                          This rule disallows constant expressions in the test condition of:

                                          • if, for, while, or do...while statement
                                          • ?: ternary expression

                                          Examples of incorrect code for this rule:

                                          /*eslint no-constant-condition: "error"*/
                                          
                                          if (false) {
                                              doSomethingUnfinished();
                                          }
                                          
                                          if (void x) {
                                              doSomethingUnfinished();
                                          }
                                          
                                          for (;-2;) {
                                              doSomethingForever();
                                          }
                                          
                                          while (typeof x) {
                                              doSomethingForever();
                                          }
                                          
                                          do {
                                              doSomethingForever();
                                          } while (x = -1);
                                          
                                          var result = 0 ? a : b;

                                          Examples of correct code for this rule:

                                          /*eslint no-constant-condition: "error"*/
                                          
                                          if (x === 0) {
                                              doSomething();
                                          }
                                          
                                          for (;;) {
                                              doSomethingForever();
                                          }
                                          
                                          while (typeof x === "undefined") {
                                              doSomething();
                                          }
                                          
                                          do {
                                              doSomething();
                                          } while (x);
                                          
                                          var result = x !== 0 ? a : b;

                                          Options

                                          checkLoops

                                          Set to true by default. Setting this option to false allows constant expressions in loops.

                                          Examples of correct code for when checkLoops is false:

                                          /*eslint no-constant-condition: ["error", { "checkLoops": false }]*/
                                          
                                          while (true) {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          };
                                          
                                          for (;true;) {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          };
                                          
                                          do {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          } while (true)

                                          Source: http://eslint.org/docs/rules/

                                          Assignment to property of function parameter '_context9'.
                                          Open

                                                          _context9.next = 7;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Unexpected constant condition.
                                          Open

                                                    while (1) {

                                          disallow constant expressions in conditions (no-constant-condition)

                                          A constant expression (for example, a literal) as a test condition might be a typo or development trigger for a specific behavior. For example, the following code looks as if it is not ready for production.

                                          if (false) {
                                              doSomethingUnfinished();
                                          }

                                          Rule Details

                                          This rule disallows constant expressions in the test condition of:

                                          • if, for, while, or do...while statement
                                          • ?: ternary expression

                                          Examples of incorrect code for this rule:

                                          /*eslint no-constant-condition: "error"*/
                                          
                                          if (false) {
                                              doSomethingUnfinished();
                                          }
                                          
                                          if (void x) {
                                              doSomethingUnfinished();
                                          }
                                          
                                          for (;-2;) {
                                              doSomethingForever();
                                          }
                                          
                                          while (typeof x) {
                                              doSomethingForever();
                                          }
                                          
                                          do {
                                              doSomethingForever();
                                          } while (x = -1);
                                          
                                          var result = 0 ? a : b;

                                          Examples of correct code for this rule:

                                          /*eslint no-constant-condition: "error"*/
                                          
                                          if (x === 0) {
                                              doSomething();
                                          }
                                          
                                          for (;;) {
                                              doSomethingForever();
                                          }
                                          
                                          while (typeof x === "undefined") {
                                              doSomething();
                                          }
                                          
                                          do {
                                              doSomething();
                                          } while (x);
                                          
                                          var result = x !== 0 ? a : b;

                                          Options

                                          checkLoops

                                          Set to true by default. Setting this option to false allows constant expressions in loops.

                                          Examples of correct code for when checkLoops is false:

                                          /*eslint no-constant-condition: ["error", { "checkLoops": false }]*/
                                          
                                          while (true) {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          };
                                          
                                          for (;true;) {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          };
                                          
                                          do {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          } while (true)

                                          Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                          return this._get_shell_directory(namedId, shellname);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Expected a default case.
                                          Open

                                                      switch (_context8.prev = _context8.next) {

                                          Require Default Case in Switch Statements (default-case)

                                          Some code conventions require that all switch statements have a default case, even if the default case is empty, such as:

                                          switch (foo) {
                                              case 1:
                                                  doSomething();
                                                  break;
                                          
                                              case 2:
                                                  doSomething();
                                                  break;
                                          
                                              default:
                                                  // do nothing
                                          }

                                          The thinking is that it's better to always explicitly state what the default behavior should be so that it's clear whether or not the developer forgot to include the default behavior by mistake.

                                          Other code conventions allow you to skip the default case so long as there is a comment indicating the omission is intentional, such as:

                                          switch (foo) {
                                              case 1:
                                                  doSomething();
                                                  break;
                                          
                                              case 2:
                                                  doSomething();
                                                  break;
                                          
                                              // no default
                                          }

                                          Once again, the intent here is to show that the developer intended for there to be no default behavior.

                                          Rule Details

                                          This rule aims to require default case in switch statements. You may optionally include a // no default after the last case if there is no default case. The comment may be in any desired case, such as // No Default.

                                          Examples of incorrect code for this rule:

                                          /*eslint default-case: "error"*/
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint default-case: "error"*/
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              default:
                                                  /* code */
                                                  break;
                                          }
                                          
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // no default
                                          }
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // No Default
                                          }

                                          Options

                                          This rule accepts a single options argument:

                                          • Set the commentPattern option to a regular expression string to change the default /^no default$/i comment test pattern

                                          commentPattern

                                          Examples of correct code for the { "commentPattern": "^skip\\sdefault" } option:

                                          /*eslint default-case: ["error", { "commentPattern": "^skip\\sdefault" }]*/
                                          
                                          switch(a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // skip default
                                          }
                                          
                                          switch(a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // skip default case
                                          }

                                          When Not To Use It

                                          If you don't want to enforce a default case for switch statements, you can safely disable this rule.

                                          Related Rules

                                          Unexpected 'this'.
                                          Open

                                                          return this.components.NanikaStorage.shell(namedId, shellname);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Assignment to property of function parameter '_context9'.
                                          Open

                                                          _context9.next = 3;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Unexpected 'this'.
                                          Open

                                                          return this._get_balloon_directory(balloonname);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                          return this._load_balloon(directory, GhostViewClass);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                  return _ref11.apply(this, arguments);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Missing trailing comma.
                                          Open

                                              }()

                                          require or disallow trailing commas (comma-dangle)

                                          Trailing commas in object literals are valid according to the ECMAScript 5 (and ECMAScript 3!) spec. However, IE8 (when not in IE8 document mode) and below will throw an error when it encounters trailing commas in JavaScript.

                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };

                                          Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. Another argument in favor of trailing commas is that it improves the clarity of diffs when an item is added or removed from an object or array:

                                          Less clear:

                                          var foo = {
                                          -    bar: "baz",
                                          -    qux: "quux"
                                          +    bar: "baz"
                                           };

                                          More clear:

                                          var foo = {
                                               bar: "baz",
                                          -    qux: "quux",
                                           };

                                          Rule Details

                                          This rule enforces consistent use of trailing commas in object and array literals.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "comma-dangle": ["error", "never"],
                                              // or
                                              "comma-dangle": ["error", {
                                                  "arrays": "never",
                                                  "objects": "never",
                                                  "imports": "never",
                                                  "exports": "never",
                                                  "functions": "ignore",
                                              }]
                                          }
                                          • "never" (default) disallows trailing commas
                                          • "always" requires trailing commas
                                          • "always-multiline" requires trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }
                                          • "only-multiline" allows (but does not require) trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }

                                          Trailing commas in function declarations and function calls are valid syntax since ECMAScript 2017; however, the string option does not check these situations for backwards compatibility.

                                          You can also use an object option to configure this rule for each type of syntax. Each of the following options can be set to "never", "always", "always-multiline", "only-multiline", or "ignore". The default for each option is "never" unless otherwise specified.

                                          • arrays is for array literals and array patterns of destructuring. (e.g. let [a,] = [1,];)
                                          • objects is for object literals and object patterns of destructuring. (e.g. let {a,} = {a: 1};)
                                          • imports is for import declarations of ES Modules. (e.g. import {a,} from "foo";)
                                          • exports is for export declarations of ES Modules. (e.g. export {a,};)
                                          • functions is for function declarations and function calls. (e.g. (function(a,){ })(b,);)
                                            functions is set to "ignore" by default for consistency with the string option.

                                          never

                                          Examples of incorrect code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          Examples of correct code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          always

                                          Examples of incorrect code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          always-multiline

                                          Examples of incorrect code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          only-multiline

                                          Examples of incorrect code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];

                                          Examples of correct code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          functions

                                          Examples of incorrect code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          Examples of correct code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of incorrect code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of correct code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with dangling commas. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                  }, _callee7, this);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Missing trailing comma.
                                          Open

                                              }()

                                          require or disallow trailing commas (comma-dangle)

                                          Trailing commas in object literals are valid according to the ECMAScript 5 (and ECMAScript 3!) spec. However, IE8 (when not in IE8 document mode) and below will throw an error when it encounters trailing commas in JavaScript.

                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };

                                          Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. Another argument in favor of trailing commas is that it improves the clarity of diffs when an item is added or removed from an object or array:

                                          Less clear:

                                          var foo = {
                                          -    bar: "baz",
                                          -    qux: "quux"
                                          +    bar: "baz"
                                           };

                                          More clear:

                                          var foo = {
                                               bar: "baz",
                                          -    qux: "quux",
                                           };

                                          Rule Details

                                          This rule enforces consistent use of trailing commas in object and array literals.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "comma-dangle": ["error", "never"],
                                              // or
                                              "comma-dangle": ["error", {
                                                  "arrays": "never",
                                                  "objects": "never",
                                                  "imports": "never",
                                                  "exports": "never",
                                                  "functions": "ignore",
                                              }]
                                          }
                                          • "never" (default) disallows trailing commas
                                          • "always" requires trailing commas
                                          • "always-multiline" requires trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }
                                          • "only-multiline" allows (but does not require) trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }

                                          Trailing commas in function declarations and function calls are valid syntax since ECMAScript 2017; however, the string option does not check these situations for backwards compatibility.

                                          You can also use an object option to configure this rule for each type of syntax. Each of the following options can be set to "never", "always", "always-multiline", "only-multiline", or "ignore". The default for each option is "never" unless otherwise specified.

                                          • arrays is for array literals and array patterns of destructuring. (e.g. let [a,] = [1,];)
                                          • objects is for object literals and object patterns of destructuring. (e.g. let {a,} = {a: 1};)
                                          • imports is for import declarations of ES Modules. (e.g. import {a,} from "foo";)
                                          • exports is for export declarations of ES Modules. (e.g. export {a,};)
                                          • functions is for function declarations and function calls. (e.g. (function(a,){ })(b,);)
                                            functions is set to "ignore" by default for consistency with the string option.

                                          never

                                          Examples of incorrect code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          Examples of correct code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          always

                                          Examples of incorrect code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          always-multiline

                                          Examples of incorrect code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          only-multiline

                                          Examples of incorrect code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];

                                          Examples of correct code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          functions

                                          Examples of incorrect code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          Examples of correct code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of incorrect code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of correct code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with dangling commas. Source: http://eslint.org/docs/rules/

                                          'result' is assigned a value but never used.
                                          Open

                                                  var shiori, result;

                                          Disallow Unused Variables (no-unused-vars)

                                          Variables that are declared and not used anywhere in the code are most likely an error due to incomplete refactoring. Such variables take up space in the code and can lead to confusion by readers.

                                          Rule Details

                                          This rule is aimed at eliminating unused variables, functions, and parameters of functions.

                                          A variable is considered to be used if any of the following are true:

                                          • It represents a function that is called (doSomething())
                                          • It is read (var y = x)
                                          • It is passed into a function as an argument (doSomething(x))
                                          • It is read inside of a function that is passed to another function (doSomething(function() { foo(); }))

                                          A variable is not considered to be used if it is only ever assigned to (var x = 5) or declared.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-unused-vars: "error"*/
                                          /*global some_unused_var*/
                                          
                                          // It checks variables you have defined as global
                                          some_unused_var = 42;
                                          
                                          var x;
                                          
                                          // Write-only variables are not considered as used.
                                          var y = 10;
                                          y = 5;
                                          
                                          // A read for a modification of itself is not considered as used.
                                          var z = 0;
                                          z = z + 1;
                                          
                                          // By default, unused arguments cause warnings.
                                          (function(foo) {
                                              return 5;
                                          })();
                                          
                                          // Unused recursive functions also cause warnings.
                                          function fact(n) {
                                              if (n < 2) return 1;
                                              return n * fact(n - 1);
                                          }
                                          
                                          // When a function definition destructures an array, unused entries from the array also cause warnings.
                                          function getY([x, y]) {
                                              return y;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-unused-vars: "error"*/
                                          
                                          var x = 10;
                                          alert(x);
                                          
                                          // foo is considered used here
                                          myFunc(function foo() {
                                              // ...
                                          }.bind(this));
                                          
                                          (function(foo) {
                                              return foo;
                                          })();
                                          
                                          var myFunc;
                                          myFunc = setTimeout(function() {
                                              // myFunc is considered used
                                              myFunc();
                                          }, 50);
                                          
                                          // Only the second argument from the descructured array is used.
                                          function getY([, y]) {
                                              return y;
                                          }

                                          exported

                                          In environments outside of CommonJS or ECMAScript modules, you may use var to create a global variable that may be used by other scripts. You can use the /* exported variableName */ comment block to indicate that this variable is being exported and therefore should not be considered unused.

                                          Note that /* exported */ has no effect for any of the following:

                                          • when the environment is node or commonjs
                                          • when parserOptions.sourceType is module
                                          • when ecmaFeatures.globalReturn is true

                                          The line comment // exported variableName will not work as exported is not line-specific.

                                          Examples of correct code for /* exported variableName */ operation:

                                          /* exported global_var */
                                          
                                          var global_var = 42;

                                          Options

                                          This rule takes one argument which can be a string or an object. The string settings are the same as those of the vars property (explained below).

                                          By default this rule is enabled with all option for variables and after-used for arguments.

                                          {
                                              "rules": {
                                                  "no-unused-vars": ["error", { "vars": "all", "args": "after-used", "ignoreRestSiblings": false }]
                                              }
                                          }

                                          vars

                                          The vars option has two settings:

                                          • all checks all variables for usage, including those in the global scope. This is the default setting.
                                          • local checks only that locally-declared variables are used but will allow global variables to be unused.

                                          vars: local

                                          Examples of correct code for the { "vars": "local" } option:

                                          /*eslint no-unused-vars: ["error", { "vars": "local" }]*/
                                          /*global some_unused_var */
                                          
                                          some_unused_var = 42;

                                          varsIgnorePattern

                                          The varsIgnorePattern option specifies exceptions not to check for usage: variables whose names match a regexp pattern. For example, variables whose names contain ignored or Ignored.

                                          Examples of correct code for the { "varsIgnorePattern": "[iI]gnored" } option:

                                          /*eslint no-unused-vars: ["error", { "varsIgnorePattern": "[iI]gnored" }]*/
                                          
                                          var firstVarIgnored = 1;
                                          var secondVar = 2;
                                          console.log(secondVar);

                                          args

                                          The args option has three settings:

                                          • after-used - only the last argument must be used. This allows you, for instance, to have two named parameters to a function and as long as you use the second argument, ESLint will not warn you about the first. This is the default setting.
                                          • all - all named arguments must be used.
                                          • none - do not check arguments.

                                          args: after-used

                                          Examples of incorrect code for the default { "args": "after-used" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "after-used" }]*/
                                          
                                          // 1 error
                                          // "baz" is defined but never used
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          Examples of correct code for the default { "args": "after-used" } option:

                                          /*eslint no-unused-vars: ["error", {"args": "after-used"}]*/
                                          
                                          (function(foo, bar, baz) {
                                              return baz;
                                          })();

                                          args: all

                                          Examples of incorrect code for the { "args": "all" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "all" }]*/
                                          
                                          // 2 errors
                                          // "foo" is defined but never used
                                          // "baz" is defined but never used
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          args: none

                                          Examples of correct code for the { "args": "none" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "none" }]*/
                                          
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          ignoreRestSiblings

                                          The ignoreRestSiblings option is a boolean (default: false). Using a Rest Property it is possible to "omit" properties from an object, but by default the sibling properties are marked as "unused". With this option enabled the rest property's siblings are ignored.

                                          Examples of correct code for the { "ignoreRestSiblings": true } option:

                                          /*eslint no-unused-vars: ["error", { "ignoreRestSiblings": true }]*/
                                          // 'type' is ignored because it has a rest property sibling.
                                          var { type, ...coords } = data;

                                          argsIgnorePattern

                                          The argsIgnorePattern option specifies exceptions not to check for usage: arguments whose names match a regexp pattern. For example, variables whose names begin with an underscore.

                                          Examples of correct code for the { "argsIgnorePattern": "^_" } option:

                                          /*eslint no-unused-vars: ["error", { "argsIgnorePattern": "^_" }]*/
                                          
                                          function foo(x, _y) {
                                              return x + 1;
                                          }
                                          foo();

                                          caughtErrors

                                          The caughtErrors option is used for catch block arguments validation.

                                          It has two settings:

                                          • none - do not check error objects. This is the default setting.
                                          • all - all named arguments must be used.

                                          caughtErrors: none

                                          Not specifying this rule is equivalent of assigning it to none.

                                          Examples of correct code for the { "caughtErrors": "none" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrors": "none" }]*/
                                          
                                          try {
                                              //...
                                          } catch (err) {
                                              console.error("errors");
                                          }

                                          caughtErrors: all

                                          Examples of incorrect code for the { "caughtErrors": "all" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrors": "all" }]*/
                                          
                                          // 1 error
                                          // "err" is defined but never used
                                          try {
                                              //...
                                          } catch (err) {
                                              console.error("errors");
                                          }

                                          caughtErrorsIgnorePattern

                                          The caughtErrorsIgnorePattern option specifies exceptions not to check for usage: catch arguments whose names match a regexp pattern. For example, variables whose names begin with a string 'ignore'.

                                          Examples of correct code for the { "caughtErrorsIgnorePattern": "^ignore" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrorsIgnorePattern": "^ignore" }]*/
                                          
                                          try {
                                              //...
                                          } catch (ignoreErr) {
                                              console.error("errors");
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about unused variables or function arguments, you can safely turn this rule off. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                  return _ref9.apply(this, arguments);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Expected a default case.
                                          Open

                                                      switch (_context6.prev = _context6.next) {

                                          Require Default Case in Switch Statements (default-case)

                                          Some code conventions require that all switch statements have a default case, even if the default case is empty, such as:

                                          switch (foo) {
                                              case 1:
                                                  doSomething();
                                                  break;
                                          
                                              case 2:
                                                  doSomething();
                                                  break;
                                          
                                              default:
                                                  // do nothing
                                          }

                                          The thinking is that it's better to always explicitly state what the default behavior should be so that it's clear whether or not the developer forgot to include the default behavior by mistake.

                                          Other code conventions allow you to skip the default case so long as there is a comment indicating the omission is intentional, such as:

                                          switch (foo) {
                                              case 1:
                                                  doSomething();
                                                  break;
                                          
                                              case 2:
                                                  doSomething();
                                                  break;
                                          
                                              // no default
                                          }

                                          Once again, the intent here is to show that the developer intended for there to be no default behavior.

                                          Rule Details

                                          This rule aims to require default case in switch statements. You may optionally include a // no default after the last case if there is no default case. The comment may be in any desired case, such as // No Default.

                                          Examples of incorrect code for this rule:

                                          /*eslint default-case: "error"*/
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint default-case: "error"*/
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              default:
                                                  /* code */
                                                  break;
                                          }
                                          
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // no default
                                          }
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // No Default
                                          }

                                          Options

                                          This rule accepts a single options argument:

                                          • Set the commentPattern option to a regular expression string to change the default /^no default$/i comment test pattern

                                          commentPattern

                                          Examples of correct code for the { "commentPattern": "^skip\\sdefault" } option:

                                          /*eslint default-case: ["error", { "commentPattern": "^skip\\sdefault" }]*/
                                          
                                          switch(a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // skip default
                                          }
                                          
                                          switch(a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // skip default case
                                          }

                                          When Not To Use It

                                          If you don't want to enforce a default case for switch statements, you can safely disable this rule.

                                          Related Rules

                                          Unexpected 'this'.
                                          Open

                                                  return _ref10.apply(this, arguments);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Assignment to property of function parameter '_context8'.
                                          Open

                                                      switch (_context8.prev = _context8.next) {

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Assignment to property of function parameter '_context9'.
                                          Open

                                                      switch (_context9.prev = _context9.next) {

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Assignment to property of function parameter '_context6'.
                                          Open

                                                      switch (_context6.prev = _context6.next) {

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Assignment to property of function parameter '_context6'.
                                          Open

                                                          _context6.next = 2;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          'ShioriLoader' is not defined.
                                          Open

                                                          return ShioriLoader.detect_shiori(fs, dirpath);

                                          Disallow Undeclared Variables (no-undef)

                                          This rule can help you locate potential ReferenceErrors resulting from misspellings of variable and parameter names, or accidental implicit globals (for example, from forgetting the var keyword in a for loop initializer).

                                          Rule Details

                                          Any reference to an undeclared variable causes a warning, unless the variable is explicitly mentioned in a /*global ...*/ comment.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-undef: "error"*/
                                          
                                          var a = someFunction();
                                          b = 10;

                                          Examples of correct code for this rule with global declaration:

                                          /*global someFunction b:true*/
                                          /*eslint no-undef: "error"*/
                                          
                                          var a = someFunction();
                                          b = 10;

                                          The b:true syntax in /*global */ indicates that assignment to b is correct.

                                          Examples of incorrect code for this rule with global declaration:

                                          /*global b*/
                                          /*eslint no-undef: "error"*/
                                          
                                          b = 10;

                                          By default, variables declared in /*global */ are read-only, therefore assignment is incorrect.

                                          Options

                                          • typeof set to true will warn for variables used inside typeof check (Default false).

                                          typeof

                                          Examples of correct code for the default { "typeof": false } option:

                                          /*eslint no-undef: "error"*/
                                          
                                          if (typeof UndefinedIdentifier === "undefined") {
                                              // do something ...
                                          }

                                          You can use this option if you want to prevent typeof check on a variable which has not been declared.

                                          Examples of incorrect code for the { "typeof": true } option:

                                          /*eslint no-undef: ["error", { "typeof": true }] */
                                          
                                          if(typeof a === "string"){}

                                          Examples of correct code for the { "typeof": true } option with global declaration:

                                          /*global a*/
                                          /*eslint no-undef: ["error", { "typeof": true }] */
                                          
                                          if(typeof a === "string"){}

                                          Environments

                                          For convenience, ESLint provides shortcuts that pre-define global variables exposed by popular libraries and runtime environments. This rule supports these environments, as listed in Specifying Environments. A few examples are given below.

                                          browser

                                          Examples of correct code for this rule with browser environment:

                                          /*eslint no-undef: "error"*/
                                          /*eslint-env browser*/
                                          
                                          setTimeout(function() {
                                              alert("Hello");
                                          });

                                          node

                                          Examples of correct code for this rule with node environment:

                                          /*eslint no-undef: "error"*/
                                          /*eslint-env node*/
                                          
                                          var fs = require("fs");
                                          module.exports = function() {
                                              console.log(fs);
                                          };

                                          When Not To Use It

                                          If explicit declaration of global variables is not to your taste.

                                          Compatibility

                                          This rule provides compatibility with treatment of global variables in JSHint and JSLint. Source: http://eslint.org/docs/rules/

                                          Unexpected constant condition.
                                          Open

                                                    while (1) {

                                          disallow constant expressions in conditions (no-constant-condition)

                                          A constant expression (for example, a literal) as a test condition might be a typo or development trigger for a specific behavior. For example, the following code looks as if it is not ready for production.

                                          if (false) {
                                              doSomethingUnfinished();
                                          }

                                          Rule Details

                                          This rule disallows constant expressions in the test condition of:

                                          • if, for, while, or do...while statement
                                          • ?: ternary expression

                                          Examples of incorrect code for this rule:

                                          /*eslint no-constant-condition: "error"*/
                                          
                                          if (false) {
                                              doSomethingUnfinished();
                                          }
                                          
                                          if (void x) {
                                              doSomethingUnfinished();
                                          }
                                          
                                          for (;-2;) {
                                              doSomethingForever();
                                          }
                                          
                                          while (typeof x) {
                                              doSomethingForever();
                                          }
                                          
                                          do {
                                              doSomethingForever();
                                          } while (x = -1);
                                          
                                          var result = 0 ? a : b;

                                          Examples of correct code for this rule:

                                          /*eslint no-constant-condition: "error"*/
                                          
                                          if (x === 0) {
                                              doSomething();
                                          }
                                          
                                          for (;;) {
                                              doSomethingForever();
                                          }
                                          
                                          while (typeof x === "undefined") {
                                              doSomething();
                                          }
                                          
                                          do {
                                              doSomething();
                                          } while (x);
                                          
                                          var result = x !== 0 ? a : b;

                                          Options

                                          checkLoops

                                          Set to true by default. Setting this option to false allows constant expressions in loops.

                                          Examples of correct code for when checkLoops is false:

                                          /*eslint no-constant-condition: ["error", { "checkLoops": false }]*/
                                          
                                          while (true) {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          };
                                          
                                          for (;true;) {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          };
                                          
                                          do {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          } while (true)

                                          Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                          this.emit('balloon_loaded', balloonname, balloon);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Expected a default case.
                                          Open

                                                      switch (_context7.prev = _context7.next) {

                                          Require Default Case in Switch Statements (default-case)

                                          Some code conventions require that all switch statements have a default case, even if the default case is empty, such as:

                                          switch (foo) {
                                              case 1:
                                                  doSomething();
                                                  break;
                                          
                                              case 2:
                                                  doSomething();
                                                  break;
                                          
                                              default:
                                                  // do nothing
                                          }

                                          The thinking is that it's better to always explicitly state what the default behavior should be so that it's clear whether or not the developer forgot to include the default behavior by mistake.

                                          Other code conventions allow you to skip the default case so long as there is a comment indicating the omission is intentional, such as:

                                          switch (foo) {
                                              case 1:
                                                  doSomething();
                                                  break;
                                          
                                              case 2:
                                                  doSomething();
                                                  break;
                                          
                                              // no default
                                          }

                                          Once again, the intent here is to show that the developer intended for there to be no default behavior.

                                          Rule Details

                                          This rule aims to require default case in switch statements. You may optionally include a // no default after the last case if there is no default case. The comment may be in any desired case, such as // No Default.

                                          Examples of incorrect code for this rule:

                                          /*eslint default-case: "error"*/
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint default-case: "error"*/
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              default:
                                                  /* code */
                                                  break;
                                          }
                                          
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // no default
                                          }
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // No Default
                                          }

                                          Options

                                          This rule accepts a single options argument:

                                          • Set the commentPattern option to a regular expression string to change the default /^no default$/i comment test pattern

                                          commentPattern

                                          Examples of correct code for the { "commentPattern": "^skip\\sdefault" } option:

                                          /*eslint default-case: ["error", { "commentPattern": "^skip\\sdefault" }]*/
                                          
                                          switch(a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // skip default
                                          }
                                          
                                          switch(a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // skip default case
                                          }

                                          When Not To Use It

                                          If you don't want to enforce a default case for switch statements, you can safely disable this rule.

                                          Related Rules

                                          Unexpected 'this'.
                                          Open

                                                  }, _callee8, this);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                  }, _callee6, this);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                          this.emit('shell_load', namedId, shellname, directory);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Missing trailing comma.
                                          Open

                                              }()

                                          require or disallow trailing commas (comma-dangle)

                                          Trailing commas in object literals are valid according to the ECMAScript 5 (and ECMAScript 3!) spec. However, IE8 (when not in IE8 document mode) and below will throw an error when it encounters trailing commas in JavaScript.

                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };

                                          Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. Another argument in favor of trailing commas is that it improves the clarity of diffs when an item is added or removed from an object or array:

                                          Less clear:

                                          var foo = {
                                          -    bar: "baz",
                                          -    qux: "quux"
                                          +    bar: "baz"
                                           };

                                          More clear:

                                          var foo = {
                                               bar: "baz",
                                          -    qux: "quux",
                                           };

                                          Rule Details

                                          This rule enforces consistent use of trailing commas in object and array literals.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "comma-dangle": ["error", "never"],
                                              // or
                                              "comma-dangle": ["error", {
                                                  "arrays": "never",
                                                  "objects": "never",
                                                  "imports": "never",
                                                  "exports": "never",
                                                  "functions": "ignore",
                                              }]
                                          }
                                          • "never" (default) disallows trailing commas
                                          • "always" requires trailing commas
                                          • "always-multiline" requires trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }
                                          • "only-multiline" allows (but does not require) trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }

                                          Trailing commas in function declarations and function calls are valid syntax since ECMAScript 2017; however, the string option does not check these situations for backwards compatibility.

                                          You can also use an object option to configure this rule for each type of syntax. Each of the following options can be set to "never", "always", "always-multiline", "only-multiline", or "ignore". The default for each option is "never" unless otherwise specified.

                                          • arrays is for array literals and array patterns of destructuring. (e.g. let [a,] = [1,];)
                                          • objects is for object literals and object patterns of destructuring. (e.g. let {a,} = {a: 1};)
                                          • imports is for import declarations of ES Modules. (e.g. import {a,} from "foo";)
                                          • exports is for export declarations of ES Modules. (e.g. export {a,};)
                                          • functions is for function declarations and function calls. (e.g. (function(a,){ })(b,);)
                                            functions is set to "ignore" by default for consistency with the string option.

                                          never

                                          Examples of incorrect code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          Examples of correct code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          always

                                          Examples of incorrect code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          always-multiline

                                          Examples of incorrect code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          only-multiline

                                          Examples of incorrect code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];

                                          Examples of correct code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          functions

                                          Examples of incorrect code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          Examples of correct code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of incorrect code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of correct code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with dangling commas. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                  }, _callee9, this);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected constant condition.
                                          Open

                                                    while (1) {

                                          disallow constant expressions in conditions (no-constant-condition)

                                          A constant expression (for example, a literal) as a test condition might be a typo or development trigger for a specific behavior. For example, the following code looks as if it is not ready for production.

                                          if (false) {
                                              doSomethingUnfinished();
                                          }

                                          Rule Details

                                          This rule disallows constant expressions in the test condition of:

                                          • if, for, while, or do...while statement
                                          • ?: ternary expression

                                          Examples of incorrect code for this rule:

                                          /*eslint no-constant-condition: "error"*/
                                          
                                          if (false) {
                                              doSomethingUnfinished();
                                          }
                                          
                                          if (void x) {
                                              doSomethingUnfinished();
                                          }
                                          
                                          for (;-2;) {
                                              doSomethingForever();
                                          }
                                          
                                          while (typeof x) {
                                              doSomethingForever();
                                          }
                                          
                                          do {
                                              doSomethingForever();
                                          } while (x = -1);
                                          
                                          var result = 0 ? a : b;

                                          Examples of correct code for this rule:

                                          /*eslint no-constant-condition: "error"*/
                                          
                                          if (x === 0) {
                                              doSomething();
                                          }
                                          
                                          for (;;) {
                                              doSomethingForever();
                                          }
                                          
                                          while (typeof x === "undefined") {
                                              doSomething();
                                          }
                                          
                                          do {
                                              doSomething();
                                          } while (x);
                                          
                                          var result = x !== 0 ? a : b;

                                          Options

                                          checkLoops

                                          Set to true by default. Setting this option to false allows constant expressions in loops.

                                          Examples of correct code for when checkLoops is false:

                                          /*eslint no-constant-condition: ["error", { "checkLoops": false }]*/
                                          
                                          while (true) {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          };
                                          
                                          for (;true;) {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          };
                                          
                                          do {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          } while (true)

                                          Source: http://eslint.org/docs/rules/

                                          Assignment to property of function parameter '_context7'.
                                          Open

                                                          _context7.next = 7;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Missing trailing comma.
                                          Open

                                              }

                                          require or disallow trailing commas (comma-dangle)

                                          Trailing commas in object literals are valid according to the ECMAScript 5 (and ECMAScript 3!) spec. However, IE8 (when not in IE8 document mode) and below will throw an error when it encounters trailing commas in JavaScript.

                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };

                                          Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. Another argument in favor of trailing commas is that it improves the clarity of diffs when an item is added or removed from an object or array:

                                          Less clear:

                                          var foo = {
                                          -    bar: "baz",
                                          -    qux: "quux"
                                          +    bar: "baz"
                                           };

                                          More clear:

                                          var foo = {
                                               bar: "baz",
                                          -    qux: "quux",
                                           };

                                          Rule Details

                                          This rule enforces consistent use of trailing commas in object and array literals.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "comma-dangle": ["error", "never"],
                                              // or
                                              "comma-dangle": ["error", {
                                                  "arrays": "never",
                                                  "objects": "never",
                                                  "imports": "never",
                                                  "exports": "never",
                                                  "functions": "ignore",
                                              }]
                                          }
                                          • "never" (default) disallows trailing commas
                                          • "always" requires trailing commas
                                          • "always-multiline" requires trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }
                                          • "only-multiline" allows (but does not require) trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }

                                          Trailing commas in function declarations and function calls are valid syntax since ECMAScript 2017; however, the string option does not check these situations for backwards compatibility.

                                          You can also use an object option to configure this rule for each type of syntax. Each of the following options can be set to "never", "always", "always-multiline", "only-multiline", or "ignore". The default for each option is "never" unless otherwise specified.

                                          • arrays is for array literals and array patterns of destructuring. (e.g. let [a,] = [1,];)
                                          • objects is for object literals and object patterns of destructuring. (e.g. let {a,} = {a: 1};)
                                          • imports is for import declarations of ES Modules. (e.g. import {a,} from "foo";)
                                          • exports is for export declarations of ES Modules. (e.g. export {a,};)
                                          • functions is for function declarations and function calls. (e.g. (function(a,){ })(b,);)
                                            functions is set to "ignore" by default for consistency with the string option.

                                          never

                                          Examples of incorrect code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          Examples of correct code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          always

                                          Examples of incorrect code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          always-multiline

                                          Examples of incorrect code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          only-multiline

                                          Examples of incorrect code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];

                                          Examples of correct code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          functions

                                          Examples of incorrect code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          Examples of correct code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of incorrect code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of correct code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with dangling commas. Source: http://eslint.org/docs/rules/

                                          '_x29' is defined but never used.
                                          Open

                                                function _get_balloon(_x28, _x29) {

                                          Disallow Unused Variables (no-unused-vars)

                                          Variables that are declared and not used anywhere in the code are most likely an error due to incomplete refactoring. Such variables take up space in the code and can lead to confusion by readers.

                                          Rule Details

                                          This rule is aimed at eliminating unused variables, functions, and parameters of functions.

                                          A variable is considered to be used if any of the following are true:

                                          • It represents a function that is called (doSomething())
                                          • It is read (var y = x)
                                          • It is passed into a function as an argument (doSomething(x))
                                          • It is read inside of a function that is passed to another function (doSomething(function() { foo(); }))

                                          A variable is not considered to be used if it is only ever assigned to (var x = 5) or declared.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-unused-vars: "error"*/
                                          /*global some_unused_var*/
                                          
                                          // It checks variables you have defined as global
                                          some_unused_var = 42;
                                          
                                          var x;
                                          
                                          // Write-only variables are not considered as used.
                                          var y = 10;
                                          y = 5;
                                          
                                          // A read for a modification of itself is not considered as used.
                                          var z = 0;
                                          z = z + 1;
                                          
                                          // By default, unused arguments cause warnings.
                                          (function(foo) {
                                              return 5;
                                          })();
                                          
                                          // Unused recursive functions also cause warnings.
                                          function fact(n) {
                                              if (n < 2) return 1;
                                              return n * fact(n - 1);
                                          }
                                          
                                          // When a function definition destructures an array, unused entries from the array also cause warnings.
                                          function getY([x, y]) {
                                              return y;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-unused-vars: "error"*/
                                          
                                          var x = 10;
                                          alert(x);
                                          
                                          // foo is considered used here
                                          myFunc(function foo() {
                                              // ...
                                          }.bind(this));
                                          
                                          (function(foo) {
                                              return foo;
                                          })();
                                          
                                          var myFunc;
                                          myFunc = setTimeout(function() {
                                              // myFunc is considered used
                                              myFunc();
                                          }, 50);
                                          
                                          // Only the second argument from the descructured array is used.
                                          function getY([, y]) {
                                              return y;
                                          }

                                          exported

                                          In environments outside of CommonJS or ECMAScript modules, you may use var to create a global variable that may be used by other scripts. You can use the /* exported variableName */ comment block to indicate that this variable is being exported and therefore should not be considered unused.

                                          Note that /* exported */ has no effect for any of the following:

                                          • when the environment is node or commonjs
                                          • when parserOptions.sourceType is module
                                          • when ecmaFeatures.globalReturn is true

                                          The line comment // exported variableName will not work as exported is not line-specific.

                                          Examples of correct code for /* exported variableName */ operation:

                                          /* exported global_var */
                                          
                                          var global_var = 42;

                                          Options

                                          This rule takes one argument which can be a string or an object. The string settings are the same as those of the vars property (explained below).

                                          By default this rule is enabled with all option for variables and after-used for arguments.

                                          {
                                              "rules": {
                                                  "no-unused-vars": ["error", { "vars": "all", "args": "after-used", "ignoreRestSiblings": false }]
                                              }
                                          }

                                          vars

                                          The vars option has two settings:

                                          • all checks all variables for usage, including those in the global scope. This is the default setting.
                                          • local checks only that locally-declared variables are used but will allow global variables to be unused.

                                          vars: local

                                          Examples of correct code for the { "vars": "local" } option:

                                          /*eslint no-unused-vars: ["error", { "vars": "local" }]*/
                                          /*global some_unused_var */
                                          
                                          some_unused_var = 42;

                                          varsIgnorePattern

                                          The varsIgnorePattern option specifies exceptions not to check for usage: variables whose names match a regexp pattern. For example, variables whose names contain ignored or Ignored.

                                          Examples of correct code for the { "varsIgnorePattern": "[iI]gnored" } option:

                                          /*eslint no-unused-vars: ["error", { "varsIgnorePattern": "[iI]gnored" }]*/
                                          
                                          var firstVarIgnored = 1;
                                          var secondVar = 2;
                                          console.log(secondVar);

                                          args

                                          The args option has three settings:

                                          • after-used - only the last argument must be used. This allows you, for instance, to have two named parameters to a function and as long as you use the second argument, ESLint will not warn you about the first. This is the default setting.
                                          • all - all named arguments must be used.
                                          • none - do not check arguments.

                                          args: after-used

                                          Examples of incorrect code for the default { "args": "after-used" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "after-used" }]*/
                                          
                                          // 1 error
                                          // "baz" is defined but never used
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          Examples of correct code for the default { "args": "after-used" } option:

                                          /*eslint no-unused-vars: ["error", {"args": "after-used"}]*/
                                          
                                          (function(foo, bar, baz) {
                                              return baz;
                                          })();

                                          args: all

                                          Examples of incorrect code for the { "args": "all" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "all" }]*/
                                          
                                          // 2 errors
                                          // "foo" is defined but never used
                                          // "baz" is defined but never used
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          args: none

                                          Examples of correct code for the { "args": "none" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "none" }]*/
                                          
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          ignoreRestSiblings

                                          The ignoreRestSiblings option is a boolean (default: false). Using a Rest Property it is possible to "omit" properties from an object, but by default the sibling properties are marked as "unused". With this option enabled the rest property's siblings are ignored.

                                          Examples of correct code for the { "ignoreRestSiblings": true } option:

                                          /*eslint no-unused-vars: ["error", { "ignoreRestSiblings": true }]*/
                                          // 'type' is ignored because it has a rest property sibling.
                                          var { type, ...coords } = data;

                                          argsIgnorePattern

                                          The argsIgnorePattern option specifies exceptions not to check for usage: arguments whose names match a regexp pattern. For example, variables whose names begin with an underscore.

                                          Examples of correct code for the { "argsIgnorePattern": "^_" } option:

                                          /*eslint no-unused-vars: ["error", { "argsIgnorePattern": "^_" }]*/
                                          
                                          function foo(x, _y) {
                                              return x + 1;
                                          }
                                          foo();

                                          caughtErrors

                                          The caughtErrors option is used for catch block arguments validation.

                                          It has two settings:

                                          • none - do not check error objects. This is the default setting.
                                          • all - all named arguments must be used.

                                          caughtErrors: none

                                          Not specifying this rule is equivalent of assigning it to none.

                                          Examples of correct code for the { "caughtErrors": "none" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrors": "none" }]*/
                                          
                                          try {
                                              //...
                                          } catch (err) {
                                              console.error("errors");
                                          }

                                          caughtErrors: all

                                          Examples of incorrect code for the { "caughtErrors": "all" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrors": "all" }]*/
                                          
                                          // 1 error
                                          // "err" is defined but never used
                                          try {
                                              //...
                                          } catch (err) {
                                              console.error("errors");
                                          }

                                          caughtErrorsIgnorePattern

                                          The caughtErrorsIgnorePattern option specifies exceptions not to check for usage: catch arguments whose names match a regexp pattern. For example, variables whose names begin with a string 'ignore'.

                                          Examples of correct code for the { "caughtErrorsIgnorePattern": "^ignore" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrorsIgnorePattern": "^ignore" }]*/
                                          
                                          try {
                                              //...
                                          } catch (ignoreErr) {
                                              console.error("errors");
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about unused variables or function arguments, you can safely turn this rule off. Source: http://eslint.org/docs/rules/

                                          Missing trailing comma.
                                          Open

                                              }

                                          require or disallow trailing commas (comma-dangle)

                                          Trailing commas in object literals are valid according to the ECMAScript 5 (and ECMAScript 3!) spec. However, IE8 (when not in IE8 document mode) and below will throw an error when it encounters trailing commas in JavaScript.

                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };

                                          Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. Another argument in favor of trailing commas is that it improves the clarity of diffs when an item is added or removed from an object or array:

                                          Less clear:

                                          var foo = {
                                          -    bar: "baz",
                                          -    qux: "quux"
                                          +    bar: "baz"
                                           };

                                          More clear:

                                          var foo = {
                                               bar: "baz",
                                          -    qux: "quux",
                                           };

                                          Rule Details

                                          This rule enforces consistent use of trailing commas in object and array literals.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "comma-dangle": ["error", "never"],
                                              // or
                                              "comma-dangle": ["error", {
                                                  "arrays": "never",
                                                  "objects": "never",
                                                  "imports": "never",
                                                  "exports": "never",
                                                  "functions": "ignore",
                                              }]
                                          }
                                          • "never" (default) disallows trailing commas
                                          • "always" requires trailing commas
                                          • "always-multiline" requires trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }
                                          • "only-multiline" allows (but does not require) trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }

                                          Trailing commas in function declarations and function calls are valid syntax since ECMAScript 2017; however, the string option does not check these situations for backwards compatibility.

                                          You can also use an object option to configure this rule for each type of syntax. Each of the following options can be set to "never", "always", "always-multiline", "only-multiline", or "ignore". The default for each option is "never" unless otherwise specified.

                                          • arrays is for array literals and array patterns of destructuring. (e.g. let [a,] = [1,];)
                                          • objects is for object literals and object patterns of destructuring. (e.g. let {a,} = {a: 1};)
                                          • imports is for import declarations of ES Modules. (e.g. import {a,} from "foo";)
                                          • exports is for export declarations of ES Modules. (e.g. export {a,};)
                                          • functions is for function declarations and function calls. (e.g. (function(a,){ })(b,);)
                                            functions is set to "ignore" by default for consistency with the string option.

                                          never

                                          Examples of incorrect code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          Examples of correct code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          always

                                          Examples of incorrect code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          always-multiline

                                          Examples of incorrect code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          only-multiline

                                          Examples of incorrect code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];

                                          Examples of correct code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          functions

                                          Examples of incorrect code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          Examples of correct code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of incorrect code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of correct code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with dangling commas. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                  return _ref8.apply(this, arguments);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Assignment to property of function parameter '_context7'.
                                          Open

                                                      switch (_context7.prev = _context7.next) {

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Assignment to property of function parameter '_context10'.
                                          Open

                                                      switch (_context10.prev = _context10.next) {

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          '_x30' is defined but never used.
                                          Open

                                                function _get_balloon_directory(_x30) {

                                          Disallow Unused Variables (no-unused-vars)

                                          Variables that are declared and not used anywhere in the code are most likely an error due to incomplete refactoring. Such variables take up space in the code and can lead to confusion by readers.

                                          Rule Details

                                          This rule is aimed at eliminating unused variables, functions, and parameters of functions.

                                          A variable is considered to be used if any of the following are true:

                                          • It represents a function that is called (doSomething())
                                          • It is read (var y = x)
                                          • It is passed into a function as an argument (doSomething(x))
                                          • It is read inside of a function that is passed to another function (doSomething(function() { foo(); }))

                                          A variable is not considered to be used if it is only ever assigned to (var x = 5) or declared.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-unused-vars: "error"*/
                                          /*global some_unused_var*/
                                          
                                          // It checks variables you have defined as global
                                          some_unused_var = 42;
                                          
                                          var x;
                                          
                                          // Write-only variables are not considered as used.
                                          var y = 10;
                                          y = 5;
                                          
                                          // A read for a modification of itself is not considered as used.
                                          var z = 0;
                                          z = z + 1;
                                          
                                          // By default, unused arguments cause warnings.
                                          (function(foo) {
                                              return 5;
                                          })();
                                          
                                          // Unused recursive functions also cause warnings.
                                          function fact(n) {
                                              if (n < 2) return 1;
                                              return n * fact(n - 1);
                                          }
                                          
                                          // When a function definition destructures an array, unused entries from the array also cause warnings.
                                          function getY([x, y]) {
                                              return y;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-unused-vars: "error"*/
                                          
                                          var x = 10;
                                          alert(x);
                                          
                                          // foo is considered used here
                                          myFunc(function foo() {
                                              // ...
                                          }.bind(this));
                                          
                                          (function(foo) {
                                              return foo;
                                          })();
                                          
                                          var myFunc;
                                          myFunc = setTimeout(function() {
                                              // myFunc is considered used
                                              myFunc();
                                          }, 50);
                                          
                                          // Only the second argument from the descructured array is used.
                                          function getY([, y]) {
                                              return y;
                                          }

                                          exported

                                          In environments outside of CommonJS or ECMAScript modules, you may use var to create a global variable that may be used by other scripts. You can use the /* exported variableName */ comment block to indicate that this variable is being exported and therefore should not be considered unused.

                                          Note that /* exported */ has no effect for any of the following:

                                          • when the environment is node or commonjs
                                          • when parserOptions.sourceType is module
                                          • when ecmaFeatures.globalReturn is true

                                          The line comment // exported variableName will not work as exported is not line-specific.

                                          Examples of correct code for /* exported variableName */ operation:

                                          /* exported global_var */
                                          
                                          var global_var = 42;

                                          Options

                                          This rule takes one argument which can be a string or an object. The string settings are the same as those of the vars property (explained below).

                                          By default this rule is enabled with all option for variables and after-used for arguments.

                                          {
                                              "rules": {
                                                  "no-unused-vars": ["error", { "vars": "all", "args": "after-used", "ignoreRestSiblings": false }]
                                              }
                                          }

                                          vars

                                          The vars option has two settings:

                                          • all checks all variables for usage, including those in the global scope. This is the default setting.
                                          • local checks only that locally-declared variables are used but will allow global variables to be unused.

                                          vars: local

                                          Examples of correct code for the { "vars": "local" } option:

                                          /*eslint no-unused-vars: ["error", { "vars": "local" }]*/
                                          /*global some_unused_var */
                                          
                                          some_unused_var = 42;

                                          varsIgnorePattern

                                          The varsIgnorePattern option specifies exceptions not to check for usage: variables whose names match a regexp pattern. For example, variables whose names contain ignored or Ignored.

                                          Examples of correct code for the { "varsIgnorePattern": "[iI]gnored" } option:

                                          /*eslint no-unused-vars: ["error", { "varsIgnorePattern": "[iI]gnored" }]*/
                                          
                                          var firstVarIgnored = 1;
                                          var secondVar = 2;
                                          console.log(secondVar);

                                          args

                                          The args option has three settings:

                                          • after-used - only the last argument must be used. This allows you, for instance, to have two named parameters to a function and as long as you use the second argument, ESLint will not warn you about the first. This is the default setting.
                                          • all - all named arguments must be used.
                                          • none - do not check arguments.

                                          args: after-used

                                          Examples of incorrect code for the default { "args": "after-used" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "after-used" }]*/
                                          
                                          // 1 error
                                          // "baz" is defined but never used
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          Examples of correct code for the default { "args": "after-used" } option:

                                          /*eslint no-unused-vars: ["error", {"args": "after-used"}]*/
                                          
                                          (function(foo, bar, baz) {
                                              return baz;
                                          })();

                                          args: all

                                          Examples of incorrect code for the { "args": "all" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "all" }]*/
                                          
                                          // 2 errors
                                          // "foo" is defined but never used
                                          // "baz" is defined but never used
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          args: none

                                          Examples of correct code for the { "args": "none" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "none" }]*/
                                          
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          ignoreRestSiblings

                                          The ignoreRestSiblings option is a boolean (default: false). Using a Rest Property it is possible to "omit" properties from an object, but by default the sibling properties are marked as "unused". With this option enabled the rest property's siblings are ignored.

                                          Examples of correct code for the { "ignoreRestSiblings": true } option:

                                          /*eslint no-unused-vars: ["error", { "ignoreRestSiblings": true }]*/
                                          // 'type' is ignored because it has a rest property sibling.
                                          var { type, ...coords } = data;

                                          argsIgnorePattern

                                          The argsIgnorePattern option specifies exceptions not to check for usage: arguments whose names match a regexp pattern. For example, variables whose names begin with an underscore.

                                          Examples of correct code for the { "argsIgnorePattern": "^_" } option:

                                          /*eslint no-unused-vars: ["error", { "argsIgnorePattern": "^_" }]*/
                                          
                                          function foo(x, _y) {
                                              return x + 1;
                                          }
                                          foo();

                                          caughtErrors

                                          The caughtErrors option is used for catch block arguments validation.

                                          It has two settings:

                                          • none - do not check error objects. This is the default setting.
                                          • all - all named arguments must be used.

                                          caughtErrors: none

                                          Not specifying this rule is equivalent of assigning it to none.

                                          Examples of correct code for the { "caughtErrors": "none" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrors": "none" }]*/
                                          
                                          try {
                                              //...
                                          } catch (err) {
                                              console.error("errors");
                                          }

                                          caughtErrors: all

                                          Examples of incorrect code for the { "caughtErrors": "all" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrors": "all" }]*/
                                          
                                          // 1 error
                                          // "err" is defined but never used
                                          try {
                                              //...
                                          } catch (err) {
                                              console.error("errors");
                                          }

                                          caughtErrorsIgnorePattern

                                          The caughtErrorsIgnorePattern option specifies exceptions not to check for usage: catch arguments whose names match a regexp pattern. For example, variables whose names begin with a string 'ignore'.

                                          Examples of correct code for the { "caughtErrorsIgnorePattern": "^ignore" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrorsIgnorePattern": "^ignore" }]*/
                                          
                                          try {
                                              //...
                                          } catch (ignoreErr) {
                                              console.error("errors");
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about unused variables or function arguments, you can safely turn this rule off. Source: http://eslint.org/docs/rules/

                                          Assignment to property of function parameter '_context10'.
                                          Open

                                                          _context10.next = 2;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Assignment to property of function parameter '_context11'.
                                          Open

                                                          _context11.next = 17;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Unexpected 'todo' comment.
                                          Open

                                                            // TODO: fromの他形式対応

                                          Disallow Warning Comments (no-warning-comments)

                                          Developers often add comments to code which is not complete or needs review. Most likely you want to fix or review the code, and then remove the comment, before you consider the code to be production ready.

                                          // TODO: do something
                                          // FIXME: this is not a good idea

                                          Rule Details

                                          This rule reports comments that include any of the predefined terms specified in its configuration.

                                          Options

                                          This rule has an options object literal:

                                          • "terms": optional array of terms to match. Defaults to ["todo", "fixme", "xxx"]. Terms are matched case-insensitive and as whole words: fix would match FIX but not fixing. Terms can consist of multiple words: really bad idea.
                                          • "location": optional string that configures where in your comments to check for matches. Defaults to "start". The other value is match anywhere in comments.

                                          Example of incorrect code for the default { "terms": ["todo", "fixme", "xxx"], "location": "start" } options:

                                          /*eslint no-warning-comments: "error"*/
                                          
                                          function callback(err, results) {
                                            if (err) {
                                              console.error(err);
                                              return;
                                            }
                                            // TODO
                                          }

                                          Example of correct code for the default { "terms": ["todo", "fixme", "xxx"], "location": "start" } options:

                                          /*eslint no-warning-comments: "error"*/
                                          
                                          function callback(err, results) {
                                            if (err) {
                                              console.error(err);
                                              return;
                                            }
                                            // NOT READY FOR PRIME TIME
                                            // but too bad, it is not a predefined warning term
                                          }

                                          terms and location

                                          Examples of incorrect code for the { "terms": ["todo", "fixme", "any other term"], "location": "anywhere" } options:

                                          /*eslint no-warning-comments: ["error", { "terms": ["todo", "fixme", "any other term"], "location": "anywhere" }]*/
                                          
                                          // TODO: this
                                          // todo: this too
                                          // Even this: TODO
                                          /* /*
                                           * The same goes for this TODO comment
                                           * Or a fixme
                                           * as well as any other term
                                           */

                                          Examples of correct code for the { "terms": ["todo", "fixme", "any other term"], "location": "anywhere" } options:

                                          /*eslint no-warning-comments: ["error", { "terms": ["todo", "fixme", "any other term"], "location": "anywhere" }]*/
                                          
                                          // This is to do
                                          // even not any other    term
                                          // any other terminal
                                          /*
                                           * The same goes for block comments
                                           * with any other interesting term
                                           * or fix me this
                                           */

                                          When Not To Use It

                                          • If you have a large code base that was not developed with a policy to not use such warning terms, you might get hundreds of warnings / errors which might be counter-productive if you can't fix all of them (e.g. if you don't get the time to do it) as you might overlook other warnings / errors or get used to many of them and don't pay attention on it anymore.
                                          • Same reason as the point above: You shouldn't configure terms that are used very often (e.g. central parts of the native language used in your comments). Source: http://eslint.org/docs/rules/

                                          Assignment to property of function parameter '_context11'.
                                          Open

                                                          _context11.next = 36;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Unexpected 'this'.
                                          Open

                                                          this.emit('install_succeed', target, nar);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Missing trailing comma.
                                          Open

                                              }

                                          require or disallow trailing commas (comma-dangle)

                                          Trailing commas in object literals are valid according to the ECMAScript 5 (and ECMAScript 3!) spec. However, IE8 (when not in IE8 document mode) and below will throw an error when it encounters trailing commas in JavaScript.

                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };

                                          Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. Another argument in favor of trailing commas is that it improves the clarity of diffs when an item is added or removed from an object or array:

                                          Less clear:

                                          var foo = {
                                          -    bar: "baz",
                                          -    qux: "quux"
                                          +    bar: "baz"
                                           };

                                          More clear:

                                          var foo = {
                                               bar: "baz",
                                          -    qux: "quux",
                                           };

                                          Rule Details

                                          This rule enforces consistent use of trailing commas in object and array literals.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "comma-dangle": ["error", "never"],
                                              // or
                                              "comma-dangle": ["error", {
                                                  "arrays": "never",
                                                  "objects": "never",
                                                  "imports": "never",
                                                  "exports": "never",
                                                  "functions": "ignore",
                                              }]
                                          }
                                          • "never" (default) disallows trailing commas
                                          • "always" requires trailing commas
                                          • "always-multiline" requires trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }
                                          • "only-multiline" allows (but does not require) trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }

                                          Trailing commas in function declarations and function calls are valid syntax since ECMAScript 2017; however, the string option does not check these situations for backwards compatibility.

                                          You can also use an object option to configure this rule for each type of syntax. Each of the following options can be set to "never", "always", "always-multiline", "only-multiline", or "ignore". The default for each option is "never" unless otherwise specified.

                                          • arrays is for array literals and array patterns of destructuring. (e.g. let [a,] = [1,];)
                                          • objects is for object literals and object patterns of destructuring. (e.g. let {a,} = {a: 1};)
                                          • imports is for import declarations of ES Modules. (e.g. import {a,} from "foo";)
                                          • exports is for export declarations of ES Modules. (e.g. export {a,};)
                                          • functions is for function declarations and function calls. (e.g. (function(a,){ })(b,);)
                                            functions is set to "ignore" by default for consistency with the string option.

                                          never

                                          Examples of incorrect code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          Examples of correct code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          always

                                          Examples of incorrect code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          always-multiline

                                          Examples of incorrect code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          only-multiline

                                          Examples of incorrect code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];

                                          Examples of correct code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          functions

                                          Examples of incorrect code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          Examples of correct code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of incorrect code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of correct code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with dangling commas. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                          this.emit('install_failure', _context11.t0);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected constant condition.
                                          Open

                                                    while (1) {

                                          disallow constant expressions in conditions (no-constant-condition)

                                          A constant expression (for example, a literal) as a test condition might be a typo or development trigger for a specific behavior. For example, the following code looks as if it is not ready for production.

                                          if (false) {
                                              doSomethingUnfinished();
                                          }

                                          Rule Details

                                          This rule disallows constant expressions in the test condition of:

                                          • if, for, while, or do...while statement
                                          • ?: ternary expression

                                          Examples of incorrect code for this rule:

                                          /*eslint no-constant-condition: "error"*/
                                          
                                          if (false) {
                                              doSomethingUnfinished();
                                          }
                                          
                                          if (void x) {
                                              doSomethingUnfinished();
                                          }
                                          
                                          for (;-2;) {
                                              doSomethingForever();
                                          }
                                          
                                          while (typeof x) {
                                              doSomethingForever();
                                          }
                                          
                                          do {
                                              doSomethingForever();
                                          } while (x = -1);
                                          
                                          var result = 0 ? a : b;

                                          Examples of correct code for this rule:

                                          /*eslint no-constant-condition: "error"*/
                                          
                                          if (x === 0) {
                                              doSomething();
                                          }
                                          
                                          for (;;) {
                                              doSomethingForever();
                                          }
                                          
                                          while (typeof x === "undefined") {
                                              doSomething();
                                          }
                                          
                                          do {
                                              doSomething();
                                          } while (x);
                                          
                                          var result = x !== 0 ? a : b;

                                          Options

                                          checkLoops

                                          Set to true by default. Setting this option to false allows constant expressions in loops.

                                          Examples of correct code for when checkLoops is false:

                                          /*eslint no-constant-condition: ["error", { "checkLoops": false }]*/
                                          
                                          while (true) {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          };
                                          
                                          for (;true;) {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          };
                                          
                                          do {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          } while (true)

                                          Source: http://eslint.org/docs/rules/

                                          Assignment to property of function parameter '_context11'.
                                          Open

                                                          _context11.next = 13;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Missing trailing comma.
                                          Open

                                              }

                                          require or disallow trailing commas (comma-dangle)

                                          Trailing commas in object literals are valid according to the ECMAScript 5 (and ECMAScript 3!) spec. However, IE8 (when not in IE8 document mode) and below will throw an error when it encounters trailing commas in JavaScript.

                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };

                                          Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. Another argument in favor of trailing commas is that it improves the clarity of diffs when an item is added or removed from an object or array:

                                          Less clear:

                                          var foo = {
                                          -    bar: "baz",
                                          -    qux: "quux"
                                          +    bar: "baz"
                                           };

                                          More clear:

                                          var foo = {
                                               bar: "baz",
                                          -    qux: "quux",
                                           };

                                          Rule Details

                                          This rule enforces consistent use of trailing commas in object and array literals.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "comma-dangle": ["error", "never"],
                                              // or
                                              "comma-dangle": ["error", {
                                                  "arrays": "never",
                                                  "objects": "never",
                                                  "imports": "never",
                                                  "exports": "never",
                                                  "functions": "ignore",
                                              }]
                                          }
                                          • "never" (default) disallows trailing commas
                                          • "always" requires trailing commas
                                          • "always-multiline" requires trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }
                                          • "only-multiline" allows (but does not require) trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }

                                          Trailing commas in function declarations and function calls are valid syntax since ECMAScript 2017; however, the string option does not check these situations for backwards compatibility.

                                          You can also use an object option to configure this rule for each type of syntax. Each of the following options can be set to "never", "always", "always-multiline", "only-multiline", or "ignore". The default for each option is "never" unless otherwise specified.

                                          • arrays is for array literals and array patterns of destructuring. (e.g. let [a,] = [1,];)
                                          • objects is for object literals and object patterns of destructuring. (e.g. let {a,} = {a: 1};)
                                          • imports is for import declarations of ES Modules. (e.g. import {a,} from "foo";)
                                          • exports is for export declarations of ES Modules. (e.g. export {a,};)
                                          • functions is for function declarations and function calls. (e.g. (function(a,){ })(b,);)
                                            functions is set to "ignore" by default for consistency with the string option.

                                          never

                                          Examples of incorrect code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          Examples of correct code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          always

                                          Examples of incorrect code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          always-multiline

                                          Examples of incorrect code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          only-multiline

                                          Examples of incorrect code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];

                                          Examples of correct code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          functions

                                          Examples of incorrect code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          Examples of correct code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of incorrect code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of correct code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with dangling commas. Source: http://eslint.org/docs/rules/

                                          Missing trailing comma.
                                          Open

                                              }

                                          require or disallow trailing commas (comma-dangle)

                                          Trailing commas in object literals are valid according to the ECMAScript 5 (and ECMAScript 3!) spec. However, IE8 (when not in IE8 document mode) and below will throw an error when it encounters trailing commas in JavaScript.

                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };

                                          Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. Another argument in favor of trailing commas is that it improves the clarity of diffs when an item is added or removed from an object or array:

                                          Less clear:

                                          var foo = {
                                          -    bar: "baz",
                                          -    qux: "quux"
                                          +    bar: "baz"
                                           };

                                          More clear:

                                          var foo = {
                                               bar: "baz",
                                          -    qux: "quux",
                                           };

                                          Rule Details

                                          This rule enforces consistent use of trailing commas in object and array literals.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "comma-dangle": ["error", "never"],
                                              // or
                                              "comma-dangle": ["error", {
                                                  "arrays": "never",
                                                  "objects": "never",
                                                  "imports": "never",
                                                  "exports": "never",
                                                  "functions": "ignore",
                                              }]
                                          }
                                          • "never" (default) disallows trailing commas
                                          • "always" requires trailing commas
                                          • "always-multiline" requires trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }
                                          • "only-multiline" allows (but does not require) trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }

                                          Trailing commas in function declarations and function calls are valid syntax since ECMAScript 2017; however, the string option does not check these situations for backwards compatibility.

                                          You can also use an object option to configure this rule for each type of syntax. Each of the following options can be set to "never", "always", "always-multiline", "only-multiline", or "ignore". The default for each option is "never" unless otherwise specified.

                                          • arrays is for array literals and array patterns of destructuring. (e.g. let [a,] = [1,];)
                                          • objects is for object literals and object patterns of destructuring. (e.g. let {a,} = {a: 1};)
                                          • imports is for import declarations of ES Modules. (e.g. import {a,} from "foo";)
                                          • exports is for export declarations of ES Modules. (e.g. export {a,};)
                                          • functions is for function declarations and function calls. (e.g. (function(a,){ })(b,);)
                                            functions is set to "ignore" by default for consistency with the string option.

                                          never

                                          Examples of incorrect code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          Examples of correct code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          always

                                          Examples of incorrect code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          always-multiline

                                          Examples of incorrect code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          only-multiline

                                          Examples of incorrect code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];

                                          Examples of correct code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          functions

                                          Examples of incorrect code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          Examples of correct code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of incorrect code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of correct code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with dangling commas. Source: http://eslint.org/docs/rules/

                                          Expected a default case.
                                          Open

                                                      switch (_context11.prev = _context11.next) {

                                          Require Default Case in Switch Statements (default-case)

                                          Some code conventions require that all switch statements have a default case, even if the default case is empty, such as:

                                          switch (foo) {
                                              case 1:
                                                  doSomething();
                                                  break;
                                          
                                              case 2:
                                                  doSomething();
                                                  break;
                                          
                                              default:
                                                  // do nothing
                                          }

                                          The thinking is that it's better to always explicitly state what the default behavior should be so that it's clear whether or not the developer forgot to include the default behavior by mistake.

                                          Other code conventions allow you to skip the default case so long as there is a comment indicating the omission is intentional, such as:

                                          switch (foo) {
                                              case 1:
                                                  doSomething();
                                                  break;
                                          
                                              case 2:
                                                  doSomething();
                                                  break;
                                          
                                              // no default
                                          }

                                          Once again, the intent here is to show that the developer intended for there to be no default behavior.

                                          Rule Details

                                          This rule aims to require default case in switch statements. You may optionally include a // no default after the last case if there is no default case. The comment may be in any desired case, such as // No Default.

                                          Examples of incorrect code for this rule:

                                          /*eslint default-case: "error"*/
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint default-case: "error"*/
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              default:
                                                  /* code */
                                                  break;
                                          }
                                          
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // no default
                                          }
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // No Default
                                          }

                                          Options

                                          This rule accepts a single options argument:

                                          • Set the commentPattern option to a regular expression string to change the default /^no default$/i comment test pattern

                                          commentPattern

                                          Examples of correct code for the { "commentPattern": "^skip\\sdefault" } option:

                                          /*eslint default-case: ["error", { "commentPattern": "^skip\\sdefault" }]*/
                                          
                                          switch(a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // skip default
                                          }
                                          
                                          switch(a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // skip default case
                                          }

                                          When Not To Use It

                                          If you don't want to enforce a default case for switch statements, you can safely disable this rule.

                                          Related Rules

                                          '_x33' is defined but never used.
                                          Open

                                                function installNar(_x32, _x33) {

                                          Disallow Unused Variables (no-unused-vars)

                                          Variables that are declared and not used anywhere in the code are most likely an error due to incomplete refactoring. Such variables take up space in the code and can lead to confusion by readers.

                                          Rule Details

                                          This rule is aimed at eliminating unused variables, functions, and parameters of functions.

                                          A variable is considered to be used if any of the following are true:

                                          • It represents a function that is called (doSomething())
                                          • It is read (var y = x)
                                          • It is passed into a function as an argument (doSomething(x))
                                          • It is read inside of a function that is passed to another function (doSomething(function() { foo(); }))

                                          A variable is not considered to be used if it is only ever assigned to (var x = 5) or declared.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-unused-vars: "error"*/
                                          /*global some_unused_var*/
                                          
                                          // It checks variables you have defined as global
                                          some_unused_var = 42;
                                          
                                          var x;
                                          
                                          // Write-only variables are not considered as used.
                                          var y = 10;
                                          y = 5;
                                          
                                          // A read for a modification of itself is not considered as used.
                                          var z = 0;
                                          z = z + 1;
                                          
                                          // By default, unused arguments cause warnings.
                                          (function(foo) {
                                              return 5;
                                          })();
                                          
                                          // Unused recursive functions also cause warnings.
                                          function fact(n) {
                                              if (n < 2) return 1;
                                              return n * fact(n - 1);
                                          }
                                          
                                          // When a function definition destructures an array, unused entries from the array also cause warnings.
                                          function getY([x, y]) {
                                              return y;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-unused-vars: "error"*/
                                          
                                          var x = 10;
                                          alert(x);
                                          
                                          // foo is considered used here
                                          myFunc(function foo() {
                                              // ...
                                          }.bind(this));
                                          
                                          (function(foo) {
                                              return foo;
                                          })();
                                          
                                          var myFunc;
                                          myFunc = setTimeout(function() {
                                              // myFunc is considered used
                                              myFunc();
                                          }, 50);
                                          
                                          // Only the second argument from the descructured array is used.
                                          function getY([, y]) {
                                              return y;
                                          }

                                          exported

                                          In environments outside of CommonJS or ECMAScript modules, you may use var to create a global variable that may be used by other scripts. You can use the /* exported variableName */ comment block to indicate that this variable is being exported and therefore should not be considered unused.

                                          Note that /* exported */ has no effect for any of the following:

                                          • when the environment is node or commonjs
                                          • when parserOptions.sourceType is module
                                          • when ecmaFeatures.globalReturn is true

                                          The line comment // exported variableName will not work as exported is not line-specific.

                                          Examples of correct code for /* exported variableName */ operation:

                                          /* exported global_var */
                                          
                                          var global_var = 42;

                                          Options

                                          This rule takes one argument which can be a string or an object. The string settings are the same as those of the vars property (explained below).

                                          By default this rule is enabled with all option for variables and after-used for arguments.

                                          {
                                              "rules": {
                                                  "no-unused-vars": ["error", { "vars": "all", "args": "after-used", "ignoreRestSiblings": false }]
                                              }
                                          }

                                          vars

                                          The vars option has two settings:

                                          • all checks all variables for usage, including those in the global scope. This is the default setting.
                                          • local checks only that locally-declared variables are used but will allow global variables to be unused.

                                          vars: local

                                          Examples of correct code for the { "vars": "local" } option:

                                          /*eslint no-unused-vars: ["error", { "vars": "local" }]*/
                                          /*global some_unused_var */
                                          
                                          some_unused_var = 42;

                                          varsIgnorePattern

                                          The varsIgnorePattern option specifies exceptions not to check for usage: variables whose names match a regexp pattern. For example, variables whose names contain ignored or Ignored.

                                          Examples of correct code for the { "varsIgnorePattern": "[iI]gnored" } option:

                                          /*eslint no-unused-vars: ["error", { "varsIgnorePattern": "[iI]gnored" }]*/
                                          
                                          var firstVarIgnored = 1;
                                          var secondVar = 2;
                                          console.log(secondVar);

                                          args

                                          The args option has three settings:

                                          • after-used - only the last argument must be used. This allows you, for instance, to have two named parameters to a function and as long as you use the second argument, ESLint will not warn you about the first. This is the default setting.
                                          • all - all named arguments must be used.
                                          • none - do not check arguments.

                                          args: after-used

                                          Examples of incorrect code for the default { "args": "after-used" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "after-used" }]*/
                                          
                                          // 1 error
                                          // "baz" is defined but never used
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          Examples of correct code for the default { "args": "after-used" } option:

                                          /*eslint no-unused-vars: ["error", {"args": "after-used"}]*/
                                          
                                          (function(foo, bar, baz) {
                                              return baz;
                                          })();

                                          args: all

                                          Examples of incorrect code for the { "args": "all" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "all" }]*/
                                          
                                          // 2 errors
                                          // "foo" is defined but never used
                                          // "baz" is defined but never used
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          args: none

                                          Examples of correct code for the { "args": "none" } option:

                                          /*eslint no-unused-vars: ["error", { "args": "none" }]*/
                                          
                                          (function(foo, bar, baz) {
                                              return bar;
                                          })();

                                          ignoreRestSiblings

                                          The ignoreRestSiblings option is a boolean (default: false). Using a Rest Property it is possible to "omit" properties from an object, but by default the sibling properties are marked as "unused". With this option enabled the rest property's siblings are ignored.

                                          Examples of correct code for the { "ignoreRestSiblings": true } option:

                                          /*eslint no-unused-vars: ["error", { "ignoreRestSiblings": true }]*/
                                          // 'type' is ignored because it has a rest property sibling.
                                          var { type, ...coords } = data;

                                          argsIgnorePattern

                                          The argsIgnorePattern option specifies exceptions not to check for usage: arguments whose names match a regexp pattern. For example, variables whose names begin with an underscore.

                                          Examples of correct code for the { "argsIgnorePattern": "^_" } option:

                                          /*eslint no-unused-vars: ["error", { "argsIgnorePattern": "^_" }]*/
                                          
                                          function foo(x, _y) {
                                              return x + 1;
                                          }
                                          foo();

                                          caughtErrors

                                          The caughtErrors option is used for catch block arguments validation.

                                          It has two settings:

                                          • none - do not check error objects. This is the default setting.
                                          • all - all named arguments must be used.

                                          caughtErrors: none

                                          Not specifying this rule is equivalent of assigning it to none.

                                          Examples of correct code for the { "caughtErrors": "none" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrors": "none" }]*/
                                          
                                          try {
                                              //...
                                          } catch (err) {
                                              console.error("errors");
                                          }

                                          caughtErrors: all

                                          Examples of incorrect code for the { "caughtErrors": "all" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrors": "all" }]*/
                                          
                                          // 1 error
                                          // "err" is defined but never used
                                          try {
                                              //...
                                          } catch (err) {
                                              console.error("errors");
                                          }

                                          caughtErrorsIgnorePattern

                                          The caughtErrorsIgnorePattern option specifies exceptions not to check for usage: catch arguments whose names match a regexp pattern. For example, variables whose names begin with a string 'ignore'.

                                          Examples of correct code for the { "caughtErrorsIgnorePattern": "^ignore" } option:

                                          /*eslint no-unused-vars: ["error", { "caughtErrorsIgnorePattern": "^ignore" }]*/
                                          
                                          try {
                                              //...
                                          } catch (ignoreErr) {
                                              console.error("errors");
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about unused variables or function arguments, you can safely turn this rule off. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                  return _ref13.apply(this, arguments);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Assignment to property of function parameter '_context11'.
                                          Open

                                                          _context11.t0 = _context11['catch'](3);

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Assignment to property of function parameter '_context11'.
                                          Open

                                                          _context11.prev = 3;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Assignment to property of function parameter '_context11'.
                                          Open

                                                          _context11.next = 22;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Expected an assignment or function call and instead saw an expression.
                                          Open

                                                          ghost_result = void 0, balloon_result = void 0;

                                          Disallow Unused Expressions (no-unused-expressions)

                                          An unused expression which has no effect on the state of the program indicates a logic error.

                                          For example, n + 1; is not a syntax error, but it might be a typing mistake where a programmer meant an assignment statement n += 1; instead.

                                          Rule Details

                                          This rule aims to eliminate unused expressions which have no effect on the state of the program.

                                          This rule does not apply to function calls or constructor calls with the new operator, because they could have side effects on the state of the program.

                                          var i = 0;
                                          function increment() { i += 1; }
                                          increment(); // return value is unused, but i changed as a side effect
                                          
                                          var nThings = 0;
                                          function Thing() { nThings += 1; }
                                          new Thing(); // constructed object is unused, but nThings changed as a side effect

                                          This rule does not apply to directives (which are in the form of literal string expressions such as "use strict"; at the beginning of a script, module, or function).

                                          Sequence expressions (those using a comma, such as a = 1, b = 2) are always considered unused unless their return value is assigned or used in a condition evaluation, or a function call is made with the sequence expression value.

                                          Options

                                          This rule, in its default state, does not require any arguments. If you would like to enable one or more of the following you may pass an object with the options set as follows:

                                          • allowShortCircuit set to true will allow you to use short circuit evaluations in your expressions (Default: false).
                                          • allowTernary set to true will enable you to use ternary operators in your expressions similarly to short circuit evaluations (Default: false).
                                          • allowTaggedTemplates set to true will enable you to use tagged template literals in your expressions (Default: false).

                                          These options allow unused expressions only if all of the code paths either directly change the state (for example, assignment statement) or could have side effects (for example, function call).

                                          Examples of incorrect code for the default { "allowShortCircuit": false, "allowTernary": false } options:

                                          /*eslint no-unused-expressions: "error"*/
                                          
                                          0
                                          
                                          if(0) 0
                                          
                                          {0}
                                          
                                          f(0), {}
                                          
                                          a && b()
                                          
                                          a, b()
                                          
                                          c = a, b;
                                          
                                          a() && function namedFunctionInExpressionContext () {f();}
                                          
                                          (function anIncompleteIIFE () {});
                                          
                                          injectGlobal`body{ color: red; }`

                                          Note that one or more string expression statements (with or without semi-colons) will only be considered as unused if they are not in the beginning of a script, module, or function (alone and uninterrupted by other statements). Otherwise, they will be treated as part of a "directive prologue", a section potentially usable by JavaScript engines. This includes "strict mode" directives.

                                          "use strict";
                                          "use asm"
                                          "use stricter";
                                          "use babel"
                                          "any other strings like this in the prologue";

                                          Examples of correct code for the default { "allowShortCircuit": false, "allowTernary": false } options:

                                          /*eslint no-unused-expressions: "error"*/
                                          
                                          {} // In this context, this is a block statement, not an object literal
                                          
                                          {myLabel: someVar} // In this context, this is a block statement with a label and expression, not an object literal
                                          
                                          function namedFunctionDeclaration () {}
                                          
                                          (function aGenuineIIFE () {}());
                                          
                                          f()
                                          
                                          a = 0
                                          
                                          new C
                                          
                                          delete a.b
                                          
                                          void a

                                          allowShortCircuit

                                          Examples of incorrect code for the { "allowShortCircuit": true } option:

                                          /*eslint no-unused-expressions: ["error", { "allowShortCircuit": true }]*/
                                          
                                          a || b

                                          Examples of correct code for the { "allowShortCircuit": true } option:

                                          /*eslint no-unused-expressions: ["error", { "allowShortCircuit": true }]*/
                                          
                                          a && b()
                                          a() || (b = c)

                                          allowTernary

                                          Examples of incorrect code for the { "allowTernary": true } option:

                                          /*eslint no-unused-expressions: ["error", { "allowTernary": true }]*/
                                          
                                          a ? b : 0
                                          a ? b : c()

                                          Examples of correct code for the { "allowTernary": true } option:

                                          /*eslint no-unused-expressions: ["error", { "allowTernary": true }]*/
                                          
                                          a ? b() : c()
                                          a ? (b = c) : d()

                                          allowShortCircuit and allowTernary

                                          Examples of correct code for the { "allowShortCircuit": true, "allowTernary": true } options:

                                          /*eslint no-unused-expressions: ["error", { "allowShortCircuit": true, "allowTernary": true }]*/
                                          
                                          a ? b() || (c = d) : e()

                                          allowTaggedTemplates

                                          Examples of incorrect code for the { "allowTaggedTemplates": true } option:

                                          /*eslint no-unused-expressions: ["error", { "allowTaggedTemplates": true }]*/
                                          
                                          `some untagged template string`;

                                          Examples of correct code for the { "allowTaggedTemplates": true } option:

                                          /*eslint no-unused-expressions: ["error", { "allowTaggedTemplates": true }]*/
                                          
                                          tag`some tagged template string`;

                                          Source: http://eslint.org/docs/rules/

                                          Unexpected use of comma operator.
                                          Open

                                                          ghost_result = void 0, balloon_result = void 0;

                                          Disallow Use of the Comma Operator (no-sequences)

                                          The comma operator includes multiple expressions where only one is expected. It evaluates each operand from left to right and returns the value of the last operand. However, this frequently obscures side effects, and its use is often an accident. Here are some examples of sequences:

                                          var a = (3, 5); // a = 5
                                          
                                          a = b += 5, a + b;
                                          
                                          while (a = next(), a && a.length);
                                          
                                          (0, eval)("doSomething();");

                                          Rule Details

                                          This rule forbids the use of the comma operator, with the following exceptions:

                                          • In the initialization or update portions of a for statement.
                                          • If the expression sequence is explicitly wrapped in parentheses.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-sequences: "error"*/
                                          
                                          foo = doSomething(), val;
                                          
                                          0, eval("doSomething();");
                                          
                                          do {} while (doSomething(), !!test);
                                          
                                          for (; doSomething(), !!test; );
                                          
                                          if (doSomething(), !!test);
                                          
                                          switch (val = foo(), val) {}
                                          
                                          while (val = foo(), val < 42);
                                          
                                          with (doSomething(), val) {}

                                          Examples of correct code for this rule:

                                          /*eslint no-sequences: "error"*/
                                          
                                          foo = (doSomething(), val);
                                          
                                          (0, eval)("doSomething();");
                                          
                                          do {} while ((doSomething(), !!test));
                                          
                                          for (i = 0, j = 10; i < j; i++, j--);
                                          
                                          if ((doSomething(), !!test));
                                          
                                          switch ((val = foo(), val)) {}
                                          
                                          while ((val = foo(), val < 42));
                                          
                                          // with ((doSomething(), val)) {}

                                          When Not To Use It

                                          Disable this rule if sequence expressions with the comma operator are acceptable. Source: http://eslint.org/docs/rules/

                                          Expected a default case.
                                          Open

                                                      switch (_context10.prev = _context10.next) {

                                          Require Default Case in Switch Statements (default-case)

                                          Some code conventions require that all switch statements have a default case, even if the default case is empty, such as:

                                          switch (foo) {
                                              case 1:
                                                  doSomething();
                                                  break;
                                          
                                              case 2:
                                                  doSomething();
                                                  break;
                                          
                                              default:
                                                  // do nothing
                                          }

                                          The thinking is that it's better to always explicitly state what the default behavior should be so that it's clear whether or not the developer forgot to include the default behavior by mistake.

                                          Other code conventions allow you to skip the default case so long as there is a comment indicating the omission is intentional, such as:

                                          switch (foo) {
                                              case 1:
                                                  doSomething();
                                                  break;
                                          
                                              case 2:
                                                  doSomething();
                                                  break;
                                          
                                              // no default
                                          }

                                          Once again, the intent here is to show that the developer intended for there to be no default behavior.

                                          Rule Details

                                          This rule aims to require default case in switch statements. You may optionally include a // no default after the last case if there is no default case. The comment may be in any desired case, such as // No Default.

                                          Examples of incorrect code for this rule:

                                          /*eslint default-case: "error"*/
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint default-case: "error"*/
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              default:
                                                  /* code */
                                                  break;
                                          }
                                          
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // no default
                                          }
                                          
                                          switch (a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // No Default
                                          }

                                          Options

                                          This rule accepts a single options argument:

                                          • Set the commentPattern option to a regular expression string to change the default /^no default$/i comment test pattern

                                          commentPattern

                                          Examples of correct code for the { "commentPattern": "^skip\\sdefault" } option:

                                          /*eslint default-case: ["error", { "commentPattern": "^skip\\sdefault" }]*/
                                          
                                          switch(a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // skip default
                                          }
                                          
                                          switch(a) {
                                              case 1:
                                                  /* code */
                                                  break;
                                          
                                              // skip default case
                                          }

                                          When Not To Use It

                                          If you don't want to enforce a default case for switch statements, you can safely disable this rule.

                                          Related Rules

                                          Assignment to property of function parameter '_context11'.
                                          Open

                                                            _context11.next = 10;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Unexpected 'this'.
                                          Open

                                                          this.emit('install_nar_loaded', target, nar);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected use of comma operator.
                                          Open

                                                          dirpath = void 0, sakuraname = void 0;

                                          Disallow Use of the Comma Operator (no-sequences)

                                          The comma operator includes multiple expressions where only one is expected. It evaluates each operand from left to right and returns the value of the last operand. However, this frequently obscures side effects, and its use is often an accident. Here are some examples of sequences:

                                          var a = (3, 5); // a = 5
                                          
                                          a = b += 5, a + b;
                                          
                                          while (a = next(), a && a.length);
                                          
                                          (0, eval)("doSomething();");

                                          Rule Details

                                          This rule forbids the use of the comma operator, with the following exceptions:

                                          • In the initialization or update portions of a for statement.
                                          • If the expression sequence is explicitly wrapped in parentheses.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-sequences: "error"*/
                                          
                                          foo = doSomething(), val;
                                          
                                          0, eval("doSomething();");
                                          
                                          do {} while (doSomething(), !!test);
                                          
                                          for (; doSomething(), !!test; );
                                          
                                          if (doSomething(), !!test);
                                          
                                          switch (val = foo(), val) {}
                                          
                                          while (val = foo(), val < 42);
                                          
                                          with (doSomething(), val) {}

                                          Examples of correct code for this rule:

                                          /*eslint no-sequences: "error"*/
                                          
                                          foo = (doSomething(), val);
                                          
                                          (0, eval)("doSomething();");
                                          
                                          do {} while ((doSomething(), !!test));
                                          
                                          for (i = 0, j = 10; i < j; i++, j--);
                                          
                                          if ((doSomething(), !!test));
                                          
                                          switch ((val = foo(), val)) {}
                                          
                                          while ((val = foo(), val < 42));
                                          
                                          // with ((doSomething(), val)) {}

                                          When Not To Use It

                                          Disable this rule if sequence expressions with the comma operator are acceptable. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                            dirpath = typeof from === 'string' || from instanceof String ? from : this.namedId(from);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                          this.emit('install_begin', target);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Assignment to property of function parameter '_context11'.
                                          Open

                                                          _context11.next = 43;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Assignment to property of function parameter '_context11'.
                                          Open

                                                          _context11.prev = 39;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Unexpected 'this'.
                                          Open

                                                          nanikaStorage = this.components.NanikaStorage;

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          'NarLoader' is not defined.
                                          Open

                                                          return NarLoader.loadFromURL(target);

                                          Disallow Undeclared Variables (no-undef)

                                          This rule can help you locate potential ReferenceErrors resulting from misspellings of variable and parameter names, or accidental implicit globals (for example, from forgetting the var keyword in a for loop initializer).

                                          Rule Details

                                          Any reference to an undeclared variable causes a warning, unless the variable is explicitly mentioned in a /*global ...*/ comment.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-undef: "error"*/
                                          
                                          var a = someFunction();
                                          b = 10;

                                          Examples of correct code for this rule with global declaration:

                                          /*global someFunction b:true*/
                                          /*eslint no-undef: "error"*/
                                          
                                          var a = someFunction();
                                          b = 10;

                                          The b:true syntax in /*global */ indicates that assignment to b is correct.

                                          Examples of incorrect code for this rule with global declaration:

                                          /*global b*/
                                          /*eslint no-undef: "error"*/
                                          
                                          b = 10;

                                          By default, variables declared in /*global */ are read-only, therefore assignment is incorrect.

                                          Options

                                          • typeof set to true will warn for variables used inside typeof check (Default false).

                                          typeof

                                          Examples of correct code for the default { "typeof": false } option:

                                          /*eslint no-undef: "error"*/
                                          
                                          if (typeof UndefinedIdentifier === "undefined") {
                                              // do something ...
                                          }

                                          You can use this option if you want to prevent typeof check on a variable which has not been declared.

                                          Examples of incorrect code for the { "typeof": true } option:

                                          /*eslint no-undef: ["error", { "typeof": true }] */
                                          
                                          if(typeof a === "string"){}

                                          Examples of correct code for the { "typeof": true } option with global declaration:

                                          /*global a*/
                                          /*eslint no-undef: ["error", { "typeof": true }] */
                                          
                                          if(typeof a === "string"){}

                                          Environments

                                          For convenience, ESLint provides shortcuts that pre-define global variables exposed by popular libraries and runtime environments. This rule supports these environments, as listed in Specifying Environments. A few examples are given below.

                                          browser

                                          Examples of correct code for this rule with browser environment:

                                          /*eslint no-undef: "error"*/
                                          /*eslint-env browser*/
                                          
                                          setTimeout(function() {
                                              alert("Hello");
                                          });

                                          node

                                          Examples of correct code for this rule with node environment:

                                          /*eslint no-undef: "error"*/
                                          /*eslint-env node*/
                                          
                                          var fs = require("fs");
                                          module.exports = function() {
                                              console.log(fs);
                                          };

                                          When Not To Use It

                                          If explicit declaration of global variables is not to your taste.

                                          Compatibility

                                          This rule provides compatibility with treatment of global variables in JSHint and JSLint. Source: http://eslint.org/docs/rules/

                                          Assignment to property of function parameter '_context11'.
                                          Open

                                                            _context11.next = 26;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Unexpected 'todo' comment.
                                          Open

                                                          // TODO: typed error

                                          Disallow Warning Comments (no-warning-comments)

                                          Developers often add comments to code which is not complete or needs review. Most likely you want to fix or review the code, and then remove the comment, before you consider the code to be production ready.

                                          // TODO: do something
                                          // FIXME: this is not a good idea

                                          Rule Details

                                          This rule reports comments that include any of the predefined terms specified in its configuration.

                                          Options

                                          This rule has an options object literal:

                                          • "terms": optional array of terms to match. Defaults to ["todo", "fixme", "xxx"]. Terms are matched case-insensitive and as whole words: fix would match FIX but not fixing. Terms can consist of multiple words: really bad idea.
                                          • "location": optional string that configures where in your comments to check for matches. Defaults to "start". The other value is match anywhere in comments.

                                          Example of incorrect code for the default { "terms": ["todo", "fixme", "xxx"], "location": "start" } options:

                                          /*eslint no-warning-comments: "error"*/
                                          
                                          function callback(err, results) {
                                            if (err) {
                                              console.error(err);
                                              return;
                                            }
                                            // TODO
                                          }

                                          Example of correct code for the default { "terms": ["todo", "fixme", "xxx"], "location": "start" } options:

                                          /*eslint no-warning-comments: "error"*/
                                          
                                          function callback(err, results) {
                                            if (err) {
                                              console.error(err);
                                              return;
                                            }
                                            // NOT READY FOR PRIME TIME
                                            // but too bad, it is not a predefined warning term
                                          }

                                          terms and location

                                          Examples of incorrect code for the { "terms": ["todo", "fixme", "any other term"], "location": "anywhere" } options:

                                          /*eslint no-warning-comments: ["error", { "terms": ["todo", "fixme", "any other term"], "location": "anywhere" }]*/
                                          
                                          // TODO: this
                                          // todo: this too
                                          // Even this: TODO
                                          /* /*
                                           * The same goes for this TODO comment
                                           * Or a fixme
                                           * as well as any other term
                                           */

                                          Examples of correct code for the { "terms": ["todo", "fixme", "any other term"], "location": "anywhere" } options:

                                          /*eslint no-warning-comments: ["error", { "terms": ["todo", "fixme", "any other term"], "location": "anywhere" }]*/
                                          
                                          // This is to do
                                          // even not any other    term
                                          // any other terminal
                                          /*
                                           * The same goes for block comments
                                           * with any other interesting term
                                           * or fix me this
                                           */

                                          When Not To Use It

                                          • If you have a large code base that was not developed with a policy to not use such warning terms, you might get hundreds of warnings / errors which might be counter-productive if you can't fix all of them (e.g. if you don't get the time to do it) as you might overlook other warnings / errors or get used to many of them and don't pay attention on it anymore.
                                          • Same reason as the point above: You shouldn't configure terms that are used very often (e.g. central parts of the native language used in your comments). Source: http://eslint.org/docs/rules/

                                          Expected an assignment or function call and instead saw an expression.
                                          Open

                                                          dirpath = void 0, sakuraname = void 0;

                                          Disallow Unused Expressions (no-unused-expressions)

                                          An unused expression which has no effect on the state of the program indicates a logic error.

                                          For example, n + 1; is not a syntax error, but it might be a typing mistake where a programmer meant an assignment statement n += 1; instead.

                                          Rule Details

                                          This rule aims to eliminate unused expressions which have no effect on the state of the program.

                                          This rule does not apply to function calls or constructor calls with the new operator, because they could have side effects on the state of the program.

                                          var i = 0;
                                          function increment() { i += 1; }
                                          increment(); // return value is unused, but i changed as a side effect
                                          
                                          var nThings = 0;
                                          function Thing() { nThings += 1; }
                                          new Thing(); // constructed object is unused, but nThings changed as a side effect

                                          This rule does not apply to directives (which are in the form of literal string expressions such as "use strict"; at the beginning of a script, module, or function).

                                          Sequence expressions (those using a comma, such as a = 1, b = 2) are always considered unused unless their return value is assigned or used in a condition evaluation, or a function call is made with the sequence expression value.

                                          Options

                                          This rule, in its default state, does not require any arguments. If you would like to enable one or more of the following you may pass an object with the options set as follows:

                                          • allowShortCircuit set to true will allow you to use short circuit evaluations in your expressions (Default: false).
                                          • allowTernary set to true will enable you to use ternary operators in your expressions similarly to short circuit evaluations (Default: false).
                                          • allowTaggedTemplates set to true will enable you to use tagged template literals in your expressions (Default: false).

                                          These options allow unused expressions only if all of the code paths either directly change the state (for example, assignment statement) or could have side effects (for example, function call).

                                          Examples of incorrect code for the default { "allowShortCircuit": false, "allowTernary": false } options:

                                          /*eslint no-unused-expressions: "error"*/
                                          
                                          0
                                          
                                          if(0) 0
                                          
                                          {0}
                                          
                                          f(0), {}
                                          
                                          a && b()
                                          
                                          a, b()
                                          
                                          c = a, b;
                                          
                                          a() && function namedFunctionInExpressionContext () {f();}
                                          
                                          (function anIncompleteIIFE () {});
                                          
                                          injectGlobal`body{ color: red; }`

                                          Note that one or more string expression statements (with or without semi-colons) will only be considered as unused if they are not in the beginning of a script, module, or function (alone and uninterrupted by other statements). Otherwise, they will be treated as part of a "directive prologue", a section potentially usable by JavaScript engines. This includes "strict mode" directives.

                                          "use strict";
                                          "use asm"
                                          "use stricter";
                                          "use babel"
                                          "any other strings like this in the prologue";

                                          Examples of correct code for the default { "allowShortCircuit": false, "allowTernary": false } options:

                                          /*eslint no-unused-expressions: "error"*/
                                          
                                          {} // In this context, this is a block statement, not an object literal
                                          
                                          {myLabel: someVar} // In this context, this is a block statement with a label and expression, not an object literal
                                          
                                          function namedFunctionDeclaration () {}
                                          
                                          (function aGenuineIIFE () {}());
                                          
                                          f()
                                          
                                          a = 0
                                          
                                          new C
                                          
                                          delete a.b
                                          
                                          void a

                                          allowShortCircuit

                                          Examples of incorrect code for the { "allowShortCircuit": true } option:

                                          /*eslint no-unused-expressions: ["error", { "allowShortCircuit": true }]*/
                                          
                                          a || b

                                          Examples of correct code for the { "allowShortCircuit": true } option:

                                          /*eslint no-unused-expressions: ["error", { "allowShortCircuit": true }]*/
                                          
                                          a && b()
                                          a() || (b = c)

                                          allowTernary

                                          Examples of incorrect code for the { "allowTernary": true } option:

                                          /*eslint no-unused-expressions: ["error", { "allowTernary": true }]*/
                                          
                                          a ? b : 0
                                          a ? b : c()

                                          Examples of correct code for the { "allowTernary": true } option:

                                          /*eslint no-unused-expressions: ["error", { "allowTernary": true }]*/
                                          
                                          a ? b() : c()
                                          a ? (b = c) : d()

                                          allowShortCircuit and allowTernary

                                          Examples of correct code for the { "allowShortCircuit": true, "allowTernary": true } options:

                                          /*eslint no-unused-expressions: ["error", { "allowShortCircuit": true, "allowTernary": true }]*/
                                          
                                          a ? b() || (c = d) : e()

                                          allowTaggedTemplates

                                          Examples of incorrect code for the { "allowTaggedTemplates": true } option:

                                          /*eslint no-unused-expressions: ["error", { "allowTaggedTemplates": true }]*/
                                          
                                          `some untagged template string`;

                                          Examples of correct code for the { "allowTaggedTemplates": true } option:

                                          /*eslint no-unused-expressions: ["error", { "allowTaggedTemplates": true }]*/
                                          
                                          tag`some tagged template string`;

                                          Source: http://eslint.org/docs/rules/

                                          Assignment to property of function parameter '_context11'.
                                          Open

                                                            _context11.next = 36;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Missing trailing comma.
                                          Open

                                              }()

                                          require or disallow trailing commas (comma-dangle)

                                          Trailing commas in object literals are valid according to the ECMAScript 5 (and ECMAScript 3!) spec. However, IE8 (when not in IE8 document mode) and below will throw an error when it encounters trailing commas in JavaScript.

                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };

                                          Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. Another argument in favor of trailing commas is that it improves the clarity of diffs when an item is added or removed from an object or array:

                                          Less clear:

                                          var foo = {
                                          -    bar: "baz",
                                          -    qux: "quux"
                                          +    bar: "baz"
                                           };

                                          More clear:

                                          var foo = {
                                               bar: "baz",
                                          -    qux: "quux",
                                           };

                                          Rule Details

                                          This rule enforces consistent use of trailing commas in object and array literals.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "comma-dangle": ["error", "never"],
                                              // or
                                              "comma-dangle": ["error", {
                                                  "arrays": "never",
                                                  "objects": "never",
                                                  "imports": "never",
                                                  "exports": "never",
                                                  "functions": "ignore",
                                              }]
                                          }
                                          • "never" (default) disallows trailing commas
                                          • "always" requires trailing commas
                                          • "always-multiline" requires trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }
                                          • "only-multiline" allows (but does not require) trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }

                                          Trailing commas in function declarations and function calls are valid syntax since ECMAScript 2017; however, the string option does not check these situations for backwards compatibility.

                                          You can also use an object option to configure this rule for each type of syntax. Each of the following options can be set to "never", "always", "always-multiline", "only-multiline", or "ignore". The default for each option is "never" unless otherwise specified.

                                          • arrays is for array literals and array patterns of destructuring. (e.g. let [a,] = [1,];)
                                          • objects is for object literals and object patterns of destructuring. (e.g. let {a,} = {a: 1};)
                                          • imports is for import declarations of ES Modules. (e.g. import {a,} from "foo";)
                                          • exports is for export declarations of ES Modules. (e.g. export {a,};)
                                          • functions is for function declarations and function calls. (e.g. (function(a,){ })(b,);)
                                            functions is set to "ignore" by default for consistency with the string option.

                                          never

                                          Examples of incorrect code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          Examples of correct code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          always

                                          Examples of incorrect code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          always-multiline

                                          Examples of incorrect code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          only-multiline

                                          Examples of incorrect code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];

                                          Examples of correct code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          functions

                                          Examples of incorrect code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          Examples of correct code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of incorrect code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of correct code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with dangling commas. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                  }, _callee11, this, [[3, 39]]);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Assignment to property of function parameter '_context11'.
                                          Open

                                                      switch (_context11.prev = _context11.next) {

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Assignment to property of function parameter '_context11'.
                                          Open

                                                          _context11.next = 31;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Unexpected constant condition.
                                          Open

                                                    while (1) {

                                          disallow constant expressions in conditions (no-constant-condition)

                                          A constant expression (for example, a literal) as a test condition might be a typo or development trigger for a specific behavior. For example, the following code looks as if it is not ready for production.

                                          if (false) {
                                              doSomethingUnfinished();
                                          }

                                          Rule Details

                                          This rule disallows constant expressions in the test condition of:

                                          • if, for, while, or do...while statement
                                          • ?: ternary expression

                                          Examples of incorrect code for this rule:

                                          /*eslint no-constant-condition: "error"*/
                                          
                                          if (false) {
                                              doSomethingUnfinished();
                                          }
                                          
                                          if (void x) {
                                              doSomethingUnfinished();
                                          }
                                          
                                          for (;-2;) {
                                              doSomethingForever();
                                          }
                                          
                                          while (typeof x) {
                                              doSomethingForever();
                                          }
                                          
                                          do {
                                              doSomethingForever();
                                          } while (x = -1);
                                          
                                          var result = 0 ? a : b;

                                          Examples of correct code for this rule:

                                          /*eslint no-constant-condition: "error"*/
                                          
                                          if (x === 0) {
                                              doSomething();
                                          }
                                          
                                          for (;;) {
                                              doSomethingForever();
                                          }
                                          
                                          while (typeof x === "undefined") {
                                              doSomething();
                                          }
                                          
                                          do {
                                              doSomething();
                                          } while (x);
                                          
                                          var result = x !== 0 ? a : b;

                                          Options

                                          checkLoops

                                          Set to true by default. Setting this option to false allows constant expressions in loops.

                                          Examples of correct code for when checkLoops is false:

                                          /*eslint no-constant-condition: ["error", { "checkLoops": false }]*/
                                          
                                          while (true) {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          };
                                          
                                          for (;true;) {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          };
                                          
                                          do {
                                              doSomething();
                                              if (condition()) {
                                                  break;
                                              }
                                          } while (true)

                                          Source: http://eslint.org/docs/rules/

                                          Assignment to property of function parameter '_context11'.
                                          Open

                                                          _context11.next = 7;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Assignment to property of function parameter '_context11'.
                                          Open

                                                          _context11.next = 17;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Unexpected 'this'.
                                          Open

                                                          this.emit('install_not_accepted', target, nar);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Don't make functions within a loop.
                                          Open

                                                          install_results.forEach(function (install_result) {

                                          Disallow Functions in Loops (no-loop-func)

                                          Writing functions within loops tends to result in errors due to the way the function creates a closure around the loop. For example:

                                          for (var i = 0; i < 10; i++) {
                                              funcs[i] = function() {
                                                  return i;
                                              };
                                          }

                                          In this case, you would expect each function created within the loop to return a different number. In reality, each function returns 10, because that was the last value of i in the scope.

                                          let or const mitigate this problem.

                                          /*eslint-env es6*/
                                          
                                          for (let i = 0; i < 10; i++) {
                                              funcs[i] = function() {
                                                  return i;
                                              };
                                          }

                                          In this case, each function created within the loop returns a different number as expected.

                                          Rule Details

                                          This error is raised to highlight a piece of code that may not work as you expect it to and could also indicate a misunderstanding of how the language works. Your code may run without any problems if you do not fix this error, but in some situations it could behave unexpectedly.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-loop-func: "error"*/
                                          /*eslint-env es6*/
                                          
                                          for (var i=10; i; i--) {
                                              (function() { return i; })();
                                          }
                                          
                                          while(i) {
                                              var a = function() { return i; };
                                              a();
                                          }
                                          
                                          do {
                                              function a() { return i; };
                                              a();
                                          } while (i);
                                          
                                          let foo = 0;
                                          for (let i=10; i; i--) {
                                              // Bad, function is referencing block scoped variable in the outer scope.
                                              var a = function() { return foo; };
                                              a();
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-loop-func: "error"*/
                                          /*eslint-env es6*/
                                          
                                          var a = function() {};
                                          
                                          for (var i=10; i; i--) {
                                              a();
                                          }
                                          
                                          for (var i=10; i; i--) {
                                              var a = function() {}; // OK, no references to variables in the outer scopes.
                                              a();
                                          }
                                          
                                          for (let i=10; i; i--) {
                                              var a = function() { return i; }; // OK, all references are referring to block scoped variables in the loop.
                                              a();
                                          }
                                          
                                          var foo = 100;
                                          for (let i=10; i; i--) {
                                              var a = function() { return foo; }; // OK, all references are referring to never modified variables.
                                              a();
                                          }
                                          //... no modifications of foo after this loop ...

                                          Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                          return this.components.NanikaStorage.balloon(balloonname);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                  }, _callee10, this);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          'NarLoader' is not defined.
                                          Open

                                                          return NarLoader.loadFromBlob(target);

                                          Disallow Undeclared Variables (no-undef)

                                          This rule can help you locate potential ReferenceErrors resulting from misspellings of variable and parameter names, or accidental implicit globals (for example, from forgetting the var keyword in a for loop initializer).

                                          Rule Details

                                          Any reference to an undeclared variable causes a warning, unless the variable is explicitly mentioned in a /*global ...*/ comment.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-undef: "error"*/
                                          
                                          var a = someFunction();
                                          b = 10;

                                          Examples of correct code for this rule with global declaration:

                                          /*global someFunction b:true*/
                                          /*eslint no-undef: "error"*/
                                          
                                          var a = someFunction();
                                          b = 10;

                                          The b:true syntax in /*global */ indicates that assignment to b is correct.

                                          Examples of incorrect code for this rule with global declaration:

                                          /*global b*/
                                          /*eslint no-undef: "error"*/
                                          
                                          b = 10;

                                          By default, variables declared in /*global */ are read-only, therefore assignment is incorrect.

                                          Options

                                          • typeof set to true will warn for variables used inside typeof check (Default false).

                                          typeof

                                          Examples of correct code for the default { "typeof": false } option:

                                          /*eslint no-undef: "error"*/
                                          
                                          if (typeof UndefinedIdentifier === "undefined") {
                                              // do something ...
                                          }

                                          You can use this option if you want to prevent typeof check on a variable which has not been declared.

                                          Examples of incorrect code for the { "typeof": true } option:

                                          /*eslint no-undef: ["error", { "typeof": true }] */
                                          
                                          if(typeof a === "string"){}

                                          Examples of correct code for the { "typeof": true } option with global declaration:

                                          /*global a*/
                                          /*eslint no-undef: ["error", { "typeof": true }] */
                                          
                                          if(typeof a === "string"){}

                                          Environments

                                          For convenience, ESLint provides shortcuts that pre-define global variables exposed by popular libraries and runtime environments. This rule supports these environments, as listed in Specifying Environments. A few examples are given below.

                                          browser

                                          Examples of correct code for this rule with browser environment:

                                          /*eslint no-undef: "error"*/
                                          /*eslint-env browser*/
                                          
                                          setTimeout(function() {
                                              alert("Hello");
                                          });

                                          node

                                          Examples of correct code for this rule with node environment:

                                          /*eslint no-undef: "error"*/
                                          /*eslint-env node*/
                                          
                                          var fs = require("fs");
                                          module.exports = function() {
                                              console.log(fs);
                                          };

                                          When Not To Use It

                                          If explicit declaration of global variables is not to your taste.

                                          Compatibility

                                          This rule provides compatibility with treatment of global variables in JSHint and JSLint. Source: http://eslint.org/docs/rules/

                                          Missing trailing comma.
                                          Open

                                              }()

                                          require or disallow trailing commas (comma-dangle)

                                          Trailing commas in object literals are valid according to the ECMAScript 5 (and ECMAScript 3!) spec. However, IE8 (when not in IE8 document mode) and below will throw an error when it encounters trailing commas in JavaScript.

                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };

                                          Trailing commas simplify adding and removing items to objects and arrays, since only the lines you are modifying must be touched. Another argument in favor of trailing commas is that it improves the clarity of diffs when an item is added or removed from an object or array:

                                          Less clear:

                                          var foo = {
                                          -    bar: "baz",
                                          -    qux: "quux"
                                          +    bar: "baz"
                                           };

                                          More clear:

                                          var foo = {
                                               bar: "baz",
                                          -    qux: "quux",
                                           };

                                          Rule Details

                                          This rule enforces consistent use of trailing commas in object and array literals.

                                          Options

                                          This rule has a string option or an object option:

                                          {
                                              "comma-dangle": ["error", "never"],
                                              // or
                                              "comma-dangle": ["error", {
                                                  "arrays": "never",
                                                  "objects": "never",
                                                  "imports": "never",
                                                  "exports": "never",
                                                  "functions": "ignore",
                                              }]
                                          }
                                          • "never" (default) disallows trailing commas
                                          • "always" requires trailing commas
                                          • "always-multiline" requires trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }
                                          • "only-multiline" allows (but does not require) trailing commas when the last element or property is in a different line than the closing ] or } and disallows trailing commas when the last element or property is on the same line as the closing ] or }

                                          Trailing commas in function declarations and function calls are valid syntax since ECMAScript 2017; however, the string option does not check these situations for backwards compatibility.

                                          You can also use an object option to configure this rule for each type of syntax. Each of the following options can be set to "never", "always", "always-multiline", "only-multiline", or "ignore". The default for each option is "never" unless otherwise specified.

                                          • arrays is for array literals and array patterns of destructuring. (e.g. let [a,] = [1,];)
                                          • objects is for object literals and object patterns of destructuring. (e.g. let {a,} = {a: 1};)
                                          • imports is for import declarations of ES Modules. (e.g. import {a,} from "foo";)
                                          • exports is for export declarations of ES Modules. (e.g. export {a,};)
                                          • functions is for function declarations and function calls. (e.g. (function(a,){ })(b,);)
                                            functions is set to "ignore" by default for consistency with the string option.

                                          never

                                          Examples of incorrect code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          Examples of correct code for this rule with the default "never" option:

                                          /*eslint comma-dangle: ["error", "never"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          always

                                          Examples of incorrect code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var arr = [1,2];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always" option:

                                          /*eslint comma-dangle: ["error", "always"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var arr = [1,2,];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          always-multiline

                                          Examples of incorrect code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          Examples of correct code for this rule with the "always-multiline" option:

                                          /*eslint comma-dangle: ["error", "always-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });

                                          only-multiline

                                          Examples of incorrect code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = { bar: "baz", qux: "quux", };
                                          
                                          var arr = [1,2,];
                                          
                                          var arr = [1,
                                              2,];

                                          Examples of correct code for this rule with the "only-multiline" option:

                                          /*eslint comma-dangle: ["error", "only-multiline"]*/
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux",
                                          };
                                          
                                          var foo = {
                                              bar: "baz",
                                              qux: "quux"
                                          };
                                          
                                          var foo = {bar: "baz", qux: "quux"};
                                          var arr = [1,2];
                                          
                                          var arr = [1,
                                              2];
                                          
                                          var arr = [
                                              1,
                                              2,
                                          ];
                                          
                                          var arr = [
                                              1,
                                              2
                                          ];
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux",
                                          });
                                          
                                          foo({
                                            bar: "baz",
                                            qux: "quux"
                                          });

                                          functions

                                          Examples of incorrect code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          Examples of correct code for this rule with the {"functions": "never"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "never"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of incorrect code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b) {
                                          }
                                          
                                          foo(a, b);
                                          new foo(a, b);

                                          Examples of correct code for this rule with the {"functions": "always"} option:

                                          /*eslint comma-dangle: ["error", {"functions": "always"}]*/
                                          
                                          function foo(a, b,) {
                                          }
                                          
                                          foo(a, b,);
                                          new foo(a, b,);

                                          When Not To Use It

                                          You can turn this rule off if you are not concerned with dangling commas. Source: http://eslint.org/docs/rules/

                                          Unexpected 'this'.
                                          Open

                                                  return _ref12.apply(this, arguments);

                                          Disallow this keywords outside of classes or class-like objects. (no-invalid-this)

                                          Under the strict mode, this keywords outside of classes or class-like objects might be undefined and raise a TypeError.

                                          Rule Details

                                          This rule aims to flag usage of this keywords outside of classes or class-like objects.

                                          Basically this rule checks whether or not a function which are containing this keywords is a constructor or a method.

                                          This rule judges from following conditions whether or not the function is a constructor:

                                          • The name of the function starts with uppercase.
                                          • The function is assigned to a variable which starts with an uppercase letter.
                                          • The function is a constructor of ES2015 Classes.

                                          This rule judges from following conditions whether or not the function is a method:

                                          • The function is on an object literal.
                                          • The function is assigned to a property.
                                          • The function is a method/getter/setter of ES2015 Classes. (excepts static methods)

                                          And this rule allows this keywords in functions below:

                                          • The call/apply/bind method of the function is called directly.
                                          • The function is a callback of array methods (such as .forEach()) if thisArg is given.
                                          • The function has @this tag in its JSDoc comment.

                                          Otherwise are considered problems.

                                          This rule applies only in strict mode. With "parserOptions": { "sourceType": "module" } in the ESLint configuration, your code is in strict mode even without a "use strict" directive.

                                          Examples of incorrect code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          this.a = 0;
                                          baz(() => this);
                                          
                                          (function() {
                                              this.a = 0;
                                              baz(() => this);
                                          })();
                                          
                                          function foo() {
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          var foo = function() {
                                              this.a = 0;
                                              baz(() => this);
                                          };
                                          
                                          foo(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });
                                          
                                          obj.foo = () => {
                                              // `this` of arrow functions is the outer scope's.
                                              this.a = 0;
                                          };
                                          
                                          var obj = {
                                              aaa: function() {
                                                  return function foo() {
                                                      // There is in a method `aaa`, but `foo` is not a method.
                                                      this.a = 0;
                                                      baz(() => this);
                                                  };
                                              }
                                          };
                                          
                                          foo.forEach(function() {
                                              this.a = 0;
                                              baz(() => this);
                                          });

                                          Examples of correct code for this rule in strict mode:

                                          /*eslint no-invalid-this: "error"*/
                                          /*eslint-env es6*/
                                          
                                          "use strict";
                                          
                                          function Foo() {
                                              // OK, this is in a legacy style constructor.
                                              this.a = 0;
                                              baz(() => this);
                                          }
                                          
                                          class Foo {
                                              constructor() {
                                                  // OK, this is in a constructor.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var obj = {
                                              foo: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          };
                                          
                                          var obj = {
                                              get foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  return this.a;
                                              }
                                          };
                                          
                                          var obj = Object.create(null, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          Object.defineProperty(obj, "foo", {
                                              value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }
                                          });
                                          
                                          Object.defineProperties(obj, {
                                              foo: {value: function foo() {
                                                  // OK, this is in a method (this function is on object literal).
                                                  this.a = 0;
                                              }}
                                          });
                                          
                                          function Foo() {
                                              this.foo = function foo() {
                                                  // OK, this is in a method (this function assigns to a property).
                                                  this.a = 0;
                                                  baz(() => this);
                                              };
                                          }
                                          
                                          obj.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          Foo.prototype.foo = function foo() {
                                              // OK, this is in a method (this function assigns to a property).
                                              this.a = 0;
                                          };
                                          
                                          class Foo {
                                              foo() {
                                                  // OK, this is in a method.
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          
                                              static foo() {
                                                  // OK, this is in a method (static methods also have valid this).
                                                  this.a = 0;
                                                  baz(() => this);
                                              }
                                          }
                                          
                                          var foo = (function foo() {
                                              // OK, the `bind` method of this function is called directly.
                                              this.a = 0;
                                          }).bind(obj);
                                          
                                          foo.forEach(function() {
                                              // OK, `thisArg` of `.forEach()` is given.
                                              this.a = 0;
                                              baz(() => this);
                                          }, thisArg);
                                          
                                          /** @this Foo */
                                          function foo() {
                                              // OK, this function has a `@this` tag in its JSDoc comment.
                                              this.a = 0;
                                          }

                                          When Not To Use It

                                          If you don't want to be notified about usage of this keyword outside of classes or class-like objects, you can safely disable this rule. Source: http://eslint.org/docs/rules/

                                          Assignment to property of function parameter '_context11'.
                                          Open

                                                            _context11.next = 16;

                                          Disallow Reassignment of Function Parameters (no-param-reassign)

                                          Assignment to variables declared as function parameters can be misleading and lead to confusing behavior, as modifying function parameters will also mutate the arguments object. Often, assignment to function parameters is unintended and indicative of a mistake or programmer error.

                                          This rule can be also configured to fail when function parameters are modified. Side effects on parameters can cause counter-intuitive execution flow and make errors difficult to track down.

                                          Rule Details

                                          This rule aims to prevent unintended behavior caused by modification or reassignment of function parameters.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              bar = 13;
                                          }
                                          
                                          function foo(bar) {
                                              bar++;
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-param-reassign: "error"*/
                                          
                                          function foo(bar) {
                                              var baz = bar;
                                          }

                                          Options

                                          This rule takes one option, an object, with a boolean property "props" and an array "ignorePropertyModificationsFor". "props" is false by default. If "props" is set to true, this rule warns against the modification of parameter properties unless they're included in "ignorePropertyModificationsFor", which is an empty array by default.

                                          props

                                          Examples of correct code for the default { "props": false } option:

                                          /*eslint no-param-reassign: ["error", { "props": false }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of incorrect code for the { "props": true } option:

                                          /*eslint no-param-reassign: ["error", { "props": true }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          Examples of correct code for the { "props": true } option with "ignorePropertyModificationsFor" set:

                                          /*eslint no-param-reassign: ["error", { "props": true, "ignorePropertyModificationsFor": ["bar"] }]*/
                                          
                                          function foo(bar) {
                                              bar.prop = "value";
                                          }
                                          
                                          function foo(bar) {
                                              delete bar.aaa;
                                          }
                                          
                                          function foo(bar) {
                                              bar.aaa++;
                                          }

                                          When Not To Use It

                                          If you want to allow assignment to function parameters, then you can safely disable this rule.

                                          Further Reading

                                          Unexpected 'todo' comment.
                                          Open

                                                              profile.balloonname = 'origin'; // TODO: 設定を読む

                                          Disallow Warning Comments (no-warning-comments)

                                          Developers often add comments to code which is not complete or needs review. Most likely you want to fix or review the code, and then remove the comment, before you consider the code to be production ready.

                                          // TODO: do something
                                          // FIXME: this is not a good idea

                                          Rule Details

                                          This rule reports comments that include any of the predefined terms specified in its configuration.

                                          Options

                                          This rule has an options object literal:

                                          • "terms": optional array of terms to match. Defaults to ["todo", "fixme", "xxx"]. Terms are matched case-insensitive and as whole words: fix would match FIX but not fixing. Terms can consist of multiple words: really bad idea.
                                          • "location": optional string that configures where in your comments to check for matches. Defaults to "start". The other value is match anywhere in comments.

                                          Example of incorrect code for the default { "terms": ["todo", "fixme", "xxx"], "location": "start" } options:

                                          /*eslint no-warning-comments: "error"*/
                                          
                                          function callback(err, results) {
                                            if (err) {
                                              console.error(err);
                                              return;
                                            }
                                            // TODO
                                          }

                                          Example of correct code for the default { "terms": ["todo", "fixme", "xxx"], "location": "start" } options:

                                          /*eslint no-warning-comments: "error"*/
                                          
                                          function callback(err, results) {
                                            if (err) {
                                              console.error(err);
                                              return;
                                            }
                                            // NOT READY FOR PRIME TIME
                                            // but too bad, it is not a predefined warning term
                                          }

                                          terms and location

                                          Examples of incorrect code for the { "terms": ["todo", "fixme", "any other term"], "location": "anywhere" } options:

                                          /*eslint no-warning-comments: ["error", { "terms": ["todo", "fixme", "any other term"], "location": "anywhere" }]*/
                                          
                                          // TODO: this
                                          // todo: this too
                                          // Even this: TODO
                                          /* /*
                                           * The same goes for this TODO comment
                                           * Or a fixme
                                           * as well as any other term
                                           */

                                          Examples of correct code for the { "terms": ["todo", "fixme", "any other term"], "location": "anywhere" } options:

                                          /*eslint no-warning-comments: ["error", { "terms": ["todo", "fixme", "any other term"], "location": "anywhere" }]*/
                                          
                                          // This is to do
                                          // even not any other    term
                                          // any other terminal
                                          /*
                                           * The same goes for block comments
                                           * with any other interesting term
                                           * or fix me this
                                           */

                                          When Not To Use It

                                          • If you have a large code base that was not developed with a policy to not use such warning terms, you might get hundreds of warnings / errors which might be counter-productive if you can't fix all of them (e.g. if you don't get the time to do it) as you might overlook other warnings / errors or get used to many of them and don't pay attention on it anymore.
                                          • Same reason as the point above: You shouldn't configure terms that are used very often (e.g. central parts of the native language used in your comments). Source: http://eslint.org/docs/rules/

                                          Unexpected use of undefined.
                                          Open

                                          exports.NamedKernelManagerGhostModule = undefined;

                                          Disallow Use of undefined Variable (no-undefined)

                                          The undefined variable is unique in JavaScript because it is actually a property of the global object. As such, in ECMAScript 3 it was possible to overwrite the value of undefined. While ECMAScript 5 disallows overwriting undefined, it's still possible to shadow undefined, such as:

                                          function doSomething(data) {
                                              var undefined = "hi";
                                          
                                              // doesn't do what you think it does
                                              if (data === undefined) {
                                                  // ...
                                              }
                                          
                                          }

                                          This represents a problem for undefined that doesn't exist for null, which is a keyword and primitive value that can neither be overwritten nor shadowed.

                                          All uninitialized variables automatically get the value of undefined:

                                          var foo;
                                          
                                          console.log(foo === undefined);     // true (assuming no shadowing)

                                          For this reason, it's not necessary to explicitly initialize a variable to undefined.

                                          Taking all of this into account, some style guides forbid the use of undefined, recommending instead:

                                          • Variables that should be undefined are simply left uninitialized.
                                          • Checking if a value is undefined should be done with typeof.
                                          • Using the void operator to generate the value of undefined if necessary.

                                          Rule Details

                                          This rule aims to eliminate the use of undefined, and as such, generates a warning whenever it is used.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-undefined: "error"*/
                                          
                                          var foo = undefined;
                                          
                                          var undefined = "foo";
                                          
                                          if (foo === undefined) {
                                              // ...
                                          }
                                          
                                          function foo(undefined) {
                                              // ...
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-undefined: "error"*/
                                          
                                          var foo = void 0;
                                          
                                          var Undefined = "foo";
                                          
                                          if (typeof foo === "undefined") {
                                              // ...
                                          }
                                          
                                          global.undefined = "foo";

                                          When Not To Use It

                                          If you want to allow the use of undefined in your code, then you can safely turn this rule off.

                                          Further Reading

                                          Related Rules

                                          Unexpected use of undefined.
                                          Open

                                                var GhostViewClass = arguments.length <= 1 || arguments[1] === undefined ? this.GhostViewClass : arguments[1];

                                          Disallow Use of undefined Variable (no-undefined)

                                          The undefined variable is unique in JavaScript because it is actually a property of the global object. As such, in ECMAScript 3 it was possible to overwrite the value of undefined. While ECMAScript 5 disallows overwriting undefined, it's still possible to shadow undefined, such as:

                                          function doSomething(data) {
                                              var undefined = "hi";
                                          
                                              // doesn't do what you think it does
                                              if (data === undefined) {
                                                  // ...
                                              }
                                          
                                          }

                                          This represents a problem for undefined that doesn't exist for null, which is a keyword and primitive value that can neither be overwritten nor shadowed.

                                          All uninitialized variables automatically get the value of undefined:

                                          var foo;
                                          
                                          console.log(foo === undefined);     // true (assuming no shadowing)

                                          For this reason, it's not necessary to explicitly initialize a variable to undefined.

                                          Taking all of this into account, some style guides forbid the use of undefined, recommending instead:

                                          • Variables that should be undefined are simply left uninitialized.
                                          • Checking if a value is undefined should be done with typeof.
                                          • Using the void operator to generate the value of undefined if necessary.

                                          Rule Details

                                          This rule aims to eliminate the use of undefined, and as such, generates a warning whenever it is used.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-undefined: "error"*/
                                          
                                          var foo = undefined;
                                          
                                          var undefined = "foo";
                                          
                                          if (foo === undefined) {
                                              // ...
                                          }
                                          
                                          function foo(undefined) {
                                              // ...
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-undefined: "error"*/
                                          
                                          var foo = void 0;
                                          
                                          var Undefined = "foo";
                                          
                                          if (typeof foo === "undefined") {
                                              // ...
                                          }
                                          
                                          global.undefined = "foo";

                                          When Not To Use It

                                          If you want to allow the use of undefined in your code, then you can safely turn this rule off.

                                          Further Reading

                                          Related Rules

                                          Expected 'undefined' and instead saw 'void'.
                                          Open

                                                          nar = void 0;

                                          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

                                          Unexpected use of undefined.
                                          Open

                                                var GhostViewClass = arguments.length <= 1 || arguments[1] === undefined ? this.GhostViewClass : arguments[1];

                                          Disallow Use of undefined Variable (no-undefined)

                                          The undefined variable is unique in JavaScript because it is actually a property of the global object. As such, in ECMAScript 3 it was possible to overwrite the value of undefined. While ECMAScript 5 disallows overwriting undefined, it's still possible to shadow undefined, such as:

                                          function doSomething(data) {
                                              var undefined = "hi";
                                          
                                              // doesn't do what you think it does
                                              if (data === undefined) {
                                                  // ...
                                              }
                                          
                                          }

                                          This represents a problem for undefined that doesn't exist for null, which is a keyword and primitive value that can neither be overwritten nor shadowed.

                                          All uninitialized variables automatically get the value of undefined:

                                          var foo;
                                          
                                          console.log(foo === undefined);     // true (assuming no shadowing)

                                          For this reason, it's not necessary to explicitly initialize a variable to undefined.

                                          Taking all of this into account, some style guides forbid the use of undefined, recommending instead:

                                          • Variables that should be undefined are simply left uninitialized.
                                          • Checking if a value is undefined should be done with typeof.
                                          • Using the void operator to generate the value of undefined if necessary.

                                          Rule Details

                                          This rule aims to eliminate the use of undefined, and as such, generates a warning whenever it is used.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-undefined: "error"*/
                                          
                                          var foo = undefined;
                                          
                                          var undefined = "foo";
                                          
                                          if (foo === undefined) {
                                              // ...
                                          }
                                          
                                          function foo(undefined) {
                                              // ...
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-undefined: "error"*/
                                          
                                          var foo = void 0;
                                          
                                          var Undefined = "foo";
                                          
                                          if (typeof foo === "undefined") {
                                              // ...
                                          }
                                          
                                          global.undefined = "foo";

                                          When Not To Use It

                                          If you want to allow the use of undefined in your code, then you can safely turn this rule off.

                                          Further Reading

                                          Related Rules

                                          Expected 'undefined' and instead saw 'void'.
                                          Open

                                                          dirpath = void 0, sakuraname = void 0;

                                          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

                                          Expected 'undefined' and instead saw 'void'.
                                          Open

                                                          dirpath = void 0, sakuraname = void 0;

                                          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

                                          Expected 'undefined' and instead saw 'void'.
                                          Open

                                                          ghost_result = void 0, balloon_result = void 0;

                                          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

                                          Expected 'undefined' and instead saw 'void'.
                                          Open

                                                          ghost_result = void 0, balloon_result = void 0;

                                          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

                                          Unexpected use of undefined.
                                          Open

                                                  var from = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];

                                          Disallow Use of undefined Variable (no-undefined)

                                          The undefined variable is unique in JavaScript because it is actually a property of the global object. As such, in ECMAScript 3 it was possible to overwrite the value of undefined. While ECMAScript 5 disallows overwriting undefined, it's still possible to shadow undefined, such as:

                                          function doSomething(data) {
                                              var undefined = "hi";
                                          
                                              // doesn't do what you think it does
                                              if (data === undefined) {
                                                  // ...
                                              }
                                          
                                          }

                                          This represents a problem for undefined that doesn't exist for null, which is a keyword and primitive value that can neither be overwritten nor shadowed.

                                          All uninitialized variables automatically get the value of undefined:

                                          var foo;
                                          
                                          console.log(foo === undefined);     // true (assuming no shadowing)

                                          For this reason, it's not necessary to explicitly initialize a variable to undefined.

                                          Taking all of this into account, some style guides forbid the use of undefined, recommending instead:

                                          • Variables that should be undefined are simply left uninitialized.
                                          • Checking if a value is undefined should be done with typeof.
                                          • Using the void operator to generate the value of undefined if necessary.

                                          Rule Details

                                          This rule aims to eliminate the use of undefined, and as such, generates a warning whenever it is used.

                                          Examples of incorrect code for this rule:

                                          /*eslint no-undefined: "error"*/
                                          
                                          var foo = undefined;
                                          
                                          var undefined = "foo";
                                          
                                          if (foo === undefined) {
                                              // ...
                                          }
                                          
                                          function foo(undefined) {
                                              // ...
                                          }

                                          Examples of correct code for this rule:

                                          /*eslint no-undefined: "error"*/
                                          
                                          var foo = void 0;
                                          
                                          var Undefined = "foo";
                                          
                                          if (typeof foo === "undefined") {
                                              // ...
                                          }
                                          
                                          global.undefined = "foo";

                                          When Not To Use It

                                          If you want to allow the use of undefined in your code, then you can safely turn this rule off.

                                          Further Reading

                                          Related Rules

                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                          Open

                                            }, {
                                              key: '_load_shell',
                                              value: function _load_shell(directory) {
                                                var GhostViewClass = arguments.length <= 1 || arguments[1] === undefined ? this.GhostViewClass : arguments[1];
                                          
                                          
                                          Severity: Major
                                          Found in lib/named-kernel-manager-ghost-module.js and 1 other location - About 3 hrs to fix
                                          lib/named-kernel-manager-ghost-module.js on lines 541..557

                                          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 95.

                                          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

                                            }, {
                                              key: '_load_balloon',
                                              value: function _load_balloon(directory) {
                                                var GhostViewClass = arguments.length <= 1 || arguments[1] === undefined ? this.GhostViewClass : arguments[1];
                                          
                                          
                                          Severity: Major
                                          Found in lib/named-kernel-manager-ghost-module.js and 1 other location - About 3 hrs to fix
                                          lib/named-kernel-manager-ghost-module.js on lines 442..458

                                          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 95.

                                          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 (from) {
                                                            // from が指定された場合
                                                            dirpath = typeof from === 'string' || from instanceof String ? from : this.namedId(from);
                                                            // TODO: fromの他形式対応
                                                            sakuraname = nanikaStorage.ghost_descript(dirpath)['sakura.name'];
                                          Severity: Major
                                          Found in lib/named-kernel-manager-ghost-module.js and 1 other location - About 1 hr to fix
                                          src/lib/named-kernel-manager-ghost-module.js on lines 239..243

                                          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

                                                          if (!profile.balloonname) {
                                                            if (balloon_result) {
                                                              // 同梱バルーンを初期設定
                                                              profile.balloonname = balloon_result.directory;
                                                            } else {
                                          Severity: Minor
                                          Found in lib/named-kernel-manager-ghost-module.js and 1 other location - About 55 mins to fix
                                          src/lib/named-kernel-manager-ghost-module.js on lines 262..269

                                          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 54.

                                          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

                                                          install_results.forEach(function (install_result) {
                                                            if (install_result.type === 'ghost') {
                                                              ghost_result = install_result;
                                                            } else if (install_result.type === 'balloon') {
                                                              balloon_result = install_result;
                                          Severity: Minor
                                          Found in lib/named-kernel-manager-ghost-module.js and 1 other location - About 40 mins to fix
                                          src/lib/named-kernel-manager-ghost-module.js on lines 250..256

                                          Duplicated Code

                                          Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                                          Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                                          When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                                          Tuning

                                          This issue has a mass of 49.

                                          We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                                          The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                                          If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                                          See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                                          Refactorings

                                          Further Reading

                                          Similar blocks of code found in 2 locations. Consider refactoring.
                                          Open

                                              value: function _canondirpath(dirpath) {
                                                var path_separator = dirpath.match(/[\\\/]/)[0];
                                                return dirpath.replace(new RegExp('\\' + path_separator + '?$'), path_separator);
                                              }
                                          Severity: Minor
                                          Found in lib/named-kernel-manager-ghost-module.js and 1 other location - About 35 mins to fix
                                          src/lib/named-kernel-manager-ghost-module.js on lines 106..112

                                          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

                                          There are no issues that match your filters.

                                          Category
                                          Status