MidnightRiders/MemberPortal

View on GitHub
app/javascript/vendor/foundation/foundation.orbit.js

Summary

Maintainability
F
4 days
Test Coverage

Function Orbit has 257 lines of code (exceeds 25 allowed). Consider refactoring.
Open

  var Orbit = function (el, settings) {
    // Don't reinitialize plugin
    if (el.hasClass(settings.slides_container_class)) {
      return this;
    }
Severity: Major
Found in app/javascript/vendor/foundation/foundation.orbit.js - About 1 day to fix

    File foundation.orbit.js has 410 lines of code (exceeds 250 allowed). Consider refactoring.
    Open

    ;(function ($, window, document, undefined) {
      'use strict';
    
      var noop = function () {};
    
    
    Severity: Minor
    Found in app/javascript/vendor/foundation/foundation.orbit.js - About 5 hrs to fix

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

          self.init = function () {
            self.build_markup();
            if (settings.timer) {
              timer = self.create_timer();
              Foundation.utils.image_loaded(this.slides().children('img'), timer.start);
      Severity: Major
      Found in app/javascript/vendor/foundation/foundation.orbit.js - About 2 hrs to fix

        Function _goto has 50 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

            self._goto = function (next_idx, start_timer) {
              // if (locked) {return false;}
              if (next_idx === idx) {return false;}
              if (typeof timer === 'object') {timer.restart();}
              var slides = self.slides();
        Severity: Minor
        Found in app/javascript/vendor/foundation/foundation.orbit.js - About 2 hrs to fix

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

            var Timer = function (el, settings, callback) {
              var self = this,
                  duration = settings.timer_speed,
                  progress = el.find('.' + settings.timer_progress_class),
                  start,
          Severity: Minor
          Found in app/javascript/vendor/foundation/foundation.orbit.js - About 1 hr to fix

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

                self.build_markup = function () {
                  slides_container.wrap('<div class="' + settings.container_class + '"></div>');
                  container = slides_container.parent();
                  slides_container.addClass(settings.slides_container_class);
            
            
            Severity: Minor
            Found in app/javascript/vendor/foundation/foundation.orbit.js - About 1 hr to fix

              Identifier 'timer_container' is not in camel case.
              Open

                      timer_container,

              Require Camelcase (camelcase)

              When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

              Rule Details

              This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

              Options

              This rule has an object option:

              • "properties": "always" (default) enforces camelcase style for property names
              • "properties": "never" does not check property names

              always

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased } from "external-module"
              
              var my_favorite_color = "#112C85";
              
              function do_something() {
                  // ...
              }
              
              obj.do_something = function() {
                  // ...
              };
              
              var obj = {
                  my_pref: 1
              };

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased as camelCased } from "external-module";
              
              var myFavoriteColor   = "#112C85";
              var _myFavoriteColor  = "#112C85";
              var myFavoriteColor_  = "#112C85";
              var MY_FAVORITE_COLOR = "#112C85";
              var foo = bar.baz_boom;
              var foo = { qux: bar.baz_boom };
              
              obj.do_something();
              do_something();
              new do_something();
              
              var { category_id: category } = query;

              never

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

              /*eslint camelcase: ["error", {properties: "never"}]*/
              
              var obj = {
                  my_pref: 1
              };

              When Not To Use It

              If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

              Identifier 'start_animation' is not in camel case.
              Open

                    var start_animation = function () {

              Require Camelcase (camelcase)

              When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

              Rule Details

              This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

              Options

              This rule has an object option:

              • "properties": "always" (default) enforces camelcase style for property names
              • "properties": "never" does not check property names

              always

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased } from "external-module"
              
              var my_favorite_color = "#112C85";
              
              function do_something() {
                  // ...
              }
              
              obj.do_something = function() {
                  // ...
              };
              
              var obj = {
                  my_pref: 1
              };

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased as camelCased } from "external-module";
              
              var myFavoriteColor   = "#112C85";
              var _myFavoriteColor  = "#112C85";
              var myFavoriteColor_  = "#112C85";
              var MY_FAVORITE_COLOR = "#112C85";
              var foo = bar.baz_boom;
              var foo = { qux: bar.baz_boom };
              
              obj.do_something();
              do_something();
              new do_something();
              
              var { category_id: category } = query;

              never

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

              /*eslint camelcase: ["error", {properties: "never"}]*/
              
              var obj = {
                  my_pref: 1
              };

              When Not To Use It

              If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

              Identifier 'is_rtl' is not in camel case.
              Open

                  var is_rtl = ($('html[dir=rtl]').length === 1);

              Require Camelcase (camelcase)

              When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

              Rule Details

              This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

              Options

              This rule has an object option:

              • "properties": "always" (default) enforces camelcase style for property names
              • "properties": "never" does not check property names

              always

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased } from "external-module"
              
              var my_favorite_color = "#112C85";
              
              function do_something() {
                  // ...
              }
              
              obj.do_something = function() {
                  // ...
              };
              
              var obj = {
                  my_pref: 1
              };

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased as camelCased } from "external-module";
              
              var myFavoriteColor   = "#112C85";
              var _myFavoriteColor  = "#112C85";
              var myFavoriteColor_  = "#112C85";
              var MY_FAVORITE_COLOR = "#112C85";
              var foo = bar.baz_boom;
              var foo = { qux: bar.baz_boom };
              
              obj.do_something();
              do_something();
              new do_something();
              
              var { category_id: category } = query;

              never

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

              /*eslint camelcase: ["error", {properties: "never"}]*/
              
              var obj = {
                  my_pref: 1
              };

              When Not To Use It

              If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

              A function with a name starting with an uppercase letter should only be used as a constructor.
              Open

                    if (self.S(self.scope).is('[data-orbit]')) {

              require constructor names to begin with a capital letter (new-cap)

              The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

              var friend = new Person();

              Rule Details

              This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

              • Array
              • Boolean
              • Date
              • Error
              • Function
              • Number
              • Object
              • RegExp
              • String
              • Symbol

              Examples of correct code for this rule:

              /*eslint new-cap: "error"*/
              
              function foo(arg) {
                  return Boolean(arg);
              }

              Options

              This rule has an object option:

              • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
              • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
              • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
              • "capIsNew": false allows uppercase-started functions to be called without new operators.
              • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
              • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
              • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
              • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
              • "properties": true (default) enables checks on object properties
              • "properties": false disables checks on object properties

              newIsCap

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

              /*eslint new-cap: ["error", { "newIsCap": true }]*/
              
              var friend = new person();

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

              /*eslint new-cap: ["error", { "newIsCap": true }]*/
              
              var friend = new Person();

              Examples of correct code for this rule with the { "newIsCap": false } option:

              /*eslint new-cap: ["error", { "newIsCap": false }]*/
              
              var friend = new person();

              capIsNew

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

              /*eslint new-cap: ["error", { "capIsNew": true }]*/
              
              var colleague = Person();

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

              /*eslint new-cap: ["error", { "capIsNew": true }]*/
              
              var colleague = new Person();

              Examples of correct code for this rule with the { "capIsNew": false } option:

              /*eslint new-cap: ["error", { "capIsNew": false }]*/
              
              var colleague = Person();

              newIsCapExceptions

              Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

              /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
              
              var events = require('events');
              
              var emitter = new events();

              newIsCapExceptionPattern

              Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

              /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
              
              var friend = new person.acquaintance();
              var bestFriend = new person.friend();

              capIsNewExceptions

              Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

              /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
              
              function foo(arg) {
                  return Person(arg);
              }

              capIsNewExceptionPattern

              Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

              /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
              
              var friend = person.Acquaintance();
              var bestFriend = person.Friend();

              properties

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

              /*eslint new-cap: ["error", { "properties": true }]*/
              
              var friend = new person.acquaintance();

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

              /*eslint new-cap: ["error", { "properties": true }]*/
              
              var friend = new person.Acquaintance();

              Examples of correct code for this rule with the { "properties": false } option:

              /*eslint new-cap: ["error", { "properties": false }]*/
              
              var friend = new person.acquaintance();

              When Not To Use It

              If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

              A function with a name starting with an uppercase letter should only be used as a constructor.
              Open

                        var $el = self.S(el);

              require constructor names to begin with a capital letter (new-cap)

              The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

              var friend = new Person();

              Rule Details

              This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

              • Array
              • Boolean
              • Date
              • Error
              • Function
              • Number
              • Object
              • RegExp
              • String
              • Symbol

              Examples of correct code for this rule:

              /*eslint new-cap: "error"*/
              
              function foo(arg) {
                  return Boolean(arg);
              }

              Options

              This rule has an object option:

              • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
              • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
              • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
              • "capIsNew": false allows uppercase-started functions to be called without new operators.
              • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
              • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
              • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
              • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
              • "properties": true (default) enables checks on object properties
              • "properties": false disables checks on object properties

              newIsCap

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

              /*eslint new-cap: ["error", { "newIsCap": true }]*/
              
              var friend = new person();

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

              /*eslint new-cap: ["error", { "newIsCap": true }]*/
              
              var friend = new Person();

              Examples of correct code for this rule with the { "newIsCap": false } option:

              /*eslint new-cap: ["error", { "newIsCap": false }]*/
              
              var friend = new person();

              capIsNew

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

              /*eslint new-cap: ["error", { "capIsNew": true }]*/
              
              var colleague = Person();

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

              /*eslint new-cap: ["error", { "capIsNew": true }]*/
              
              var colleague = new Person();

              Examples of correct code for this rule with the { "capIsNew": false } option:

              /*eslint new-cap: ["error", { "capIsNew": false }]*/
              
              var colleague = Person();

              newIsCapExceptions

              Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

              /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
              
              var events = require('events');
              
              var emitter = new events();

              newIsCapExceptionPattern

              Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

              /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
              
              var friend = new person.acquaintance();
              var bestFriend = new person.friend();

              capIsNewExceptions

              Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

              /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
              
              function foo(arg) {
                  return Person(arg);
              }

              capIsNewExceptionPattern

              Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

              /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
              
              var friend = person.Acquaintance();
              var bestFriend = person.Friend();

              properties

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

              /*eslint new-cap: ["error", { "properties": true }]*/
              
              var friend = new person.acquaintance();

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

              /*eslint new-cap: ["error", { "properties": true }]*/
              
              var friend = new person.Acquaintance();

              Examples of correct code for this rule with the { "properties": false } option:

              /*eslint new-cap: ["error", { "properties": false }]*/
              
              var friend = new person.acquaintance();

              When Not To Use It

              If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

              Identifier 'next_idx' is not in camel case.
              Open

                    } else if (next_idx < 0) {

              Require Camelcase (camelcase)

              When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

              Rule Details

              This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

              Options

              This rule has an object option:

              • "properties": "always" (default) enforces camelcase style for property names
              • "properties": "never" does not check property names

              always

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased } from "external-module"
              
              var my_favorite_color = "#112C85";
              
              function do_something() {
                  // ...
              }
              
              obj.do_something = function() {
                  // ...
              };
              
              var obj = {
                  my_pref: 1
              };

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased as camelCased } from "external-module";
              
              var myFavoriteColor   = "#112C85";
              var _myFavoriteColor  = "#112C85";
              var myFavoriteColor_  = "#112C85";
              var MY_FAVORITE_COLOR = "#112C85";
              var foo = bar.baz_boom;
              var foo = { qux: bar.baz_boom };
              
              obj.do_something();
              do_something();
              new do_something();
              
              var { category_id: category } = query;

              never

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

              /*eslint camelcase: ["error", {properties: "never"}]*/
              
              var obj = {
                  my_pref: 1
              };

              When Not To Use It

              If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

              Unnecessarily quoted property 'height' found.
              Open

                      slides_container.animate({'height': next.outerHeight()}, 250, 'linear', start_animation);

              require quotes around object literal property names (quote-props)

              Object literal property names can be defined in two ways: using literals or using strings. For example, these two objects are equivalent:

              var object1 = {
                  property: true
              };
              
              var object2 = {
                  "property": true
              };

              In many cases, it doesn't matter if you choose to use an identifier instead of a string or vice-versa. Even so, you might decide to enforce a consistent style in your code.

              There are, however, some occasions when you must use quotes:

              1. If you are using an ECMAScript 3 JavaScript engine (such as IE8) and you want to use a keyword (such as if) as a property name. This restriction was removed in ECMAScript 5.
              2. You want to use a non-identifier character in your property name, such as having a property with a space like "one two".

              Another example where quotes do matter is when using numeric literals as property keys:

              var object = {
                  1e2: 1,
                  100: 2
              };

              This may look alright at first sight, but this code in fact throws a syntax error in ECMAScript 5 strict mode. This happens because 1e2 and 100 are coerced into strings before getting used as the property name. Both String(1e2) and String(100) happen to be equal to "100", which causes the "Duplicate data property in object literal not allowed in strict mode" error. Issues like that can be tricky to debug, so some prefer to require quotes around all property names.

              Rule Details

              This rule requires quotes around object literal property names.

              Options

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

              String option:

              • "always" (default) requires quotes around all object literal property names
              • "as-needed" disallows quotes around object literal property names that are not strictly required
              • "consistent" enforces a consistent quote style requires quotes around object literal property names
              • "consistent-as-needed" requires quotes around all object literal property names if any name strictly requires quotes, otherwise disallows quotes around object property names

              Object option:

              • "keywords": true requires quotes around language keywords used as object property names (only applies when using as-needed or consistent-as-needed)
              • "unnecessary": true (default) disallows quotes around object literal property names that are not strictly required (only applies when using as-needed)
              • "unnecessary": false allows quotes around object literal property names that are not strictly required (only applies when using as-needed)
              • "numbers": true requires quotes around numbers used as object property names (only applies when using as-needed)

              always

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

              /*eslint quote-props: ["error", "always"]*/
              
              var object = {
                  foo: "bar",
                  baz: 42,
                  "qux-lorem": true
              };

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

              /*eslint quote-props: ["error", "always"]*/
              /*eslint-env es6*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42,
                  'qux-lorem': true
              };
              
              var object3 = {
                  foo() {
                      return;
                  }
              };

              as-needed

              Examples of incorrect code for this rule with the "as-needed" option:

              /*eslint quote-props: ["error", "as-needed"]*/
              
              var object = {
                  "a": 0,
                  "0": 0,
                  "true": 0,
                  "null": 0
              };

              Examples of correct code for this rule with the "as-needed" option:

              /*eslint quote-props: ["error", "as-needed"]*/
              /*eslint-env es6*/
              
              var object1 = {
                  "a-b": 0,
                  "0x0": 0,
                  "1e2": 0
              };
              
              var object2 = {
                  foo: 'bar',
                  baz: 42,
                  true: 0,
                  0: 0,
                  'qux-lorem': true
              };
              
              var object3 = {
                  foo() {
                      return;
                  }
              };

              consistent

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

              /*eslint quote-props: ["error", "consistent"]*/
              
              var object1 = {
                  foo: "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  baz: 42
              };

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

              /*eslint quote-props: ["error", "consistent"]*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42
              };
              
              var object3 = {
                  foo: 'bar',
                  baz: 42
              };

              consistent-as-needed

              Examples of incorrect code for this rule with the "consistent-as-needed" option:

              /*eslint quote-props: ["error", "consistent-as-needed"]*/
              
              var object1 = {
                  foo: "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42
              };

              Examples of correct code for this rule with the "consistent-as-needed" option:

              /*eslint quote-props: ["error", "consistent-as-needed"]*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  foo: 'bar',
                  baz: 42
              };

              keywords

              Examples of additional incorrect code for this rule with the "as-needed", { "keywords": true } options:

              /*eslint quote-props: ["error", "as-needed", { "keywords": true }]*/
              
              var x = {
                  while: 1,
                  volatile: "foo"
              };

              Examples of additional incorrect code for this rule with the "consistent-as-needed", { "keywords": true } options:

              /*eslint quote-props: ["error", "consistent-as-needed", { "keywords": true }]*/
              
              var x = {
                  "prop": 1,
                  "bar": "foo"
              };

              unnecessary

              Examples of additional correct code for this rule with the "as-needed", { "unnecessary": false } options:

              /*eslint quote-props: ["error", "as-needed", { "keywords": true, "unnecessary": false }]*/
              
              var x = {
                  "while": 1,
                  "foo": "bar"  // Would normally have caused a warning
              };

              numbers

              Examples of additional incorrect code for this rule with the "as-needed", { "numbers": true } options:

              /*eslint quote-props: ["error", "as-needed", { "numbers": true }]*/
              
              var x = {
                  100: 1
              }

              When Not To Use It

              If you don't care if property names are consistently wrapped in quotes or not, and you don't target legacy ES3 environments, turn this rule off.

              Further Reading

              Unnecessarily quoted property 'width' found.
              Open

                    progress.animate({'width' : '100%'}, left, 'linear');

              require quotes around object literal property names (quote-props)

              Object literal property names can be defined in two ways: using literals or using strings. For example, these two objects are equivalent:

              var object1 = {
                  property: true
              };
              
              var object2 = {
                  "property": true
              };

              In many cases, it doesn't matter if you choose to use an identifier instead of a string or vice-versa. Even so, you might decide to enforce a consistent style in your code.

              There are, however, some occasions when you must use quotes:

              1. If you are using an ECMAScript 3 JavaScript engine (such as IE8) and you want to use a keyword (such as if) as a property name. This restriction was removed in ECMAScript 5.
              2. You want to use a non-identifier character in your property name, such as having a property with a space like "one two".

              Another example where quotes do matter is when using numeric literals as property keys:

              var object = {
                  1e2: 1,
                  100: 2
              };

              This may look alright at first sight, but this code in fact throws a syntax error in ECMAScript 5 strict mode. This happens because 1e2 and 100 are coerced into strings before getting used as the property name. Both String(1e2) and String(100) happen to be equal to "100", which causes the "Duplicate data property in object literal not allowed in strict mode" error. Issues like that can be tricky to debug, so some prefer to require quotes around all property names.

              Rule Details

              This rule requires quotes around object literal property names.

              Options

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

              String option:

              • "always" (default) requires quotes around all object literal property names
              • "as-needed" disallows quotes around object literal property names that are not strictly required
              • "consistent" enforces a consistent quote style requires quotes around object literal property names
              • "consistent-as-needed" requires quotes around all object literal property names if any name strictly requires quotes, otherwise disallows quotes around object property names

              Object option:

              • "keywords": true requires quotes around language keywords used as object property names (only applies when using as-needed or consistent-as-needed)
              • "unnecessary": true (default) disallows quotes around object literal property names that are not strictly required (only applies when using as-needed)
              • "unnecessary": false allows quotes around object literal property names that are not strictly required (only applies when using as-needed)
              • "numbers": true requires quotes around numbers used as object property names (only applies when using as-needed)

              always

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

              /*eslint quote-props: ["error", "always"]*/
              
              var object = {
                  foo: "bar",
                  baz: 42,
                  "qux-lorem": true
              };

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

              /*eslint quote-props: ["error", "always"]*/
              /*eslint-env es6*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42,
                  'qux-lorem': true
              };
              
              var object3 = {
                  foo() {
                      return;
                  }
              };

              as-needed

              Examples of incorrect code for this rule with the "as-needed" option:

              /*eslint quote-props: ["error", "as-needed"]*/
              
              var object = {
                  "a": 0,
                  "0": 0,
                  "true": 0,
                  "null": 0
              };

              Examples of correct code for this rule with the "as-needed" option:

              /*eslint quote-props: ["error", "as-needed"]*/
              /*eslint-env es6*/
              
              var object1 = {
                  "a-b": 0,
                  "0x0": 0,
                  "1e2": 0
              };
              
              var object2 = {
                  foo: 'bar',
                  baz: 42,
                  true: 0,
                  0: 0,
                  'qux-lorem': true
              };
              
              var object3 = {
                  foo() {
                      return;
                  }
              };

              consistent

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

              /*eslint quote-props: ["error", "consistent"]*/
              
              var object1 = {
                  foo: "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  baz: 42
              };

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

              /*eslint quote-props: ["error", "consistent"]*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42
              };
              
              var object3 = {
                  foo: 'bar',
                  baz: 42
              };

              consistent-as-needed

              Examples of incorrect code for this rule with the "consistent-as-needed" option:

              /*eslint quote-props: ["error", "consistent-as-needed"]*/
              
              var object1 = {
                  foo: "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42
              };

              Examples of correct code for this rule with the "consistent-as-needed" option:

              /*eslint quote-props: ["error", "consistent-as-needed"]*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  foo: 'bar',
                  baz: 42
              };

              keywords

              Examples of additional incorrect code for this rule with the "as-needed", { "keywords": true } options:

              /*eslint quote-props: ["error", "as-needed", { "keywords": true }]*/
              
              var x = {
                  while: 1,
                  volatile: "foo"
              };

              Examples of additional incorrect code for this rule with the "consistent-as-needed", { "keywords": true } options:

              /*eslint quote-props: ["error", "consistent-as-needed", { "keywords": true }]*/
              
              var x = {
                  "prop": 1,
                  "bar": "foo"
              };

              unnecessary

              Examples of additional correct code for this rule with the "as-needed", { "unnecessary": false } options:

              /*eslint quote-props: ["error", "as-needed", { "keywords": true, "unnecessary": false }]*/
              
              var x = {
                  "while": 1,
                  "foo": "bar"  // Would normally have caused a warning
              };

              numbers

              Examples of additional incorrect code for this rule with the "as-needed", { "numbers": true } options:

              /*eslint quote-props: ["error", "as-needed", { "numbers": true }]*/
              
              var x = {
                  100: 1
              }

              When Not To Use It

              If you don't care if property names are consistently wrapped in quotes or not, and you don't target legacy ES3 environments, turn this rule off.

              Further Reading

              Identifier 'number_container' is not in camel case.
              Open

                      number_container,

              Require Camelcase (camelcase)

              When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

              Rule Details

              This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

              Options

              This rule has an object option:

              • "properties": "always" (default) enforces camelcase style for property names
              • "properties": "never" does not check property names

              always

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased } from "external-module"
              
              var my_favorite_color = "#112C85";
              
              function do_something() {
                  // ...
              }
              
              obj.do_something = function() {
                  // ...
              };
              
              var obj = {
                  my_pref: 1
              };

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased as camelCased } from "external-module";
              
              var myFavoriteColor   = "#112C85";
              var _myFavoriteColor  = "#112C85";
              var myFavoriteColor_  = "#112C85";
              var MY_FAVORITE_COLOR = "#112C85";
              var foo = bar.baz_boom;
              var foo = { qux: bar.baz_boom };
              
              obj.do_something();
              do_something();
              new do_something();
              
              var { category_id: category } = query;

              never

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

              /*eslint camelcase: ["error", {properties: "never"}]*/
              
              var obj = {
                  my_pref: 1
              };

              When Not To Use It

              If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

              Identifier 'orbit_instance' is not in camel case.
              Open

                    var orbit_instance = new Orbit(this.S(instance), this.S(instance).data('orbit-init'));

              Require Camelcase (camelcase)

              When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

              Rule Details

              This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

              Options

              This rule has an object option:

              • "properties": "always" (default) enforces camelcase style for property names
              • "properties": "never" does not check property names

              always

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased } from "external-module"
              
              var my_favorite_color = "#112C85";
              
              function do_something() {
                  // ...
              }
              
              obj.do_something = function() {
                  // ...
              };
              
              var obj = {
                  my_pref: 1
              };

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased as camelCased } from "external-module";
              
              var myFavoriteColor   = "#112C85";
              var _myFavoriteColor  = "#112C85";
              var myFavoriteColor_  = "#112C85";
              var MY_FAVORITE_COLOR = "#112C85";
              var foo = bar.baz_boom;
              var foo = { qux: bar.baz_boom };
              
              obj.do_something();
              do_something();
              new do_something();
              
              var { category_id: category } = query;

              never

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

              /*eslint camelcase: ["error", {properties: "never"}]*/
              
              var obj = {
                  my_pref: 1
              };

              When Not To Use It

              If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

              Identifier 'next_idx' is not in camel case.
              Open

                  self._goto = function (next_idx, start_timer) {

              Require Camelcase (camelcase)

              When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

              Rule Details

              This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

              Options

              This rule has an object option:

              • "properties": "always" (default) enforces camelcase style for property names
              • "properties": "never" does not check property names

              always

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased } from "external-module"
              
              var my_favorite_color = "#112C85";
              
              function do_something() {
                  // ...
              }
              
              obj.do_something = function() {
                  // ...
              };
              
              var obj = {
                  my_pref: 1
              };

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased as camelCased } from "external-module";
              
              var myFavoriteColor   = "#112C85";
              var _myFavoriteColor  = "#112C85";
              var myFavoriteColor_  = "#112C85";
              var MY_FAVORITE_COLOR = "#112C85";
              var foo = bar.baz_boom;
              var foo = { qux: bar.baz_boom };
              
              obj.do_something();
              do_something();
              new do_something();
              
              var { category_id: category } = query;

              never

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

              /*eslint camelcase: ["error", {properties: "never"}]*/
              
              var obj = {
                  my_pref: 1
              };

              When Not To Use It

              If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

              A function with a name starting with an uppercase letter should only be used as a constructor.
              Open

                    var orbit_instance = new Orbit(this.S(instance), this.S(instance).data('orbit-init'));

              require constructor names to begin with a capital letter (new-cap)

              The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

              var friend = new Person();

              Rule Details

              This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

              • Array
              • Boolean
              • Date
              • Error
              • Function
              • Number
              • Object
              • RegExp
              • String
              • Symbol

              Examples of correct code for this rule:

              /*eslint new-cap: "error"*/
              
              function foo(arg) {
                  return Boolean(arg);
              }

              Options

              This rule has an object option:

              • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
              • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
              • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
              • "capIsNew": false allows uppercase-started functions to be called without new operators.
              • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
              • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
              • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
              • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
              • "properties": true (default) enables checks on object properties
              • "properties": false disables checks on object properties

              newIsCap

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

              /*eslint new-cap: ["error", { "newIsCap": true }]*/
              
              var friend = new person();

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

              /*eslint new-cap: ["error", { "newIsCap": true }]*/
              
              var friend = new Person();

              Examples of correct code for this rule with the { "newIsCap": false } option:

              /*eslint new-cap: ["error", { "newIsCap": false }]*/
              
              var friend = new person();

              capIsNew

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

              /*eslint new-cap: ["error", { "capIsNew": true }]*/
              
              var colleague = Person();

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

              /*eslint new-cap: ["error", { "capIsNew": true }]*/
              
              var colleague = new Person();

              Examples of correct code for this rule with the { "capIsNew": false } option:

              /*eslint new-cap: ["error", { "capIsNew": false }]*/
              
              var colleague = Person();

              newIsCapExceptions

              Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

              /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
              
              var events = require('events');
              
              var emitter = new events();

              newIsCapExceptionPattern

              Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

              /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
              
              var friend = new person.acquaintance();
              var bestFriend = new person.friend();

              capIsNewExceptions

              Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

              /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
              
              function foo(arg) {
                  return Person(arg);
              }

              capIsNewExceptionPattern

              Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

              /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
              
              var friend = person.Acquaintance();
              var bestFriend = person.Friend();

              properties

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

              /*eslint new-cap: ["error", { "properties": true }]*/
              
              var friend = new person.acquaintance();

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

              /*eslint new-cap: ["error", { "properties": true }]*/
              
              var friend = new person.Acquaintance();

              Examples of correct code for this rule with the { "properties": false } option:

              /*eslint new-cap: ["error", { "properties": false }]*/
              
              var friend = new person.acquaintance();

              When Not To Use It

              If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

              Identifier 'adjust_height_after' is not in camel case.
              Open

                      adjust_height_after = false;

              Require Camelcase (camelcase)

              When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

              Rule Details

              This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

              Options

              This rule has an object option:

              • "properties": "always" (default) enforces camelcase style for property names
              • "properties": "never" does not check property names

              always

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased } from "external-module"
              
              var my_favorite_color = "#112C85";
              
              function do_something() {
                  // ...
              }
              
              obj.do_something = function() {
                  // ...
              };
              
              var obj = {
                  my_pref: 1
              };

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased as camelCased } from "external-module";
              
              var myFavoriteColor   = "#112C85";
              var _myFavoriteColor  = "#112C85";
              var myFavoriteColor_  = "#112C85";
              var MY_FAVORITE_COLOR = "#112C85";
              var foo = bar.baz_boom;
              var foo = { qux: bar.baz_boom };
              
              obj.do_something();
              do_something();
              new do_something();
              
              var { category_id: category } = query;

              never

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

              /*eslint camelcase: ["error", {properties: "never"}]*/
              
              var obj = {
                  my_pref: 1
              };

              When Not To Use It

              If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

              Identifier 'next_idx' is not in camel case.
              Open

                        idx = next_idx;

              Require Camelcase (camelcase)

              When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

              Rule Details

              This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

              Options

              This rule has an object option:

              • "properties": "always" (default) enforces camelcase style for property names
              • "properties": "never" does not check property names

              always

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased } from "external-module"
              
              var my_favorite_color = "#112C85";
              
              function do_something() {
                  // ...
              }
              
              obj.do_something = function() {
                  // ...
              };
              
              var obj = {
                  my_pref: 1
              };

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased as camelCased } from "external-module";
              
              var myFavoriteColor   = "#112C85";
              var _myFavoriteColor  = "#112C85";
              var myFavoriteColor_  = "#112C85";
              var MY_FAVORITE_COLOR = "#112C85";
              var foo = bar.baz_boom;
              var foo = { qux: bar.baz_boom };
              
              obj.do_something();
              do_something();
              new do_something();
              
              var { category_id: category } = query;

              never

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

              /*eslint camelcase: ["error", {properties: "never"}]*/
              
              var obj = {
                  my_pref: 1
              };

              When Not To Use It

              If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

              Unnecessarily quoted property 'margin' found.
              Open

                    next.css({'margin' : '0%', 'opacity' : '0.01'});

              require quotes around object literal property names (quote-props)

              Object literal property names can be defined in two ways: using literals or using strings. For example, these two objects are equivalent:

              var object1 = {
                  property: true
              };
              
              var object2 = {
                  "property": true
              };

              In many cases, it doesn't matter if you choose to use an identifier instead of a string or vice-versa. Even so, you might decide to enforce a consistent style in your code.

              There are, however, some occasions when you must use quotes:

              1. If you are using an ECMAScript 3 JavaScript engine (such as IE8) and you want to use a keyword (such as if) as a property name. This restriction was removed in ECMAScript 5.
              2. You want to use a non-identifier character in your property name, such as having a property with a space like "one two".

              Another example where quotes do matter is when using numeric literals as property keys:

              var object = {
                  1e2: 1,
                  100: 2
              };

              This may look alright at first sight, but this code in fact throws a syntax error in ECMAScript 5 strict mode. This happens because 1e2 and 100 are coerced into strings before getting used as the property name. Both String(1e2) and String(100) happen to be equal to "100", which causes the "Duplicate data property in object literal not allowed in strict mode" error. Issues like that can be tricky to debug, so some prefer to require quotes around all property names.

              Rule Details

              This rule requires quotes around object literal property names.

              Options

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

              String option:

              • "always" (default) requires quotes around all object literal property names
              • "as-needed" disallows quotes around object literal property names that are not strictly required
              • "consistent" enforces a consistent quote style requires quotes around object literal property names
              • "consistent-as-needed" requires quotes around all object literal property names if any name strictly requires quotes, otherwise disallows quotes around object property names

              Object option:

              • "keywords": true requires quotes around language keywords used as object property names (only applies when using as-needed or consistent-as-needed)
              • "unnecessary": true (default) disallows quotes around object literal property names that are not strictly required (only applies when using as-needed)
              • "unnecessary": false allows quotes around object literal property names that are not strictly required (only applies when using as-needed)
              • "numbers": true requires quotes around numbers used as object property names (only applies when using as-needed)

              always

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

              /*eslint quote-props: ["error", "always"]*/
              
              var object = {
                  foo: "bar",
                  baz: 42,
                  "qux-lorem": true
              };

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

              /*eslint quote-props: ["error", "always"]*/
              /*eslint-env es6*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42,
                  'qux-lorem': true
              };
              
              var object3 = {
                  foo() {
                      return;
                  }
              };

              as-needed

              Examples of incorrect code for this rule with the "as-needed" option:

              /*eslint quote-props: ["error", "as-needed"]*/
              
              var object = {
                  "a": 0,
                  "0": 0,
                  "true": 0,
                  "null": 0
              };

              Examples of correct code for this rule with the "as-needed" option:

              /*eslint quote-props: ["error", "as-needed"]*/
              /*eslint-env es6*/
              
              var object1 = {
                  "a-b": 0,
                  "0x0": 0,
                  "1e2": 0
              };
              
              var object2 = {
                  foo: 'bar',
                  baz: 42,
                  true: 0,
                  0: 0,
                  'qux-lorem': true
              };
              
              var object3 = {
                  foo() {
                      return;
                  }
              };

              consistent

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

              /*eslint quote-props: ["error", "consistent"]*/
              
              var object1 = {
                  foo: "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  baz: 42
              };

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

              /*eslint quote-props: ["error", "consistent"]*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42
              };
              
              var object3 = {
                  foo: 'bar',
                  baz: 42
              };

              consistent-as-needed

              Examples of incorrect code for this rule with the "consistent-as-needed" option:

              /*eslint quote-props: ["error", "consistent-as-needed"]*/
              
              var object1 = {
                  foo: "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42
              };

              Examples of correct code for this rule with the "consistent-as-needed" option:

              /*eslint quote-props: ["error", "consistent-as-needed"]*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  foo: 'bar',
                  baz: 42
              };

              keywords

              Examples of additional incorrect code for this rule with the "as-needed", { "keywords": true } options:

              /*eslint quote-props: ["error", "as-needed", { "keywords": true }]*/
              
              var x = {
                  while: 1,
                  volatile: "foo"
              };

              Examples of additional incorrect code for this rule with the "consistent-as-needed", { "keywords": true } options:

              /*eslint quote-props: ["error", "consistent-as-needed", { "keywords": true }]*/
              
              var x = {
                  "prop": 1,
                  "bar": "foo"
              };

              unnecessary

              Examples of additional correct code for this rule with the "as-needed", { "unnecessary": false } options:

              /*eslint quote-props: ["error", "as-needed", { "keywords": true, "unnecessary": false }]*/
              
              var x = {
                  "while": 1,
                  "foo": "bar"  // Would normally have caused a warning
              };

              numbers

              Examples of additional incorrect code for this rule with the "as-needed", { "numbers": true } options:

              /*eslint quote-props: ["error", "as-needed", { "numbers": true }]*/
              
              var x = {
                  100: 1
              }

              When Not To Use It

              If you don't care if property names are consistently wrapped in quotes or not, and you don't target legacy ES3 environments, turn this rule off.

              Further Reading

              Identifier 'start_timer' is not in camel case.
              Open

                        if (start_timer === true) {timer = self.create_timer(); timer.start();}

              Require Camelcase (camelcase)

              When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

              Rule Details

              This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

              Options

              This rule has an object option:

              • "properties": "always" (default) enforces camelcase style for property names
              • "properties": "never" does not check property names

              always

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased } from "external-module"
              
              var my_favorite_color = "#112C85";
              
              function do_something() {
                  // ...
              }
              
              obj.do_something = function() {
                  // ...
              };
              
              var obj = {
                  my_pref: 1
              };

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased as camelCased } from "external-module";
              
              var myFavoriteColor   = "#112C85";
              var _myFavoriteColor  = "#112C85";
              var myFavoriteColor_  = "#112C85";
              var MY_FAVORITE_COLOR = "#112C85";
              var foo = bar.baz_boom;
              var foo = { qux: bar.baz_boom };
              
              obj.do_something();
              do_something();
              new do_something();
              
              var { category_id: category } = query;

              never

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

              /*eslint camelcase: ["error", {properties: "never"}]*/
              
              var obj = {
                  my_pref: 1
              };

              When Not To Use It

              If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

              Unnecessarily quoted property 'opacity' found.
              Open

                    prev.animate({'opacity' : '1'}, duration, 'linear', function () {

              require quotes around object literal property names (quote-props)

              Object literal property names can be defined in two ways: using literals or using strings. For example, these two objects are equivalent:

              var object1 = {
                  property: true
              };
              
              var object2 = {
                  "property": true
              };

              In many cases, it doesn't matter if you choose to use an identifier instead of a string or vice-versa. Even so, you might decide to enforce a consistent style in your code.

              There are, however, some occasions when you must use quotes:

              1. If you are using an ECMAScript 3 JavaScript engine (such as IE8) and you want to use a keyword (such as if) as a property name. This restriction was removed in ECMAScript 5.
              2. You want to use a non-identifier character in your property name, such as having a property with a space like "one two".

              Another example where quotes do matter is when using numeric literals as property keys:

              var object = {
                  1e2: 1,
                  100: 2
              };

              This may look alright at first sight, but this code in fact throws a syntax error in ECMAScript 5 strict mode. This happens because 1e2 and 100 are coerced into strings before getting used as the property name. Both String(1e2) and String(100) happen to be equal to "100", which causes the "Duplicate data property in object literal not allowed in strict mode" error. Issues like that can be tricky to debug, so some prefer to require quotes around all property names.

              Rule Details

              This rule requires quotes around object literal property names.

              Options

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

              String option:

              • "always" (default) requires quotes around all object literal property names
              • "as-needed" disallows quotes around object literal property names that are not strictly required
              • "consistent" enforces a consistent quote style requires quotes around object literal property names
              • "consistent-as-needed" requires quotes around all object literal property names if any name strictly requires quotes, otherwise disallows quotes around object property names

              Object option:

              • "keywords": true requires quotes around language keywords used as object property names (only applies when using as-needed or consistent-as-needed)
              • "unnecessary": true (default) disallows quotes around object literal property names that are not strictly required (only applies when using as-needed)
              • "unnecessary": false allows quotes around object literal property names that are not strictly required (only applies when using as-needed)
              • "numbers": true requires quotes around numbers used as object property names (only applies when using as-needed)

              always

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

              /*eslint quote-props: ["error", "always"]*/
              
              var object = {
                  foo: "bar",
                  baz: 42,
                  "qux-lorem": true
              };

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

              /*eslint quote-props: ["error", "always"]*/
              /*eslint-env es6*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42,
                  'qux-lorem': true
              };
              
              var object3 = {
                  foo() {
                      return;
                  }
              };

              as-needed

              Examples of incorrect code for this rule with the "as-needed" option:

              /*eslint quote-props: ["error", "as-needed"]*/
              
              var object = {
                  "a": 0,
                  "0": 0,
                  "true": 0,
                  "null": 0
              };

              Examples of correct code for this rule with the "as-needed" option:

              /*eslint quote-props: ["error", "as-needed"]*/
              /*eslint-env es6*/
              
              var object1 = {
                  "a-b": 0,
                  "0x0": 0,
                  "1e2": 0
              };
              
              var object2 = {
                  foo: 'bar',
                  baz: 42,
                  true: 0,
                  0: 0,
                  'qux-lorem': true
              };
              
              var object3 = {
                  foo() {
                      return;
                  }
              };

              consistent

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

              /*eslint quote-props: ["error", "consistent"]*/
              
              var object1 = {
                  foo: "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  baz: 42
              };

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

              /*eslint quote-props: ["error", "consistent"]*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42
              };
              
              var object3 = {
                  foo: 'bar',
                  baz: 42
              };

              consistent-as-needed

              Examples of incorrect code for this rule with the "consistent-as-needed" option:

              /*eslint quote-props: ["error", "consistent-as-needed"]*/
              
              var object1 = {
                  foo: "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42
              };

              Examples of correct code for this rule with the "consistent-as-needed" option:

              /*eslint quote-props: ["error", "consistent-as-needed"]*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  foo: 'bar',
                  baz: 42
              };

              keywords

              Examples of additional incorrect code for this rule with the "as-needed", { "keywords": true } options:

              /*eslint quote-props: ["error", "as-needed", { "keywords": true }]*/
              
              var x = {
                  while: 1,
                  volatile: "foo"
              };

              Examples of additional incorrect code for this rule with the "consistent-as-needed", { "keywords": true } options:

              /*eslint quote-props: ["error", "consistent-as-needed", { "keywords": true }]*/
              
              var x = {
                  "prop": 1,
                  "bar": "foo"
              };

              unnecessary

              Examples of additional correct code for this rule with the "as-needed", { "unnecessary": false } options:

              /*eslint quote-props: ["error", "as-needed", { "keywords": true, "unnecessary": false }]*/
              
              var x = {
                  "while": 1,
                  "foo": "bar"  // Would normally have caused a warning
              };

              numbers

              Examples of additional incorrect code for this rule with the "as-needed", { "numbers": true } options:

              /*eslint quote-props: ["error", "as-needed", { "numbers": true }]*/
              
              var x = {
                  100: 1
              }

              When Not To Use It

              If you don't care if property names are consistently wrapped in quotes or not, and you don't target legacy ES3 environments, turn this rule off.

              Further Reading

              Identifier 'next_idx' is not in camel case.
              Open

                      next_idx = 0;

              Require Camelcase (camelcase)

              When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

              Rule Details

              This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

              Options

              This rule has an object option:

              • "properties": "always" (default) enforces camelcase style for property names
              • "properties": "never" does not check property names

              always

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased } from "external-module"
              
              var my_favorite_color = "#112C85";
              
              function do_something() {
                  // ...
              }
              
              obj.do_something = function() {
                  // ...
              };
              
              var obj = {
                  my_pref: 1
              };

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased as camelCased } from "external-module";
              
              var myFavoriteColor   = "#112C85";
              var _myFavoriteColor  = "#112C85";
              var myFavoriteColor_  = "#112C85";
              var MY_FAVORITE_COLOR = "#112C85";
              var foo = bar.baz_boom;
              var foo = { qux: bar.baz_boom };
              
              obj.do_something();
              do_something();
              new do_something();
              
              var { category_id: category } = query;

              never

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

              /*eslint camelcase: ["error", {properties: "never"}]*/
              
              var obj = {
                  my_pref: 1
              };

              When Not To Use It

              If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

              Identifier 'new_progress' is not in camel case.
              Open

                    progress = new_progress;

              Require Camelcase (camelcase)

              When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

              Rule Details

              This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

              Options

              This rule has an object option:

              • "properties": "always" (default) enforces camelcase style for property names
              • "properties": "never" does not check property names

              always

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased } from "external-module"
              
              var my_favorite_color = "#112C85";
              
              function do_something() {
                  // ...
              }
              
              obj.do_something = function() {
                  // ...
              };
              
              var obj = {
                  my_pref: 1
              };

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased as camelCased } from "external-module";
              
              var myFavoriteColor   = "#112C85";
              var _myFavoriteColor  = "#112C85";
              var myFavoriteColor_  = "#112C85";
              var MY_FAVORITE_COLOR = "#112C85";
              var foo = bar.baz_boom;
              var foo = { qux: bar.baz_boom };
              
              obj.do_something();
              do_something();
              new do_something();
              
              var { category_id: category } = query;

              never

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

              /*eslint camelcase: ["error", {properties: "never"}]*/
              
              var obj = {
                  my_pref: 1
              };

              When Not To Use It

              If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

              Identifier 'is_rtl' is not in camel case.
              Open

                  var is_rtl = ($('html[dir=rtl]').length === 1);

              Require Camelcase (camelcase)

              When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

              Rule Details

              This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

              Options

              This rule has an object option:

              • "properties": "always" (default) enforces camelcase style for property names
              • "properties": "never" does not check property names

              always

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased } from "external-module"
              
              var my_favorite_color = "#112C85";
              
              function do_something() {
                  // ...
              }
              
              obj.do_something = function() {
                  // ...
              };
              
              var obj = {
                  my_pref: 1
              };

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased as camelCased } from "external-module";
              
              var myFavoriteColor   = "#112C85";
              var _myFavoriteColor  = "#112C85";
              var myFavoriteColor_  = "#112C85";
              var MY_FAVORITE_COLOR = "#112C85";
              var foo = bar.baz_boom;
              var foo = { qux: bar.baz_boom };
              
              obj.do_something();
              do_something();
              new do_something();
              
              var { category_id: category } = query;

              never

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

              /*eslint camelcase: ["error", {properties: "never"}]*/
              
              var obj = {
                  my_pref: 1
              };

              When Not To Use It

              If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

              Identifier 'is_rtl' is not in camel case.
              Open

                  var margin = is_rtl ? 'marginRight' : 'marginLeft';

              Require Camelcase (camelcase)

              When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

              Rule Details

              This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

              Options

              This rule has an object option:

              • "properties": "always" (default) enforces camelcase style for property names
              • "properties": "never" does not check property names

              always

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased } from "external-module"
              
              var my_favorite_color = "#112C85";
              
              function do_something() {
                  // ...
              }
              
              obj.do_something = function() {
                  // ...
              };
              
              var obj = {
                  my_pref: 1
              };

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased as camelCased } from "external-module";
              
              var myFavoriteColor   = "#112C85";
              var _myFavoriteColor  = "#112C85";
              var myFavoriteColor_  = "#112C85";
              var MY_FAVORITE_COLOR = "#112C85";
              var foo = bar.baz_boom;
              var foo = { qux: bar.baz_boom };
              
              obj.do_something();
              do_something();
              new do_something();
              
              var { category_id: category } = query;

              never

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

              /*eslint camelcase: ["error", {properties: "never"}]*/
              
              var obj = {
                  my_pref: 1
              };

              When Not To Use It

              If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

              Unnecessarily quoted property 'opacity' found.
              Open

                    next.css({'margin' : '0%', 'opacity' : '0.01'});

              require quotes around object literal property names (quote-props)

              Object literal property names can be defined in two ways: using literals or using strings. For example, these two objects are equivalent:

              var object1 = {
                  property: true
              };
              
              var object2 = {
                  "property": true
              };

              In many cases, it doesn't matter if you choose to use an identifier instead of a string or vice-versa. Even so, you might decide to enforce a consistent style in your code.

              There are, however, some occasions when you must use quotes:

              1. If you are using an ECMAScript 3 JavaScript engine (such as IE8) and you want to use a keyword (such as if) as a property name. This restriction was removed in ECMAScript 5.
              2. You want to use a non-identifier character in your property name, such as having a property with a space like "one two".

              Another example where quotes do matter is when using numeric literals as property keys:

              var object = {
                  1e2: 1,
                  100: 2
              };

              This may look alright at first sight, but this code in fact throws a syntax error in ECMAScript 5 strict mode. This happens because 1e2 and 100 are coerced into strings before getting used as the property name. Both String(1e2) and String(100) happen to be equal to "100", which causes the "Duplicate data property in object literal not allowed in strict mode" error. Issues like that can be tricky to debug, so some prefer to require quotes around all property names.

              Rule Details

              This rule requires quotes around object literal property names.

              Options

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

              String option:

              • "always" (default) requires quotes around all object literal property names
              • "as-needed" disallows quotes around object literal property names that are not strictly required
              • "consistent" enforces a consistent quote style requires quotes around object literal property names
              • "consistent-as-needed" requires quotes around all object literal property names if any name strictly requires quotes, otherwise disallows quotes around object property names

              Object option:

              • "keywords": true requires quotes around language keywords used as object property names (only applies when using as-needed or consistent-as-needed)
              • "unnecessary": true (default) disallows quotes around object literal property names that are not strictly required (only applies when using as-needed)
              • "unnecessary": false allows quotes around object literal property names that are not strictly required (only applies when using as-needed)
              • "numbers": true requires quotes around numbers used as object property names (only applies when using as-needed)

              always

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

              /*eslint quote-props: ["error", "always"]*/
              
              var object = {
                  foo: "bar",
                  baz: 42,
                  "qux-lorem": true
              };

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

              /*eslint quote-props: ["error", "always"]*/
              /*eslint-env es6*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42,
                  'qux-lorem': true
              };
              
              var object3 = {
                  foo() {
                      return;
                  }
              };

              as-needed

              Examples of incorrect code for this rule with the "as-needed" option:

              /*eslint quote-props: ["error", "as-needed"]*/
              
              var object = {
                  "a": 0,
                  "0": 0,
                  "true": 0,
                  "null": 0
              };

              Examples of correct code for this rule with the "as-needed" option:

              /*eslint quote-props: ["error", "as-needed"]*/
              /*eslint-env es6*/
              
              var object1 = {
                  "a-b": 0,
                  "0x0": 0,
                  "1e2": 0
              };
              
              var object2 = {
                  foo: 'bar',
                  baz: 42,
                  true: 0,
                  0: 0,
                  'qux-lorem': true
              };
              
              var object3 = {
                  foo() {
                      return;
                  }
              };

              consistent

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

              /*eslint quote-props: ["error", "consistent"]*/
              
              var object1 = {
                  foo: "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  baz: 42
              };

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

              /*eslint quote-props: ["error", "consistent"]*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42
              };
              
              var object3 = {
                  foo: 'bar',
                  baz: 42
              };

              consistent-as-needed

              Examples of incorrect code for this rule with the "consistent-as-needed" option:

              /*eslint quote-props: ["error", "consistent-as-needed"]*/
              
              var object1 = {
                  foo: "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42
              };

              Examples of correct code for this rule with the "consistent-as-needed" option:

              /*eslint quote-props: ["error", "consistent-as-needed"]*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  foo: 'bar',
                  baz: 42
              };

              keywords

              Examples of additional incorrect code for this rule with the "as-needed", { "keywords": true } options:

              /*eslint quote-props: ["error", "as-needed", { "keywords": true }]*/
              
              var x = {
                  while: 1,
                  volatile: "foo"
              };

              Examples of additional incorrect code for this rule with the "consistent-as-needed", { "keywords": true } options:

              /*eslint quote-props: ["error", "consistent-as-needed", { "keywords": true }]*/
              
              var x = {
                  "prop": 1,
                  "bar": "foo"
              };

              unnecessary

              Examples of additional correct code for this rule with the "as-needed", { "unnecessary": false } options:

              /*eslint quote-props: ["error", "as-needed", { "keywords": true, "unnecessary": false }]*/
              
              var x = {
                  "while": 1,
                  "foo": "bar"  // Would normally have caused a warning
              };

              numbers

              Examples of additional incorrect code for this rule with the "as-needed", { "numbers": true } options:

              /*eslint quote-props: ["error", "as-needed", { "numbers": true }]*/
              
              var x = {
                  100: 1
              }

              When Not To Use It

              If you don't care if property names are consistently wrapped in quotes or not, and you don't target legacy ES3 environments, turn this rule off.

              Further Reading

              Identifier 'next_idx' is not in camel case.
              Open

                    if (next_idx < idx) {dir = 'prev';}

              Require Camelcase (camelcase)

              When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

              Rule Details

              This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

              Options

              This rule has an object option:

              • "properties": "always" (default) enforces camelcase style for property names
              • "properties": "never" does not check property names

              always

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased } from "external-module"
              
              var my_favorite_color = "#112C85";
              
              function do_something() {
                  // ...
              }
              
              obj.do_something = function() {
                  // ...
              };
              
              var obj = {
                  my_pref: 1
              };

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased as camelCased } from "external-module";
              
              var myFavoriteColor   = "#112C85";
              var _myFavoriteColor  = "#112C85";
              var myFavoriteColor_  = "#112C85";
              var MY_FAVORITE_COLOR = "#112C85";
              var foo = bar.baz_boom;
              var foo = { qux: bar.baz_boom };
              
              obj.do_something();
              do_something();
              new do_something();
              
              var { category_id: category } = query;

              never

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

              /*eslint camelcase: ["error", {properties: "never"}]*/
              
              var obj = {
                  my_pref: 1
              };

              When Not To Use It

              If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

              Identifier 'next_idx' is not in camel case.
              Open

                      next_idx = slides.length - 1;

              Require Camelcase (camelcase)

              When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

              Rule Details

              This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

              Options

              This rule has an object option:

              • "properties": "always" (default) enforces camelcase style for property names
              • "properties": "never" does not check property names

              always

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased } from "external-module"
              
              var my_favorite_color = "#112C85";
              
              function do_something() {
                  // ...
              }
              
              obj.do_something = function() {
                  // ...
              };
              
              var obj = {
                  my_pref: 1
              };

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased as camelCased } from "external-module";
              
              var myFavoriteColor   = "#112C85";
              var _myFavoriteColor  = "#112C85";
              var myFavoriteColor_  = "#112C85";
              var MY_FAVORITE_COLOR = "#112C85";
              var foo = bar.baz_boom;
              var foo = { qux: bar.baz_boom };
              
              obj.do_something();
              do_something();
              new do_something();
              
              var { category_id: category } = query;

              never

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

              /*eslint camelcase: ["error", {properties: "never"}]*/
              
              var obj = {
                  my_pref: 1
              };

              When Not To Use It

              If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

              Unnecessarily quoted property 'margin' found.
              Open

                    prev.css({'margin' : '0%', 'opacity' : '0.01'});

              require quotes around object literal property names (quote-props)

              Object literal property names can be defined in two ways: using literals or using strings. For example, these two objects are equivalent:

              var object1 = {
                  property: true
              };
              
              var object2 = {
                  "property": true
              };

              In many cases, it doesn't matter if you choose to use an identifier instead of a string or vice-versa. Even so, you might decide to enforce a consistent style in your code.

              There are, however, some occasions when you must use quotes:

              1. If you are using an ECMAScript 3 JavaScript engine (such as IE8) and you want to use a keyword (such as if) as a property name. This restriction was removed in ECMAScript 5.
              2. You want to use a non-identifier character in your property name, such as having a property with a space like "one two".

              Another example where quotes do matter is when using numeric literals as property keys:

              var object = {
                  1e2: 1,
                  100: 2
              };

              This may look alright at first sight, but this code in fact throws a syntax error in ECMAScript 5 strict mode. This happens because 1e2 and 100 are coerced into strings before getting used as the property name. Both String(1e2) and String(100) happen to be equal to "100", which causes the "Duplicate data property in object literal not allowed in strict mode" error. Issues like that can be tricky to debug, so some prefer to require quotes around all property names.

              Rule Details

              This rule requires quotes around object literal property names.

              Options

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

              String option:

              • "always" (default) requires quotes around all object literal property names
              • "as-needed" disallows quotes around object literal property names that are not strictly required
              • "consistent" enforces a consistent quote style requires quotes around object literal property names
              • "consistent-as-needed" requires quotes around all object literal property names if any name strictly requires quotes, otherwise disallows quotes around object property names

              Object option:

              • "keywords": true requires quotes around language keywords used as object property names (only applies when using as-needed or consistent-as-needed)
              • "unnecessary": true (default) disallows quotes around object literal property names that are not strictly required (only applies when using as-needed)
              • "unnecessary": false allows quotes around object literal property names that are not strictly required (only applies when using as-needed)
              • "numbers": true requires quotes around numbers used as object property names (only applies when using as-needed)

              always

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

              /*eslint quote-props: ["error", "always"]*/
              
              var object = {
                  foo: "bar",
                  baz: 42,
                  "qux-lorem": true
              };

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

              /*eslint quote-props: ["error", "always"]*/
              /*eslint-env es6*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42,
                  'qux-lorem': true
              };
              
              var object3 = {
                  foo() {
                      return;
                  }
              };

              as-needed

              Examples of incorrect code for this rule with the "as-needed" option:

              /*eslint quote-props: ["error", "as-needed"]*/
              
              var object = {
                  "a": 0,
                  "0": 0,
                  "true": 0,
                  "null": 0
              };

              Examples of correct code for this rule with the "as-needed" option:

              /*eslint quote-props: ["error", "as-needed"]*/
              /*eslint-env es6*/
              
              var object1 = {
                  "a-b": 0,
                  "0x0": 0,
                  "1e2": 0
              };
              
              var object2 = {
                  foo: 'bar',
                  baz: 42,
                  true: 0,
                  0: 0,
                  'qux-lorem': true
              };
              
              var object3 = {
                  foo() {
                      return;
                  }
              };

              consistent

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

              /*eslint quote-props: ["error", "consistent"]*/
              
              var object1 = {
                  foo: "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  baz: 42
              };

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

              /*eslint quote-props: ["error", "consistent"]*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42
              };
              
              var object3 = {
                  foo: 'bar',
                  baz: 42
              };

              consistent-as-needed

              Examples of incorrect code for this rule with the "consistent-as-needed" option:

              /*eslint quote-props: ["error", "consistent-as-needed"]*/
              
              var object1 = {
                  foo: "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42
              };

              Examples of correct code for this rule with the "consistent-as-needed" option:

              /*eslint quote-props: ["error", "consistent-as-needed"]*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  foo: 'bar',
                  baz: 42
              };

              keywords

              Examples of additional incorrect code for this rule with the "as-needed", { "keywords": true } options:

              /*eslint quote-props: ["error", "as-needed", { "keywords": true }]*/
              
              var x = {
                  while: 1,
                  volatile: "foo"
              };

              Examples of additional incorrect code for this rule with the "consistent-as-needed", { "keywords": true } options:

              /*eslint quote-props: ["error", "consistent-as-needed", { "keywords": true }]*/
              
              var x = {
                  "prop": 1,
                  "bar": "foo"
              };

              unnecessary

              Examples of additional correct code for this rule with the "as-needed", { "unnecessary": false } options:

              /*eslint quote-props: ["error", "as-needed", { "keywords": true, "unnecessary": false }]*/
              
              var x = {
                  "while": 1,
                  "foo": "bar"  // Would normally have caused a warning
              };

              numbers

              Examples of additional incorrect code for this rule with the "as-needed", { "numbers": true } options:

              /*eslint quote-props: ["error", "as-needed", { "numbers": true }]*/
              
              var x = {
                  100: 1
              }

              When Not To Use It

              If you don't care if property names are consistently wrapped in quotes or not, and you don't target legacy ES3 environments, turn this rule off.

              Further Reading

              Unnecessarily quoted property 'opacity' found.
              Open

                    prev.css({'margin' : '0%', 'opacity' : '0.01'});

              require quotes around object literal property names (quote-props)

              Object literal property names can be defined in two ways: using literals or using strings. For example, these two objects are equivalent:

              var object1 = {
                  property: true
              };
              
              var object2 = {
                  "property": true
              };

              In many cases, it doesn't matter if you choose to use an identifier instead of a string or vice-versa. Even so, you might decide to enforce a consistent style in your code.

              There are, however, some occasions when you must use quotes:

              1. If you are using an ECMAScript 3 JavaScript engine (such as IE8) and you want to use a keyword (such as if) as a property name. This restriction was removed in ECMAScript 5.
              2. You want to use a non-identifier character in your property name, such as having a property with a space like "one two".

              Another example where quotes do matter is when using numeric literals as property keys:

              var object = {
                  1e2: 1,
                  100: 2
              };

              This may look alright at first sight, but this code in fact throws a syntax error in ECMAScript 5 strict mode. This happens because 1e2 and 100 are coerced into strings before getting used as the property name. Both String(1e2) and String(100) happen to be equal to "100", which causes the "Duplicate data property in object literal not allowed in strict mode" error. Issues like that can be tricky to debug, so some prefer to require quotes around all property names.

              Rule Details

              This rule requires quotes around object literal property names.

              Options

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

              String option:

              • "always" (default) requires quotes around all object literal property names
              • "as-needed" disallows quotes around object literal property names that are not strictly required
              • "consistent" enforces a consistent quote style requires quotes around object literal property names
              • "consistent-as-needed" requires quotes around all object literal property names if any name strictly requires quotes, otherwise disallows quotes around object property names

              Object option:

              • "keywords": true requires quotes around language keywords used as object property names (only applies when using as-needed or consistent-as-needed)
              • "unnecessary": true (default) disallows quotes around object literal property names that are not strictly required (only applies when using as-needed)
              • "unnecessary": false allows quotes around object literal property names that are not strictly required (only applies when using as-needed)
              • "numbers": true requires quotes around numbers used as object property names (only applies when using as-needed)

              always

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

              /*eslint quote-props: ["error", "always"]*/
              
              var object = {
                  foo: "bar",
                  baz: 42,
                  "qux-lorem": true
              };

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

              /*eslint quote-props: ["error", "always"]*/
              /*eslint-env es6*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42,
                  'qux-lorem': true
              };
              
              var object3 = {
                  foo() {
                      return;
                  }
              };

              as-needed

              Examples of incorrect code for this rule with the "as-needed" option:

              /*eslint quote-props: ["error", "as-needed"]*/
              
              var object = {
                  "a": 0,
                  "0": 0,
                  "true": 0,
                  "null": 0
              };

              Examples of correct code for this rule with the "as-needed" option:

              /*eslint quote-props: ["error", "as-needed"]*/
              /*eslint-env es6*/
              
              var object1 = {
                  "a-b": 0,
                  "0x0": 0,
                  "1e2": 0
              };
              
              var object2 = {
                  foo: 'bar',
                  baz: 42,
                  true: 0,
                  0: 0,
                  'qux-lorem': true
              };
              
              var object3 = {
                  foo() {
                      return;
                  }
              };

              consistent

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

              /*eslint quote-props: ["error", "consistent"]*/
              
              var object1 = {
                  foo: "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  baz: 42
              };

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

              /*eslint quote-props: ["error", "consistent"]*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42
              };
              
              var object3 = {
                  foo: 'bar',
                  baz: 42
              };

              consistent-as-needed

              Examples of incorrect code for this rule with the "consistent-as-needed" option:

              /*eslint quote-props: ["error", "consistent-as-needed"]*/
              
              var object1 = {
                  foo: "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42
              };

              Examples of correct code for this rule with the "consistent-as-needed" option:

              /*eslint quote-props: ["error", "consistent-as-needed"]*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  foo: 'bar',
                  baz: 42
              };

              keywords

              Examples of additional incorrect code for this rule with the "as-needed", { "keywords": true } options:

              /*eslint quote-props: ["error", "as-needed", { "keywords": true }]*/
              
              var x = {
                  while: 1,
                  volatile: "foo"
              };

              Examples of additional incorrect code for this rule with the "consistent-as-needed", { "keywords": true } options:

              /*eslint quote-props: ["error", "consistent-as-needed", { "keywords": true }]*/
              
              var x = {
                  "prop": 1,
                  "bar": "foo"
              };

              unnecessary

              Examples of additional correct code for this rule with the "as-needed", { "unnecessary": false } options:

              /*eslint quote-props: ["error", "as-needed", { "keywords": true, "unnecessary": false }]*/
              
              var x = {
                  "while": 1,
                  "foo": "bar"  // Would normally have caused a warning
              };

              numbers

              Examples of additional incorrect code for this rule with the "as-needed", { "numbers": true } options:

              /*eslint quote-props: ["error", "as-needed", { "numbers": true }]*/
              
              var x = {
                  100: 1
              }

              When Not To Use It

              If you don't care if property names are consistently wrapped in quotes or not, and you don't target legacy ES3 environments, turn this rule off.

              Further Reading

              Identifier 'slides_container' is not in camel case.
              Open

                      slides_container = el,

              Require Camelcase (camelcase)

              When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

              Rule Details

              This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

              Options

              This rule has an object option:

              • "properties": "always" (default) enforces camelcase style for property names
              • "properties": "never" does not check property names

              always

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased } from "external-module"
              
              var my_favorite_color = "#112C85";
              
              function do_something() {
                  // ...
              }
              
              obj.do_something = function() {
                  // ...
              };
              
              var obj = {
                  my_pref: 1
              };

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased as camelCased } from "external-module";
              
              var myFavoriteColor   = "#112C85";
              var _myFavoriteColor  = "#112C85";
              var myFavoriteColor_  = "#112C85";
              var MY_FAVORITE_COLOR = "#112C85";
              var foo = bar.baz_boom;
              var foo = { qux: bar.baz_boom };
              
              obj.do_something();
              do_something();
              new do_something();
              
              var { category_id: category } = query;

              never

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

              /*eslint camelcase: ["error", {properties: "never"}]*/
              
              var obj = {
                  my_pref: 1
              };

              When Not To Use It

              If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

              A function with a name starting with an uppercase letter should only be used as a constructor.
              Open

                      self.S('[data-orbit]', self.scope).each(function (idx, el) {

              require constructor names to begin with a capital letter (new-cap)

              The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

              var friend = new Person();

              Rule Details

              This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

              • Array
              • Boolean
              • Date
              • Error
              • Function
              • Number
              • Object
              • RegExp
              • String
              • Symbol

              Examples of correct code for this rule:

              /*eslint new-cap: "error"*/
              
              function foo(arg) {
                  return Boolean(arg);
              }

              Options

              This rule has an object option:

              • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
              • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
              • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
              • "capIsNew": false allows uppercase-started functions to be called without new operators.
              • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
              • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
              • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
              • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
              • "properties": true (default) enables checks on object properties
              • "properties": false disables checks on object properties

              newIsCap

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

              /*eslint new-cap: ["error", { "newIsCap": true }]*/
              
              var friend = new person();

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

              /*eslint new-cap: ["error", { "newIsCap": true }]*/
              
              var friend = new Person();

              Examples of correct code for this rule with the { "newIsCap": false } option:

              /*eslint new-cap: ["error", { "newIsCap": false }]*/
              
              var friend = new person();

              capIsNew

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

              /*eslint new-cap: ["error", { "capIsNew": true }]*/
              
              var colleague = Person();

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

              /*eslint new-cap: ["error", { "capIsNew": true }]*/
              
              var colleague = new Person();

              Examples of correct code for this rule with the { "capIsNew": false } option:

              /*eslint new-cap: ["error", { "capIsNew": false }]*/
              
              var colleague = Person();

              newIsCapExceptions

              Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

              /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
              
              var events = require('events');
              
              var emitter = new events();

              newIsCapExceptionPattern

              Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

              /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
              
              var friend = new person.acquaintance();
              var bestFriend = new person.friend();

              capIsNewExceptions

              Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

              /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
              
              function foo(arg) {
                  return Person(arg);
              }

              capIsNewExceptionPattern

              Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

              /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
              
              var friend = person.Acquaintance();
              var bestFriend = person.Friend();

              properties

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

              /*eslint new-cap: ["error", { "properties": true }]*/
              
              var friend = new person.acquaintance();

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

              /*eslint new-cap: ["error", { "properties": true }]*/
              
              var friend = new person.Acquaintance();

              Examples of correct code for this rule with the { "properties": false } option:

              /*eslint new-cap: ["error", { "properties": false }]*/
              
              var friend = new person.acquaintance();

              When Not To Use It

              If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

              Missing semicolon.
              Open

                    el.trigger('timer-started.fndtn.orbit')

              require or disallow semicolons instead of ASI (semi)

              JavaScript is unique amongst the C-like languages in that it doesn't require semicolons at the end of each statement. In many cases, the JavaScript engine can determine that a semicolon should be in a certain spot and will automatically add it. This feature is known as automatic semicolon insertion (ASI) and is considered one of the more controversial features of JavaScript. For example, the following lines are both valid:

              var name = "ESLint"
              var website = "eslint.org";

              On the first line, the JavaScript engine will automatically insert a semicolon, so this is not considered a syntax error. The JavaScript engine still knows how to interpret the line and knows that the line end indicates the end of the statement.

              In the debate over ASI, there are generally two schools of thought. The first is that we should treat ASI as if it didn't exist and always include semicolons manually. The rationale is that it's easier to always include semicolons than to try to remember when they are or are not required, and thus decreases the possibility of introducing an error.

              However, the ASI mechanism can sometimes be tricky to people who are using semicolons. For example, consider this code:

              return
              {
                  name: "ESLint"
              };

              This may look like a return statement that returns an object literal, however, the JavaScript engine will interpret this code as:

              return;
              {
                  name: "ESLint";
              }

              Effectively, a semicolon is inserted after the return statement, causing the code below it (a labeled literal inside a block) to be unreachable. This rule and the [no-unreachable](no-unreachable.md) rule will protect your code from such cases.

              On the other side of the argument are those who says that since semicolons are inserted automatically, they are optional and do not need to be inserted manually. However, the ASI mechanism can also be tricky to people who don't use semicolons. For example, consider this code:

              var globalCounter = { }
              
              (function () {
                  var n = 0
                  globalCounter.increment = function () {
                      return ++n
                  }
              })()

              In this example, a semicolon will not be inserted after the first line, causing a run-time error (because an empty object is called as if it's a function). The [no-unexpected-multiline](no-unexpected-multiline.md) rule can protect your code from such cases.

              Although ASI allows for more freedom over your coding style, it can also make your code behave in an unexpected way, whether you use semicolons or not. Therefore, it is best to know when ASI takes place and when it does not, and have ESLint protect your code from these potentially unexpected cases. In short, as once described by Isaac Schlueter, a \n character always ends a statement (just like a semicolon) unless one of the following is true:

              1. The statement has an unclosed paren, array literal, or object literal or ends in some other way that is not a valid way to end a statement. (For instance, ending with . or ,.)
              2. The line is -- or ++ (in which case it will decrement/increment the next token.)
              3. It is a for(), while(), do, if(), or else, and there is no {
              4. The next line starts with [, (, +, *, /, -, ,, ., or some other binary operator that can only be found between two tokens in a single expression.

              Rule Details

              This rule enforces consistent use of semicolons.

              Options

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

              String option:

              • "always" (default) requires semicolons at the end of statements
              • "never" disallows semicolons as the end of statements (except to disambiguate statements beginning with [, (, /, +, or -)

              Object option:

              • "omitLastInOneLineBlock": true ignores the last semicolon in a block in which its braces (and therefore the content of the block) are in the same line

              always

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

              /*eslint semi: ["error", "always"]*/
              
              var name = "ESLint"
              
              object.method = function() {
                  // ...
              }

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

              /*eslint semi: "error"*/
              
              var name = "ESLint";
              
              object.method = function() {
                  // ...
              };

              never

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

              /*eslint semi: ["error", "never"]*/
              
              var name = "ESLint";
              
              object.method = function() {
                  // ...
              };

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

              /*eslint semi: ["error", "never"]*/
              
              var name = "ESLint"
              
              object.method = function() {
                  // ...
              }
              
              var name = "ESLint"
              
              ;(function() {
                  // ...
              })()

              omitLastInOneLineBlock

              Examples of additional correct code for this rule with the "always", { "omitLastInOneLineBlock": true } options:

              /*eslint semi: ["error", "always", { "omitLastInOneLineBlock": true}] */
              
              if (foo) { bar() }
              
              if (foo) { bar(); baz() }

              When Not To Use It

              If you do not want to enforce semicolon usage (or omission) in any particular way, then you can turn this rule off.

              Further Reading

              Related Rules

              • [no-extra-semi](no-extra-semi.md)
              • [no-unexpected-multiline](no-unexpected-multiline.md)
              • [semi-spacing](semi-spacing.md) Source: http://eslint.org/docs/rules/

              A function with a name starting with an uppercase letter should only be used as a constructor.
              Open

                    this.S(instance).data(this.name + '-instance', orbit_instance);

              require constructor names to begin with a capital letter (new-cap)

              The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

              var friend = new Person();

              Rule Details

              This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

              • Array
              • Boolean
              • Date
              • Error
              • Function
              • Number
              • Object
              • RegExp
              • String
              • Symbol

              Examples of correct code for this rule:

              /*eslint new-cap: "error"*/
              
              function foo(arg) {
                  return Boolean(arg);
              }

              Options

              This rule has an object option:

              • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
              • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
              • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
              • "capIsNew": false allows uppercase-started functions to be called without new operators.
              • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
              • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
              • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
              • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
              • "properties": true (default) enables checks on object properties
              • "properties": false disables checks on object properties

              newIsCap

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

              /*eslint new-cap: ["error", { "newIsCap": true }]*/
              
              var friend = new person();

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

              /*eslint new-cap: ["error", { "newIsCap": true }]*/
              
              var friend = new Person();

              Examples of correct code for this rule with the { "newIsCap": false } option:

              /*eslint new-cap: ["error", { "newIsCap": false }]*/
              
              var friend = new person();

              capIsNew

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

              /*eslint new-cap: ["error", { "capIsNew": true }]*/
              
              var colleague = Person();

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

              /*eslint new-cap: ["error", { "capIsNew": true }]*/
              
              var colleague = new Person();

              Examples of correct code for this rule with the { "capIsNew": false } option:

              /*eslint new-cap: ["error", { "capIsNew": false }]*/
              
              var colleague = Person();

              newIsCapExceptions

              Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

              /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
              
              var events = require('events');
              
              var emitter = new events();

              newIsCapExceptionPattern

              Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

              /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
              
              var friend = new person.acquaintance();
              var bestFriend = new person.friend();

              capIsNewExceptions

              Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

              /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
              
              function foo(arg) {
                  return Person(arg);
              }

              capIsNewExceptionPattern

              Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

              /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
              
              var friend = person.Acquaintance();
              var bestFriend = person.Friend();

              properties

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

              /*eslint new-cap: ["error", { "properties": true }]*/
              
              var friend = new person.acquaintance();

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

              /*eslint new-cap: ["error", { "properties": true }]*/
              
              var friend = new person.Acquaintance();

              Examples of correct code for this rule with the { "properties": false } option:

              /*eslint new-cap: ["error", { "properties": false }]*/
              
              var friend = new person.acquaintance();

              When Not To Use It

              If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

              Missing semicolon.
              Open

                      })

              require or disallow semicolons instead of ASI (semi)

              JavaScript is unique amongst the C-like languages in that it doesn't require semicolons at the end of each statement. In many cases, the JavaScript engine can determine that a semicolon should be in a certain spot and will automatically add it. This feature is known as automatic semicolon insertion (ASI) and is considered one of the more controversial features of JavaScript. For example, the following lines are both valid:

              var name = "ESLint"
              var website = "eslint.org";

              On the first line, the JavaScript engine will automatically insert a semicolon, so this is not considered a syntax error. The JavaScript engine still knows how to interpret the line and knows that the line end indicates the end of the statement.

              In the debate over ASI, there are generally two schools of thought. The first is that we should treat ASI as if it didn't exist and always include semicolons manually. The rationale is that it's easier to always include semicolons than to try to remember when they are or are not required, and thus decreases the possibility of introducing an error.

              However, the ASI mechanism can sometimes be tricky to people who are using semicolons. For example, consider this code:

              return
              {
                  name: "ESLint"
              };

              This may look like a return statement that returns an object literal, however, the JavaScript engine will interpret this code as:

              return;
              {
                  name: "ESLint";
              }

              Effectively, a semicolon is inserted after the return statement, causing the code below it (a labeled literal inside a block) to be unreachable. This rule and the [no-unreachable](no-unreachable.md) rule will protect your code from such cases.

              On the other side of the argument are those who says that since semicolons are inserted automatically, they are optional and do not need to be inserted manually. However, the ASI mechanism can also be tricky to people who don't use semicolons. For example, consider this code:

              var globalCounter = { }
              
              (function () {
                  var n = 0
                  globalCounter.increment = function () {
                      return ++n
                  }
              })()

              In this example, a semicolon will not be inserted after the first line, causing a run-time error (because an empty object is called as if it's a function). The [no-unexpected-multiline](no-unexpected-multiline.md) rule can protect your code from such cases.

              Although ASI allows for more freedom over your coding style, it can also make your code behave in an unexpected way, whether you use semicolons or not. Therefore, it is best to know when ASI takes place and when it does not, and have ESLint protect your code from these potentially unexpected cases. In short, as once described by Isaac Schlueter, a \n character always ends a statement (just like a semicolon) unless one of the following is true:

              1. The statement has an unclosed paren, array literal, or object literal or ends in some other way that is not a valid way to end a statement. (For instance, ending with . or ,.)
              2. The line is -- or ++ (in which case it will decrement/increment the next token.)
              3. It is a for(), while(), do, if(), or else, and there is no {
              4. The next line starts with [, (, +, *, /, -, ,, ., or some other binary operator that can only be found between two tokens in a single expression.

              Rule Details

              This rule enforces consistent use of semicolons.

              Options

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

              String option:

              • "always" (default) requires semicolons at the end of statements
              • "never" disallows semicolons as the end of statements (except to disambiguate statements beginning with [, (, /, +, or -)

              Object option:

              • "omitLastInOneLineBlock": true ignores the last semicolon in a block in which its braces (and therefore the content of the block) are in the same line

              always

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

              /*eslint semi: ["error", "always"]*/
              
              var name = "ESLint"
              
              object.method = function() {
                  // ...
              }

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

              /*eslint semi: "error"*/
              
              var name = "ESLint";
              
              object.method = function() {
                  // ...
              };

              never

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

              /*eslint semi: ["error", "never"]*/
              
              var name = "ESLint";
              
              object.method = function() {
                  // ...
              };

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

              /*eslint semi: ["error", "never"]*/
              
              var name = "ESLint"
              
              object.method = function() {
                  // ...
              }
              
              var name = "ESLint"
              
              ;(function() {
                  // ...
              })()

              omitLastInOneLineBlock

              Examples of additional correct code for this rule with the "always", { "omitLastInOneLineBlock": true } options:

              /*eslint semi: ["error", "always", { "omitLastInOneLineBlock": true}] */
              
              if (foo) { bar() }
              
              if (foo) { bar(); baz() }

              When Not To Use It

              If you do not want to enforce semicolon usage (or omission) in any particular way, then you can turn this rule off.

              Further Reading

              Related Rules

              • [no-extra-semi](no-extra-semi.md)
              • [no-unexpected-multiline](no-unexpected-multiline.md)
              • [semi-spacing](semi-spacing.md) Source: http://eslint.org/docs/rules/

              Identifier 'new_progress' is not in camel case.
              Open

                    var new_progress = progress.clone();

              Require Camelcase (camelcase)

              When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

              Rule Details

              This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

              Options

              This rule has an object option:

              • "properties": "always" (default) enforces camelcase style for property names
              • "properties": "never" does not check property names

              always

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased } from "external-module"
              
              var my_favorite_color = "#112C85";
              
              function do_something() {
                  // ...
              }
              
              obj.do_something = function() {
                  // ...
              };
              
              var obj = {
                  my_pref: 1
              };

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased as camelCased } from "external-module";
              
              var myFavoriteColor   = "#112C85";
              var _myFavoriteColor  = "#112C85";
              var myFavoriteColor_  = "#112C85";
              var MY_FAVORITE_COLOR = "#112C85";
              var foo = bar.baz_boom;
              var foo = { qux: bar.baz_boom };
              
              obj.do_something();
              do_something();
              new do_something();
              
              var { category_id: category } = query;

              never

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

              /*eslint camelcase: ["error", {properties: "never"}]*/
              
              var obj = {
                  my_pref: 1
              };

              When Not To Use It

              If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

              Identifier 'is_rtl' is not in camel case.
              Open

                  var margin = is_rtl ? 'marginRight' : 'marginLeft';

              Require Camelcase (camelcase)

              When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

              Rule Details

              This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

              Options

              This rule has an object option:

              • "properties": "always" (default) enforces camelcase style for property names
              • "properties": "never" does not check property names

              always

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased } from "external-module"
              
              var my_favorite_color = "#112C85";
              
              function do_something() {
                  // ...
              }
              
              obj.do_something = function() {
                  // ...
              };
              
              var obj = {
                  my_pref: 1
              };

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased as camelCased } from "external-module";
              
              var myFavoriteColor   = "#112C85";
              var _myFavoriteColor  = "#112C85";
              var myFavoriteColor_  = "#112C85";
              var MY_FAVORITE_COLOR = "#112C85";
              var foo = bar.baz_boom;
              var foo = { qux: bar.baz_boom };
              
              obj.do_something();
              do_something();
              new do_something();
              
              var { category_id: category } = query;

              never

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

              /*eslint camelcase: ["error", {properties: "never"}]*/
              
              var obj = {
                  my_pref: 1
              };

              When Not To Use It

              If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

              Identifier 'bullets_container' is not in camel case.
              Open

                      bullets_container = $('<ol>').addClass(settings.bullets_container_class);

              Require Camelcase (camelcase)

              When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

              Rule Details

              This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

              Options

              This rule has an object option:

              • "properties": "always" (default) enforces camelcase style for property names
              • "properties": "never" does not check property names

              always

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased } from "external-module"
              
              var my_favorite_color = "#112C85";
              
              function do_something() {
                  // ...
              }
              
              obj.do_something = function() {
                  // ...
              };
              
              var obj = {
                  my_pref: 1
              };

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased as camelCased } from "external-module";
              
              var myFavoriteColor   = "#112C85";
              var _myFavoriteColor  = "#112C85";
              var myFavoriteColor_  = "#112C85";
              var MY_FAVORITE_COLOR = "#112C85";
              var foo = bar.baz_boom;
              var foo = { qux: bar.baz_boom };
              
              obj.do_something();
              do_something();
              new do_something();
              
              var { category_id: category } = query;

              never

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

              /*eslint camelcase: ["error", {properties: "never"}]*/
              
              var obj = {
                  my_pref: 1
              };

              When Not To Use It

              If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

              Unnecessarily quoted property 'height' found.
              Open

                        slides_container.animate({'height': next.outerHeight()}, 250, 'linear', unlock);

              require quotes around object literal property names (quote-props)

              Object literal property names can be defined in two ways: using literals or using strings. For example, these two objects are equivalent:

              var object1 = {
                  property: true
              };
              
              var object2 = {
                  "property": true
              };

              In many cases, it doesn't matter if you choose to use an identifier instead of a string or vice-versa. Even so, you might decide to enforce a consistent style in your code.

              There are, however, some occasions when you must use quotes:

              1. If you are using an ECMAScript 3 JavaScript engine (such as IE8) and you want to use a keyword (such as if) as a property name. This restriction was removed in ECMAScript 5.
              2. You want to use a non-identifier character in your property name, such as having a property with a space like "one two".

              Another example where quotes do matter is when using numeric literals as property keys:

              var object = {
                  1e2: 1,
                  100: 2
              };

              This may look alright at first sight, but this code in fact throws a syntax error in ECMAScript 5 strict mode. This happens because 1e2 and 100 are coerced into strings before getting used as the property name. Both String(1e2) and String(100) happen to be equal to "100", which causes the "Duplicate data property in object literal not allowed in strict mode" error. Issues like that can be tricky to debug, so some prefer to require quotes around all property names.

              Rule Details

              This rule requires quotes around object literal property names.

              Options

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

              String option:

              • "always" (default) requires quotes around all object literal property names
              • "as-needed" disallows quotes around object literal property names that are not strictly required
              • "consistent" enforces a consistent quote style requires quotes around object literal property names
              • "consistent-as-needed" requires quotes around all object literal property names if any name strictly requires quotes, otherwise disallows quotes around object property names

              Object option:

              • "keywords": true requires quotes around language keywords used as object property names (only applies when using as-needed or consistent-as-needed)
              • "unnecessary": true (default) disallows quotes around object literal property names that are not strictly required (only applies when using as-needed)
              • "unnecessary": false allows quotes around object literal property names that are not strictly required (only applies when using as-needed)
              • "numbers": true requires quotes around numbers used as object property names (only applies when using as-needed)

              always

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

              /*eslint quote-props: ["error", "always"]*/
              
              var object = {
                  foo: "bar",
                  baz: 42,
                  "qux-lorem": true
              };

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

              /*eslint quote-props: ["error", "always"]*/
              /*eslint-env es6*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42,
                  'qux-lorem': true
              };
              
              var object3 = {
                  foo() {
                      return;
                  }
              };

              as-needed

              Examples of incorrect code for this rule with the "as-needed" option:

              /*eslint quote-props: ["error", "as-needed"]*/
              
              var object = {
                  "a": 0,
                  "0": 0,
                  "true": 0,
                  "null": 0
              };

              Examples of correct code for this rule with the "as-needed" option:

              /*eslint quote-props: ["error", "as-needed"]*/
              /*eslint-env es6*/
              
              var object1 = {
                  "a-b": 0,
                  "0x0": 0,
                  "1e2": 0
              };
              
              var object2 = {
                  foo: 'bar',
                  baz: 42,
                  true: 0,
                  0: 0,
                  'qux-lorem': true
              };
              
              var object3 = {
                  foo() {
                      return;
                  }
              };

              consistent

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

              /*eslint quote-props: ["error", "consistent"]*/
              
              var object1 = {
                  foo: "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  baz: 42
              };

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

              /*eslint quote-props: ["error", "consistent"]*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42
              };
              
              var object3 = {
                  foo: 'bar',
                  baz: 42
              };

              consistent-as-needed

              Examples of incorrect code for this rule with the "consistent-as-needed" option:

              /*eslint quote-props: ["error", "consistent-as-needed"]*/
              
              var object1 = {
                  foo: "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42
              };

              Examples of correct code for this rule with the "consistent-as-needed" option:

              /*eslint quote-props: ["error", "consistent-as-needed"]*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  foo: 'bar',
                  baz: 42
              };

              keywords

              Examples of additional incorrect code for this rule with the "as-needed", { "keywords": true } options:

              /*eslint quote-props: ["error", "as-needed", { "keywords": true }]*/
              
              var x = {
                  while: 1,
                  volatile: "foo"
              };

              Examples of additional incorrect code for this rule with the "consistent-as-needed", { "keywords": true } options:

              /*eslint quote-props: ["error", "consistent-as-needed", { "keywords": true }]*/
              
              var x = {
                  "prop": 1,
                  "bar": "foo"
              };

              unnecessary

              Examples of additional correct code for this rule with the "as-needed", { "unnecessary": false } options:

              /*eslint quote-props: ["error", "as-needed", { "keywords": true, "unnecessary": false }]*/
              
              var x = {
                  "while": 1,
                  "foo": "bar"  // Would normally have caused a warning
              };

              numbers

              Examples of additional incorrect code for this rule with the "as-needed", { "numbers": true } options:

              /*eslint quote-props: ["error", "as-needed", { "numbers": true }]*/
              
              var x = {
                  100: 1
              }

              When Not To Use It

              If you don't care if property names are consistently wrapped in quotes or not, and you don't target legacy ES3 environments, turn this rule off.

              Further Reading

              A function with a name starting with an uppercase letter should only be used as a constructor.
              Open

                    var orbit_instance = new Orbit(this.S(instance), this.S(instance).data('orbit-init'));

              require constructor names to begin with a capital letter (new-cap)

              The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

              var friend = new Person();

              Rule Details

              This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

              • Array
              • Boolean
              • Date
              • Error
              • Function
              • Number
              • Object
              • RegExp
              • String
              • Symbol

              Examples of correct code for this rule:

              /*eslint new-cap: "error"*/
              
              function foo(arg) {
                  return Boolean(arg);
              }

              Options

              This rule has an object option:

              • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
              • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
              • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
              • "capIsNew": false allows uppercase-started functions to be called without new operators.
              • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
              • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
              • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
              • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
              • "properties": true (default) enables checks on object properties
              • "properties": false disables checks on object properties

              newIsCap

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

              /*eslint new-cap: ["error", { "newIsCap": true }]*/
              
              var friend = new person();

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

              /*eslint new-cap: ["error", { "newIsCap": true }]*/
              
              var friend = new Person();

              Examples of correct code for this rule with the { "newIsCap": false } option:

              /*eslint new-cap: ["error", { "newIsCap": false }]*/
              
              var friend = new person();

              capIsNew

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

              /*eslint new-cap: ["error", { "capIsNew": true }]*/
              
              var colleague = Person();

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

              /*eslint new-cap: ["error", { "capIsNew": true }]*/
              
              var colleague = new Person();

              Examples of correct code for this rule with the { "capIsNew": false } option:

              /*eslint new-cap: ["error", { "capIsNew": false }]*/
              
              var colleague = Person();

              newIsCapExceptions

              Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

              /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
              
              var events = require('events');
              
              var emitter = new events();

              newIsCapExceptionPattern

              Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

              /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
              
              var friend = new person.acquaintance();
              var bestFriend = new person.friend();

              capIsNewExceptions

              Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

              /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
              
              function foo(arg) {
                  return Person(arg);
              }

              capIsNewExceptionPattern

              Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

              /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
              
              var friend = person.Acquaintance();
              var bestFriend = person.Friend();

              properties

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

              /*eslint new-cap: ["error", { "properties": true }]*/
              
              var friend = new person.acquaintance();

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

              /*eslint new-cap: ["error", { "properties": true }]*/
              
              var friend = new person.Acquaintance();

              Examples of correct code for this rule with the { "properties": false } option:

              /*eslint new-cap: ["error", { "properties": false }]*/
              
              var friend = new person.acquaintance();

              When Not To Use It

              If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

              Identifier 'bullets_container' is not in camel case.
              Open

                      bullets_container,

              Require Camelcase (camelcase)

              When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

              Rule Details

              This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

              Options

              This rule has an object option:

              • "properties": "always" (default) enforces camelcase style for property names
              • "properties": "never" does not check property names

              always

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased } from "external-module"
              
              var my_favorite_color = "#112C85";
              
              function do_something() {
                  // ...
              }
              
              obj.do_something = function() {
                  // ...
              };
              
              var obj = {
                  my_pref: 1
              };

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased as camelCased } from "external-module";
              
              var myFavoriteColor   = "#112C85";
              var _myFavoriteColor  = "#112C85";
              var myFavoriteColor_  = "#112C85";
              var MY_FAVORITE_COLOR = "#112C85";
              var foo = bar.baz_boom;
              var foo = { qux: bar.baz_boom };
              
              obj.do_something();
              do_something();
              new do_something();
              
              var { category_id: category } = query;

              never

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

              /*eslint camelcase: ["error", {properties: "never"}]*/
              
              var obj = {
                  my_pref: 1
              };

              When Not To Use It

              If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

              Identifier 'number_container' is not in camel case.
              Open

                      number_container = $('<div>').addClass(settings.slide_number_class);

              Require Camelcase (camelcase)

              When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

              Rule Details

              This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

              Options

              This rule has an object option:

              • "properties": "always" (default) enforces camelcase style for property names
              • "properties": "never" does not check property names

              always

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased } from "external-module"
              
              var my_favorite_color = "#112C85";
              
              function do_something() {
                  // ...
              }
              
              obj.do_something = function() {
                  // ...
              };
              
              var obj = {
                  my_pref: 1
              };

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased as camelCased } from "external-module";
              
              var myFavoriteColor   = "#112C85";
              var _myFavoriteColor  = "#112C85";
              var myFavoriteColor_  = "#112C85";
              var MY_FAVORITE_COLOR = "#112C85";
              var foo = bar.baz_boom;
              var foo = { qux: bar.baz_boom };
              
              obj.do_something();
              do_something();
              new do_something();
              
              var { category_id: category } = query;

              never

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

              /*eslint camelcase: ["error", {properties: "never"}]*/
              
              var obj = {
                  my_pref: 1
              };

              When Not To Use It

              If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

              Missing semicolon.
              Open

                  }

              require or disallow semicolons instead of ASI (semi)

              JavaScript is unique amongst the C-like languages in that it doesn't require semicolons at the end of each statement. In many cases, the JavaScript engine can determine that a semicolon should be in a certain spot and will automatically add it. This feature is known as automatic semicolon insertion (ASI) and is considered one of the more controversial features of JavaScript. For example, the following lines are both valid:

              var name = "ESLint"
              var website = "eslint.org";

              On the first line, the JavaScript engine will automatically insert a semicolon, so this is not considered a syntax error. The JavaScript engine still knows how to interpret the line and knows that the line end indicates the end of the statement.

              In the debate over ASI, there are generally two schools of thought. The first is that we should treat ASI as if it didn't exist and always include semicolons manually. The rationale is that it's easier to always include semicolons than to try to remember when they are or are not required, and thus decreases the possibility of introducing an error.

              However, the ASI mechanism can sometimes be tricky to people who are using semicolons. For example, consider this code:

              return
              {
                  name: "ESLint"
              };

              This may look like a return statement that returns an object literal, however, the JavaScript engine will interpret this code as:

              return;
              {
                  name: "ESLint";
              }

              Effectively, a semicolon is inserted after the return statement, causing the code below it (a labeled literal inside a block) to be unreachable. This rule and the [no-unreachable](no-unreachable.md) rule will protect your code from such cases.

              On the other side of the argument are those who says that since semicolons are inserted automatically, they are optional and do not need to be inserted manually. However, the ASI mechanism can also be tricky to people who don't use semicolons. For example, consider this code:

              var globalCounter = { }
              
              (function () {
                  var n = 0
                  globalCounter.increment = function () {
                      return ++n
                  }
              })()

              In this example, a semicolon will not be inserted after the first line, causing a run-time error (because an empty object is called as if it's a function). The [no-unexpected-multiline](no-unexpected-multiline.md) rule can protect your code from such cases.

              Although ASI allows for more freedom over your coding style, it can also make your code behave in an unexpected way, whether you use semicolons or not. Therefore, it is best to know when ASI takes place and when it does not, and have ESLint protect your code from these potentially unexpected cases. In short, as once described by Isaac Schlueter, a \n character always ends a statement (just like a semicolon) unless one of the following is true:

              1. The statement has an unclosed paren, array literal, or object literal or ends in some other way that is not a valid way to end a statement. (For instance, ending with . or ,.)
              2. The line is -- or ++ (in which case it will decrement/increment the next token.)
              3. It is a for(), while(), do, if(), or else, and there is no {
              4. The next line starts with [, (, +, *, /, -, ,, ., or some other binary operator that can only be found between two tokens in a single expression.

              Rule Details

              This rule enforces consistent use of semicolons.

              Options

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

              String option:

              • "always" (default) requires semicolons at the end of statements
              • "never" disallows semicolons as the end of statements (except to disambiguate statements beginning with [, (, /, +, or -)

              Object option:

              • "omitLastInOneLineBlock": true ignores the last semicolon in a block in which its braces (and therefore the content of the block) are in the same line

              always

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

              /*eslint semi: ["error", "always"]*/
              
              var name = "ESLint"
              
              object.method = function() {
                  // ...
              }

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

              /*eslint semi: "error"*/
              
              var name = "ESLint";
              
              object.method = function() {
                  // ...
              };

              never

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

              /*eslint semi: ["error", "never"]*/
              
              var name = "ESLint";
              
              object.method = function() {
                  // ...
              };

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

              /*eslint semi: ["error", "never"]*/
              
              var name = "ESLint"
              
              object.method = function() {
                  // ...
              }
              
              var name = "ESLint"
              
              ;(function() {
                  // ...
              })()

              omitLastInOneLineBlock

              Examples of additional correct code for this rule with the "always", { "omitLastInOneLineBlock": true } options:

              /*eslint semi: ["error", "always", { "omitLastInOneLineBlock": true}] */
              
              if (foo) { bar() }
              
              if (foo) { bar(); baz() }

              When Not To Use It

              If you do not want to enforce semicolon usage (or omission) in any particular way, then you can turn this rule off.

              Further Reading

              Related Rules

              • [no-extra-semi](no-extra-semi.md)
              • [no-unexpected-multiline](no-unexpected-multiline.md)
              • [semi-spacing](semi-spacing.md) Source: http://eslint.org/docs/rules/

              Identifier 'start_timer' is not in camel case.
              Open

                  self._goto = function (next_idx, start_timer) {

              Require Camelcase (camelcase)

              When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

              Rule Details

              This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

              Options

              This rule has an object option:

              • "properties": "always" (default) enforces camelcase style for property names
              • "properties": "never" does not check property names

              always

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased } from "external-module"
              
              var my_favorite_color = "#112C85";
              
              function do_something() {
                  // ...
              }
              
              obj.do_something = function() {
                  // ...
              };
              
              var obj = {
                  my_pref: 1
              };

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased as camelCased } from "external-module";
              
              var myFavoriteColor   = "#112C85";
              var _myFavoriteColor  = "#112C85";
              var myFavoriteColor_  = "#112C85";
              var MY_FAVORITE_COLOR = "#112C85";
              var foo = bar.baz_boom;
              var foo = { qux: bar.baz_boom };
              
              obj.do_something();
              do_something();
              new do_something();
              
              var { category_id: category } = query;

              never

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

              /*eslint camelcase: ["error", {properties: "never"}]*/
              
              var obj = {
                  my_pref: 1
              };

              When Not To Use It

              If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

              Identifier 'next_idx' is not in camel case.
              Open

                    if (next_idx === idx) {return false;}

              Require Camelcase (camelcase)

              When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

              Rule Details

              This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

              Options

              This rule has an object option:

              • "properties": "always" (default) enforces camelcase style for property names
              • "properties": "never" does not check property names

              always

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased } from "external-module"
              
              var my_favorite_color = "#112C85";
              
              function do_something() {
                  // ...
              }
              
              obj.do_something = function() {
                  // ...
              };
              
              var obj = {
                  my_pref: 1
              };

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased as camelCased } from "external-module";
              
              var myFavoriteColor   = "#112C85";
              var _myFavoriteColor  = "#112C85";
              var myFavoriteColor_  = "#112C85";
              var MY_FAVORITE_COLOR = "#112C85";
              var foo = bar.baz_boom;
              var foo = { qux: bar.baz_boom };
              
              obj.do_something();
              do_something();
              new do_something();
              
              var { category_id: category } = query;

              never

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

              /*eslint camelcase: ["error", {properties: "never"}]*/
              
              var obj = {
                  my_pref: 1
              };

              When Not To Use It

              If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

              Identifier 'next_idx' is not in camel case.
              Open

                    if (next_idx >= slides.length) {

              Require Camelcase (camelcase)

              When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

              Rule Details

              This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

              Options

              This rule has an object option:

              • "properties": "always" (default) enforces camelcase style for property names
              • "properties": "never" does not check property names

              always

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased } from "external-module"
              
              var my_favorite_color = "#112C85";
              
              function do_something() {
                  // ...
              }
              
              obj.do_something = function() {
                  // ...
              };
              
              var obj = {
                  my_pref: 1
              };

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased as camelCased } from "external-module";
              
              var myFavoriteColor   = "#112C85";
              var _myFavoriteColor  = "#112C85";
              var myFavoriteColor_  = "#112C85";
              var MY_FAVORITE_COLOR = "#112C85";
              var foo = bar.baz_boom;
              var foo = { qux: bar.baz_boom };
              
              obj.do_something();
              do_something();
              new do_something();
              
              var { category_id: category } = query;

              never

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

              /*eslint camelcase: ["error", {properties: "never"}]*/
              
              var obj = {
                  my_pref: 1
              };

              When Not To Use It

              If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

              Unnecessarily quoted property 'opacity' found.
              Open

                    next.animate({'opacity' :'1'}, duration, 'linear', function () {

              require quotes around object literal property names (quote-props)

              Object literal property names can be defined in two ways: using literals or using strings. For example, these two objects are equivalent:

              var object1 = {
                  property: true
              };
              
              var object2 = {
                  "property": true
              };

              In many cases, it doesn't matter if you choose to use an identifier instead of a string or vice-versa. Even so, you might decide to enforce a consistent style in your code.

              There are, however, some occasions when you must use quotes:

              1. If you are using an ECMAScript 3 JavaScript engine (such as IE8) and you want to use a keyword (such as if) as a property name. This restriction was removed in ECMAScript 5.
              2. You want to use a non-identifier character in your property name, such as having a property with a space like "one two".

              Another example where quotes do matter is when using numeric literals as property keys:

              var object = {
                  1e2: 1,
                  100: 2
              };

              This may look alright at first sight, but this code in fact throws a syntax error in ECMAScript 5 strict mode. This happens because 1e2 and 100 are coerced into strings before getting used as the property name. Both String(1e2) and String(100) happen to be equal to "100", which causes the "Duplicate data property in object literal not allowed in strict mode" error. Issues like that can be tricky to debug, so some prefer to require quotes around all property names.

              Rule Details

              This rule requires quotes around object literal property names.

              Options

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

              String option:

              • "always" (default) requires quotes around all object literal property names
              • "as-needed" disallows quotes around object literal property names that are not strictly required
              • "consistent" enforces a consistent quote style requires quotes around object literal property names
              • "consistent-as-needed" requires quotes around all object literal property names if any name strictly requires quotes, otherwise disallows quotes around object property names

              Object option:

              • "keywords": true requires quotes around language keywords used as object property names (only applies when using as-needed or consistent-as-needed)
              • "unnecessary": true (default) disallows quotes around object literal property names that are not strictly required (only applies when using as-needed)
              • "unnecessary": false allows quotes around object literal property names that are not strictly required (only applies when using as-needed)
              • "numbers": true requires quotes around numbers used as object property names (only applies when using as-needed)

              always

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

              /*eslint quote-props: ["error", "always"]*/
              
              var object = {
                  foo: "bar",
                  baz: 42,
                  "qux-lorem": true
              };

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

              /*eslint quote-props: ["error", "always"]*/
              /*eslint-env es6*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42,
                  'qux-lorem': true
              };
              
              var object3 = {
                  foo() {
                      return;
                  }
              };

              as-needed

              Examples of incorrect code for this rule with the "as-needed" option:

              /*eslint quote-props: ["error", "as-needed"]*/
              
              var object = {
                  "a": 0,
                  "0": 0,
                  "true": 0,
                  "null": 0
              };

              Examples of correct code for this rule with the "as-needed" option:

              /*eslint quote-props: ["error", "as-needed"]*/
              /*eslint-env es6*/
              
              var object1 = {
                  "a-b": 0,
                  "0x0": 0,
                  "1e2": 0
              };
              
              var object2 = {
                  foo: 'bar',
                  baz: 42,
                  true: 0,
                  0: 0,
                  'qux-lorem': true
              };
              
              var object3 = {
                  foo() {
                      return;
                  }
              };

              consistent

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

              /*eslint quote-props: ["error", "consistent"]*/
              
              var object1 = {
                  foo: "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  baz: 42
              };

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

              /*eslint quote-props: ["error", "consistent"]*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42
              };
              
              var object3 = {
                  foo: 'bar',
                  baz: 42
              };

              consistent-as-needed

              Examples of incorrect code for this rule with the "consistent-as-needed" option:

              /*eslint quote-props: ["error", "consistent-as-needed"]*/
              
              var object1 = {
                  foo: "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  'foo': 'bar',
                  'baz': 42
              };

              Examples of correct code for this rule with the "consistent-as-needed" option:

              /*eslint quote-props: ["error", "consistent-as-needed"]*/
              
              var object1 = {
                  "foo": "bar",
                  "baz": 42,
                  "qux-lorem": true
              };
              
              var object2 = {
                  foo: 'bar',
                  baz: 42
              };

              keywords

              Examples of additional incorrect code for this rule with the "as-needed", { "keywords": true } options:

              /*eslint quote-props: ["error", "as-needed", { "keywords": true }]*/
              
              var x = {
                  while: 1,
                  volatile: "foo"
              };

              Examples of additional incorrect code for this rule with the "consistent-as-needed", { "keywords": true } options:

              /*eslint quote-props: ["error", "consistent-as-needed", { "keywords": true }]*/
              
              var x = {
                  "prop": 1,
                  "bar": "foo"
              };

              unnecessary

              Examples of additional correct code for this rule with the "as-needed", { "unnecessary": false } options:

              /*eslint quote-props: ["error", "as-needed", { "keywords": true, "unnecessary": false }]*/
              
              var x = {
                  "while": 1,
                  "foo": "bar"  // Would normally have caused a warning
              };

              numbers

              Examples of additional incorrect code for this rule with the "as-needed", { "numbers": true } options:

              /*eslint quote-props: ["error", "as-needed", { "numbers": true }]*/
              
              var x = {
                  100: 1
              }

              When Not To Use It

              If you don't care if property names are consistently wrapped in quotes or not, and you don't target legacy ES3 environments, turn this rule off.

              Further Reading

              A function with a name starting with an uppercase letter should only be used as a constructor.
              Open

                      var $el = self.S(self.scope);

              require constructor names to begin with a capital letter (new-cap)

              The new operator in JavaScript creates a new instance of a particular type of object. That type of object is represented by a constructor function. Since constructor functions are just regular functions, the only defining characteristic is that new is being used as part of the call. Native JavaScript functions begin with an uppercase letter to distinguish those functions that are to be used as constructors from functions that are not. Many style guides recommend following this pattern to more easily determine which functions are to be used as constructors.

              var friend = new Person();

              Rule Details

              This rule requires constructor names to begin with a capital letter. Certain built-in identifiers are exempt from this rule. These identifiers are:

              • Array
              • Boolean
              • Date
              • Error
              • Function
              • Number
              • Object
              • RegExp
              • String
              • Symbol

              Examples of correct code for this rule:

              /*eslint new-cap: "error"*/
              
              function foo(arg) {
                  return Boolean(arg);
              }

              Options

              This rule has an object option:

              • "newIsCap": true (default) requires all new operators to be called with uppercase-started functions.
              • "newIsCap": false allows new operators to be called with lowercase-started or uppercase-started functions.
              • "capIsNew": true (default) requires all uppercase-started functions to be called with new operators.
              • "capIsNew": false allows uppercase-started functions to be called without new operators.
              • "newIsCapExceptions" allows specified lowercase-started function names to be called with the new operator.
              • "newIsCapExceptionPattern" allows any lowercase-started function names that match the specified regex pattern to be called with the new operator.
              • "capIsNewExceptions" allows specified uppercase-started function names to be called without the new operator.
              • "capIsNewExceptionPattern" allows any uppercase-started function names that match the specified regex pattern to be called without the new operator.
              • "properties": true (default) enables checks on object properties
              • "properties": false disables checks on object properties

              newIsCap

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

              /*eslint new-cap: ["error", { "newIsCap": true }]*/
              
              var friend = new person();

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

              /*eslint new-cap: ["error", { "newIsCap": true }]*/
              
              var friend = new Person();

              Examples of correct code for this rule with the { "newIsCap": false } option:

              /*eslint new-cap: ["error", { "newIsCap": false }]*/
              
              var friend = new person();

              capIsNew

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

              /*eslint new-cap: ["error", { "capIsNew": true }]*/
              
              var colleague = Person();

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

              /*eslint new-cap: ["error", { "capIsNew": true }]*/
              
              var colleague = new Person();

              Examples of correct code for this rule with the { "capIsNew": false } option:

              /*eslint new-cap: ["error", { "capIsNew": false }]*/
              
              var colleague = Person();

              newIsCapExceptions

              Examples of additional correct code for this rule with the { "newIsCapExceptions": ["events"] } option:

              /*eslint new-cap: ["error", { "newIsCapExceptions": ["events"] }]*/
              
              var events = require('events');
              
              var emitter = new events();

              newIsCapExceptionPattern

              Examples of additional correct code for this rule with the { "newIsCapExceptionPattern": "^person\.." } option:

              /*eslint new-cap: ["error", { "newIsCapExceptionPattern": "^person\.." }]*/
              
              var friend = new person.acquaintance();
              var bestFriend = new person.friend();

              capIsNewExceptions

              Examples of additional correct code for this rule with the { "capIsNewExceptions": ["Person"] } option:

              /*eslint new-cap: ["error", { "capIsNewExceptions": ["Person"] }]*/
              
              function foo(arg) {
                  return Person(arg);
              }

              capIsNewExceptionPattern

              Examples of additional correct code for this rule with the { "capIsNewExceptionPattern": "^Person\.." } option:

              /*eslint new-cap: ["error", { "capIsNewExceptionPattern": "^Person\.." }]*/
              
              var friend = person.Acquaintance();
              var bestFriend = person.Friend();

              properties

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

              /*eslint new-cap: ["error", { "properties": true }]*/
              
              var friend = new person.acquaintance();

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

              /*eslint new-cap: ["error", { "properties": true }]*/
              
              var friend = new person.Acquaintance();

              Examples of correct code for this rule with the { "properties": false } option:

              /*eslint new-cap: ["error", { "properties": false }]*/
              
              var friend = new person.acquaintance();

              When Not To Use It

              If you have conventions that don't require an uppercase letter for constructors, or don't require capitalized functions be only used as constructors, turn this rule off. Source: http://eslint.org/docs/rules/

              Identifier 'timer_container' is not in camel case.
              Open

                      timer_container = $('<div>').addClass(settings.timer_container_class);

              Require Camelcase (camelcase)

              When it comes to naming variables, style guides generally fall into one of two camps: camelcase (variableName) and underscores (variable_name). This rule focuses on using the camelcase approach. If your style guide calls for camelcasing your variable names, then this rule is for you!

              Rule Details

              This rule looks for any underscores (_) located within the source code. It ignores leading and trailing underscores and only checks those in the middle of a variable name. If ESLint decides that the variable is a constant (all uppercase), then no warning will be thrown. Otherwise, a warning will be thrown. This rule only flags definitions and assignments but not function calls. In case of ES6 import statements, this rule only targets the name of the variable that will be imported into the local module scope.

              Options

              This rule has an object option:

              • "properties": "always" (default) enforces camelcase style for property names
              • "properties": "never" does not check property names

              always

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased } from "external-module"
              
              var my_favorite_color = "#112C85";
              
              function do_something() {
                  // ...
              }
              
              obj.do_something = function() {
                  // ...
              };
              
              var obj = {
                  my_pref: 1
              };

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

              /*eslint camelcase: "error"*/
              
              import { no_camelcased as camelCased } from "external-module";
              
              var myFavoriteColor   = "#112C85";
              var _myFavoriteColor  = "#112C85";
              var myFavoriteColor_  = "#112C85";
              var MY_FAVORITE_COLOR = "#112C85";
              var foo = bar.baz_boom;
              var foo = { qux: bar.baz_boom };
              
              obj.do_something();
              do_something();
              new do_something();
              
              var { category_id: category } = query;

              never

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

              /*eslint camelcase: ["error", {properties: "never"}]*/
              
              var obj = {
                  my_pref: 1
              };

              When Not To Use It

              If you have established coding standards using a different naming convention (separating words with underscores), turn this rule off. Source: http://eslint.org/docs/rules/

              Missing semicolon.
              Open

                  }

              require or disallow semicolons instead of ASI (semi)

              JavaScript is unique amongst the C-like languages in that it doesn't require semicolons at the end of each statement. In many cases, the JavaScript engine can determine that a semicolon should be in a certain spot and will automatically add it. This feature is known as automatic semicolon insertion (ASI) and is considered one of the more controversial features of JavaScript. For example, the following lines are both valid:

              var name = "ESLint"
              var website = "eslint.org";

              On the first line, the JavaScript engine will automatically insert a semicolon, so this is not considered a syntax error. The JavaScript engine still knows how to interpret the line and knows that the line end indicates the end of the statement.

              In the debate over ASI, there are generally two schools of thought. The first is that we should treat ASI as if it didn't exist and always include semicolons manually. The rationale is that it's easier to always include semicolons than to try to remember when they are or are not required, and thus decreases the possibility of introducing an error.

              However, the ASI mechanism can sometimes be tricky to people who are using semicolons. For example, consider this code:

              return
              {
                  name: "ESLint"
              };

              This may look like a return statement that returns an object literal, however, the JavaScript engine will interpret this code as:

              return;
              {
                  name: "ESLint";
              }

              Effectively, a semicolon is inserted after the return statement, causing the code below it (a labeled literal inside a block) to be unreachable. This rule and the [no-unreachable](no-unreachable.md) rule will protect your code from such cases.

              On the other side of the argument are those who says that since semicolons are inserted automatically, they are optional and do not need to be inserted manually. However, the ASI mechanism can also be tricky to people who don't use semicolons. For example, consider this code:

              var globalCounter = { }
              
              (function () {
                  var n = 0
                  globalCounter.increment = function () {
                      return ++n
                  }
              })()

              In this example, a semicolon will not be inserted after the first line, causing a run-time error (because an empty object is called as if it's a function). The [no-unexpected-multiline](no-unexpected-multiline.md) rule can protect your code from such cases.

              Although ASI allows for more freedom over your coding style, it can also make your code behave in an unexpected way, whether you use semicolons or not. Therefore, it is best to know when ASI takes place and when it does not, and have ESLint protect your code from these potentially unexpected cases. In short, as once described by Isaac Schlueter, a \n character always ends a statement (just like a semicolon) unless one of the following is true:

              1. The statement has an unclosed paren, array literal, or object literal or ends in some other way that is not a valid way to end a statement. (For instance, ending with . or ,.)
              2. The line is -- or ++ (in which case it will decrement/increment the next token.)
              3. It is a for(), while(), do, if(), or else, and there is no {
              4. The next line starts with [, (, +, *, /, -, ,, ., or some other binary operator that can only be found between two tokens in a single expression.

              Rule Details

              This rule enforces consistent use of semicolons.

              Options

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

              String option:

              • "always" (default) requires semicolons at the end of statements
              • "never" disallows semicolons as the end of statements (except to disambiguate statements beginning with [, (, /, +, or -)

              Object option:

              • "omitLastInOneLineBlock": true ignores the last semicolon in a block in which its braces (and therefore the content of the block) are in the same line

              always

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

              /*eslint semi: ["error", "always"]*/
              
              var name = "ESLint"
              
              object.method = function() {
                  // ...
              }

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

              /*eslint semi: "error"*/
              
              var name = "ESLint";
              
              object.method = function() {
                  // ...
              };

              never

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

              /*eslint semi: ["error", "never"]*/
              
              var name = "ESLint";
              
              object.method = function() {
                  // ...
              };

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

              /*eslint semi: ["error", "never"]*/
              
              var name = "ESLint"
              
              object.method = function() {
                  // ...
              }
              
              var name = "ESLint"
              
              ;(function() {
                  // ...
              })()

              omitLastInOneLineBlock

              Examples of additional correct code for this rule with the "always", { "omitLastInOneLineBlock": true } options:

              /*eslint semi: ["error", "always", { "omitLastInOneLineBlock": true}] */
              
              if (foo) { bar() }
              
              if (foo) { bar(); baz() }

              When Not To Use It

              If you do not want to enforce semicolon usage (or omission) in any particular way, then you can turn this rule off.

              Further Reading

              Related Rules

              • [no-extra-semi](no-extra-semi.md)
              • [no-unexpected-multiline](no-unexpected-multiline.md)
              • [semi-spacing](semi-spacing.md) Source: http://eslint.org/docs/rules/

              Unnecessary semicolon.
              Open

                        var bullet = $('<li>').attr('data-orbit-slide', idx).on('click', self.link_bullet);;

              disallow unnecessary semicolons (no-extra-semi)

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

              Rule Details

              This rule disallows unnecessary semicolons.

              Examples of incorrect code for this rule:

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

              Examples of correct code for this rule:

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

              When Not To Use It

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

              Related Rules

              'Foundation' is not defined.
              Open

                    Foundation.utils.image_loaded(this.slides().children('img'), self.compute_dimensions);

              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/

              'Foundation' is not defined.
              Open

                Foundation.libs = Foundation.libs || {};

              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/

              'opts' is assigned a value but never used.
              Open

                        var opts = self.data_options($el);

              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/

              'el' is defined but never used.
              Open

                      self.slides().each(function (idx, el) {

              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/

              Unnecessary semicolon.
              Open

              ;(function ($, window, document, undefined) {

              disallow unnecessary semicolons (no-extra-semi)

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

              Rule Details

              This rule disallows unnecessary semicolons.

              Examples of incorrect code for this rule:

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

              Examples of correct code for this rule:

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

              When Not To Use It

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

              Related Rules

              Missing radix parameter.
              Open

                        self._goto(parseInt(index));

              Require Radix Parameter (radix)

              When using the parseInt() function it is common to omit the second argument, the radix, and let the function try to determine from the first argument what type of number it is. By default, parseInt() will autodetect decimal and hexadecimal (via 0x prefix). Prior to ECMAScript 5, parseInt() also autodetected octal literals, which caused problems because many developers assumed a leading 0 would be ignored.

              This confusion led to the suggestion that you always use the radix parameter to parseInt() to eliminate unintended consequences. So instead of doing this:

              var num = parseInt("071");      // 57

              Do this:

              var num = parseInt("071", 10);  // 71

              ECMAScript 5 changed the behavior of parseInt() so that it no longer autodetects octal literals and instead treats them as decimal literals. However, the differences between hexadecimal and decimal interpretation of the first parameter causes many developers to continue using the radix parameter to ensure the string is interpreted in the intended way.

              On the other hand, if the code is targeting only ES5-compliant environments passing the radix 10 may be redundant. In such a case you might want to disallow using such a radix.

              Rule Details

              This rule is aimed at preventing the unintended conversion of a string to a number of a different base than intended or at preventing the redundant 10 radix if targeting modern environments only.

              Options

              There are two options for this rule:

              • "always" enforces providing a radix (default)
              • "as-needed" disallows providing the 10 radix

              always

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

              /*eslint radix: "error"*/
              
              var num = parseInt("071");
              
              var num = parseInt(someValue);
              
              var num = parseInt("071", "abc");
              
              var num = parseInt();

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

              /*eslint radix: "error"*/
              
              var num = parseInt("071", 10);
              
              var num = parseInt("071", 8);
              
              var num = parseFloat(someValue);

              as-needed

              Examples of incorrect code for the "as-needed" option:

              /*eslint radix: ["error", "as-needed"]*/
              
              var num = parseInt("071", 10);
              
              var num = parseInt("071", "abc");
              
              var num = parseInt();

              Examples of correct code for the "as-needed" option:

              /*eslint radix: ["error", "as-needed"]*/
              
              var num = parseInt("071");
              
              var num = parseInt("071", 8);
              
              var num = parseFloat(someValue);

              When Not To Use It

              If you don't want to enforce either presence or omission of the 10 radix value you can turn this rule off.

              Further Reading

              'container' is defined but never used.
              Open

                var FadeAnimation = function (settings, container) {

              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/

              'e' is defined but never used.
              Open

                    container.on('mouseenter.fndtn.orbit', function (e) {

              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/

              'Foundation' is not defined.
              Open

                Foundation.libs = Foundation.libs || {};

              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 radix parameter.
              Open

                      if (isNaN(parseInt(index))) {

              Require Radix Parameter (radix)

              When using the parseInt() function it is common to omit the second argument, the radix, and let the function try to determine from the first argument what type of number it is. By default, parseInt() will autodetect decimal and hexadecimal (via 0x prefix). Prior to ECMAScript 5, parseInt() also autodetected octal literals, which caused problems because many developers assumed a leading 0 would be ignored.

              This confusion led to the suggestion that you always use the radix parameter to parseInt() to eliminate unintended consequences. So instead of doing this:

              var num = parseInt("071");      // 57

              Do this:

              var num = parseInt("071", 10);  // 71

              ECMAScript 5 changed the behavior of parseInt() so that it no longer autodetects octal literals and instead treats them as decimal literals. However, the differences between hexadecimal and decimal interpretation of the first parameter causes many developers to continue using the radix parameter to ensure the string is interpreted in the intended way.

              On the other hand, if the code is targeting only ES5-compliant environments passing the radix 10 may be redundant. In such a case you might want to disallow using such a radix.

              Rule Details

              This rule is aimed at preventing the unintended conversion of a string to a number of a different base than intended or at preventing the redundant 10 radix if targeting modern environments only.

              Options

              There are two options for this rule:

              • "always" enforces providing a radix (default)
              • "as-needed" disallows providing the 10 radix

              always

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

              /*eslint radix: "error"*/
              
              var num = parseInt("071");
              
              var num = parseInt(someValue);
              
              var num = parseInt("071", "abc");
              
              var num = parseInt();

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

              /*eslint radix: "error"*/
              
              var num = parseInt("071", 10);
              
              var num = parseInt("071", 8);
              
              var num = parseFloat(someValue);

              as-needed

              Examples of incorrect code for the "as-needed" option:

              /*eslint radix: ["error", "as-needed"]*/
              
              var num = parseInt("071", 10);
              
              var num = parseInt("071", "abc");
              
              var num = parseInt();

              Examples of correct code for the "as-needed" option:

              /*eslint radix: ["error", "as-needed"]*/
              
              var num = parseInt("071");
              
              var num = parseInt("071", 8);
              
              var num = parseFloat(someValue);

              When Not To Use It

              If you don't want to enforce either presence or omission of the 10 radix value you can turn this rule off.

              Further Reading

              'Foundation' is not defined.
              Open

                Foundation.libs.orbit = {

              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/

              'adjust_height_after' is assigned a value but never used.
              Open

                      adjust_height_after = false;

              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/

              'e' is defined but never used.
              Open

                  self.link_bullet = function (e) {

              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/

              'e' is defined but never used.
              Open

                    .on('mouseleave.fndtn.orbit', function (e) {

              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/

              'self' is assigned a value but never used.
              Open

                    var self = this;

              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/

              'locked' is assigned a value but never used.
              Open

                      locked = false,

              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 radix parameter.
              Open

                      number_container.find('span:first').text(parseInt(index) + 1);

              Require Radix Parameter (radix)

              When using the parseInt() function it is common to omit the second argument, the radix, and let the function try to determine from the first argument what type of number it is. By default, parseInt() will autodetect decimal and hexadecimal (via 0x prefix). Prior to ECMAScript 5, parseInt() also autodetected octal literals, which caused problems because many developers assumed a leading 0 would be ignored.

              This confusion led to the suggestion that you always use the radix parameter to parseInt() to eliminate unintended consequences. So instead of doing this:

              var num = parseInt("071");      // 57

              Do this:

              var num = parseInt("071", 10);  // 71

              ECMAScript 5 changed the behavior of parseInt() so that it no longer autodetects octal literals and instead treats them as decimal literals. However, the differences between hexadecimal and decimal interpretation of the first parameter causes many developers to continue using the radix parameter to ensure the string is interpreted in the intended way.

              On the other hand, if the code is targeting only ES5-compliant environments passing the radix 10 may be redundant. In such a case you might want to disallow using such a radix.

              Rule Details

              This rule is aimed at preventing the unintended conversion of a string to a number of a different base than intended or at preventing the redundant 10 radix if targeting modern environments only.

              Options

              There are two options for this rule:

              • "always" enforces providing a radix (default)
              • "as-needed" disallows providing the 10 radix

              always

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

              /*eslint radix: "error"*/
              
              var num = parseInt("071");
              
              var num = parseInt(someValue);
              
              var num = parseInt("071", "abc");
              
              var num = parseInt();

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

              /*eslint radix: "error"*/
              
              var num = parseInt("071", 10);
              
              var num = parseInt("071", 8);
              
              var num = parseFloat(someValue);

              as-needed

              Examples of incorrect code for the "as-needed" option:

              /*eslint radix: ["error", "as-needed"]*/
              
              var num = parseInt("071", 10);
              
              var num = parseInt("071", "abc");
              
              var num = parseInt();

              Examples of correct code for the "as-needed" option:

              /*eslint radix: ["error", "as-needed"]*/
              
              var num = parseInt("071");
              
              var num = parseInt("071", 8);
              
              var num = parseFloat(someValue);

              When Not To Use It

              If you don't want to enforce either presence or omission of the 10 radix value you can turn this rule off.

              Further Reading

              'Foundation' is not defined.
              Open

                      Foundation.utils.image_loaded(this.slides().children('img'), timer.start);

              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/

              'Foundation' is not defined.
              Open

                    Foundation.utils.image_loaded(this.slides().children('img'), function () {

              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/

              'container' is defined but never used.
              Open

                var SlideAnimation = function (settings, container) {

              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/

              'margin' is assigned a value but never used.
              Open

                  var margin = is_rtl ? 'marginRight' : 'marginLeft';

              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/

              Similar blocks of code found in 2 locations. Consider refactoring.
              Open

                        if ( typeof data.is_scrolling === 'undefined') {
                          data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) );
                        }
              Severity: Major
              Found in app/javascript/vendor/foundation/foundation.orbit.js and 1 other location - About 2 hrs to fix
              app/javascript/vendor/foundation/foundation.clearing.js on lines 146..148

              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 84.

              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

                  this.next = function (current, next, callback) {
                    next.css({'margin' : '0%', 'opacity' : '0.01'});
                    next.animate({'opacity' :'1'}, duration, 'linear', function () {
                      current.css('margin', '100%');
                      callback();
              Severity: Major
              Found in app/javascript/vendor/foundation/foundation.orbit.js and 1 other location - About 2 hrs to fix
              app/javascript/vendor/foundation/foundation.orbit.js on lines 396..402

              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 84.

              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

                  this.prev = function (current, prev, callback) {
                    prev.css({'margin' : '0%', 'opacity' : '0.01'});
                    prev.animate({'opacity' : '1'}, duration, 'linear', function () {
                      current.css('margin', '100%');
                      callback();
              Severity: Major
              Found in app/javascript/vendor/foundation/foundation.orbit.js and 1 other location - About 2 hrs to fix
              app/javascript/vendor/foundation/foundation.orbit.js on lines 388..394

              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 84.

              We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

              The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

              If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

              See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

              Refactorings

              Further Reading

              Similar blocks of code found in 2 locations. Consider refactoring.
              Open

                    if (next.outerHeight() > slides_container.outerHeight() && settings.variable_height) {
                      slides_container.animate({'height': next.outerHeight()}, 250, 'linear', start_animation);
                    } else {
                      start_animation();
                    }
              Severity: Major
              Found in app/javascript/vendor/foundation/foundation.orbit.js and 1 other location - About 1 hr to fix
              app/javascript/vendor/foundation/foundation.orbit.js on lines 128..132

              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 70.

              We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

              The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

              If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

              See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

              Refactorings

              Further Reading

              Similar blocks of code found in 2 locations. Consider refactoring.
              Open

                      if (slides_container.outerHeight() != next.outerHeight() && settings.variable_height) {
                        slides_container.animate({'height': next.outerHeight()}, 250, 'linear', unlock);
                      } else {
                        unlock();
                      }
              Severity: Major
              Found in app/javascript/vendor/foundation/foundation.orbit.js and 1 other location - About 1 hr to fix
              app/javascript/vendor/foundation/foundation.orbit.js on lines 142..146

              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 70.

              We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

              The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

              If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

              See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

              Refactorings

              Further Reading

              Similar blocks of code found in 2 locations. Consider refactoring.
              Open

                        var data = {
                          start_page_x : e.touches[0].pageX,
                          start_page_y : e.touches[0].pageY,
                          start_time : (new Date()).getTime(),
                          delta_x : 0,
              Severity: Major
              Found in app/javascript/vendor/foundation/foundation.orbit.js and 1 other location - About 1 hr to fix
              app/javascript/vendor/foundation/foundation.clearing.js on lines 114..120

              Duplicated Code

              Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

              Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

              When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

              Tuning

              This issue has a mass of 67.

              We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

              The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

              If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

              See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

              Refactorings

              Further Reading

              Similar blocks of code found in 2 locations. Consider refactoring.
              Open

                  self.prev = function (e) {
                    e.stopImmediatePropagation();
                    e.preventDefault();
                    self._goto(idx - 1);
                  };
              Severity: Minor
              Found in app/javascript/vendor/foundation/foundation.orbit.js and 1 other location - About 50 mins to fix
              app/javascript/vendor/foundation/foundation.orbit.js on lines 149..153

              Duplicated Code

              Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

              Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

              When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

              Tuning

              This issue has a mass of 52.

              We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

              The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

              If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

              See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

              Refactorings

              Further Reading

              Similar blocks of code found in 2 locations. Consider refactoring.
              Open

                  self.next = function (e) {
                    e.stopImmediatePropagation();
                    e.preventDefault();
                    self._goto(idx + 1);
                  };
              Severity: Minor
              Found in app/javascript/vendor/foundation/foundation.orbit.js and 1 other location - About 50 mins to fix
              app/javascript/vendor/foundation/foundation.orbit.js on lines 155..159

              Duplicated Code

              Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

              Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

              When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

              Tuning

              This issue has a mass of 52.

              We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

              The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

              If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

              See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

              Refactorings

              Further Reading

              There are no issues that match your filters.

              Category
              Status