toolkit/.eslintrc
author Chris Manchester <cmanchester@mozilla.com>
Mon, 20 Jun 2016 16:02:01 -0700
changeset 344225 2f946ab553f7789fa70cde959d30a3513dfda1f2
parent 332204 09680d0b42ac693951425f85c9279156a3bbf44a
child 351491 6265328c999cc098a56a2e4e3392927c94b220bc
permissions -rw-r--r--
Bug 1279369 - Move --enable-debug, MOZ_DEBUG_FLAGS, and --enable-debug-symbols to Python configure. r=glandium Setting MOZ_DEBUG_SYMBOLS as a define was not moved, as this value is not checked, and exporting MOZ_DEBUG_SYMBOLS was not moved, as this would only impact nspr, and we're no longer using the nspr build system. MozReview-Commit-ID: EvBTunhxcsr

{
  // When adding items to this file please check for effects on all of toolkit
  // and browser
  "rules": {
    // Braces only needed for multi-line arrow function blocks
    // "arrow-body-style": [2, "as-needed"],

    // Require spacing around =>
    // "arrow-spacing": 2,

    // Always require spacing around a single line block
    // "block-spacing": 1,

    // No newline before open brace for a block
    // "brace-style": 2,

    // No space before always a space after a comma
    // "comma-spacing": [2, {"before": false, "after": true}],

    // Commas at the end of the line not the start
    // "comma-style": 2,

    // Don't require spaces around computed properties
    // "computed-property-spacing": [2, "never"],

    // Functions must always return something or nothing
    "consistent-return": 2,

    // Require braces around blocks that start a new line
    // Note that this rule is likely to be overridden on a per-directory basis
    // very frequently.
    // "curly": [2, "multi-line"],

    // Always require a trailing EOL
    "eol-last": 2,

    // Require function* name()
    // "generator-star-spacing": [2, {"before": false, "after": true}],

    // Two space indent
    // "indent": [2, 2, { "SwitchCase": 1 }],

    // Space after colon not before in property declarations
    // "key-spacing": [2, { "beforeColon": false, "afterColon": true, "mode": "minimum" }],

    // Require spaces before and after keywords
    // "keyword-spacing": 2,

    // Unix linebreaks
    "linebreak-style": [2, "unix"],

    // Always require parenthesis for new calls
    // "new-parens": 2,

    // Use [] instead of Array()
    // "no-array-constructor": 2,

    // No duplicate arguments in function declarations
    "no-dupe-args": 2,

    // No duplicate keys in object declarations
    "no-dupe-keys": 2,

    // No duplicate cases in switch statements
    "no-duplicate-case": 2,

    // No labels
    "no-labels": 2,

    // If an if block ends with a return no need for an else block
    // "no-else-return": 2,

    // No empty statements
    // "no-empty": 2,

    // No empty character classes in regex
    "no-empty-character-class": 2,

    // Disallow empty destructuring
    "no-empty-pattern": 2,

    // No assiging to exception variable
    // "no-ex-assign": 2,

    // No using !! where casting to boolean is already happening
    // "no-extra-boolean-cast": 2,

    // No double semicolon
    "no-extra-semi": 2,

    // No overwriting defined functions
    "no-func-assign": 2,

    // No invalid regular expresions
    "no-invalid-regexp": 2,

    // No odd whitespace characters
    "no-irregular-whitespace": 2,

    // No single if block inside an else block
    // "no-lonely-if": 2,

    // No mixing spaces and tabs in indent
    "no-mixed-spaces-and-tabs": [2, "smart-tabs"],

    // No unnecessary spacing
    // "no-multi-spaces": [2, { exceptions: { "AssignmentExpression": true, "VariableDeclarator": true, "ArrayExpression": true, "ObjectExpression": true } }],

    // No reassigning native JS objects
    "no-native-reassign": 2,

    // No (!foo in bar)
    "no-negated-in-lhs": 2,

    // Nested ternary statements are confusing
    "no-nested-ternary": 2,

    // Use {} instead of new Object()
    // "no-new-object": 2,

    // No Math() or JSON()
    "no-obj-calls": 2,

    // No octal literals
    "no-octal": 2,

    // No redeclaring variables
    "no-redeclare": 2,

    // No unnecessary comparisons
    "no-self-compare": 2,

    // No declaring variables from an outer scope
    // "no-shadow": 2,

    // No declaring variables that hide things like arguments
    // "no-shadow-restricted-names": 2,

    // No spaces between function name and parentheses
    // "no-spaced-func": 2,

    // No trailing whitespace
    "no-trailing-spaces": 2,

    // No using undeclared variables
    // "no-undef": 2,

    // Error on newline where a semicolon is needed
    "no-unexpected-multiline": 2,

    // No unreachable statements
    // "no-unreachable": 2,

    // No expressions where a statement is expected
    // "no-unused-expressions": 2,

    // No declaring variables that are never used
    // "no-unused-vars": [2, {"vars": "all", "args": "none"}],

    // No using variables before defined
    // "no-use-before-define": [2, "nofunc"],

    // No using with
    "no-with": 2,

    // Always require semicolon at end of statement
    // "semi": [2, "always"],

    // Require space before blocks
    // "space-before-blocks": 2,

    // Never use spaces before function parentheses
    // "space-before-function-paren": [2, { "anonymous": "always", "named": "never" }],

    // No space padding in parentheses
    // "space-in-parens": [2, "never"],

    // Require spaces around operators
    // "space-infix-ops": 2,

    // ++ and -- should not need spacing
    // "space-unary-ops": [2, { "words": true, "nonwords": false }],

    // No comparisons to NaN
    "use-isnan": 2,

    // Only check typeof against valid results
    "valid-typeof": 2,
  },
  "env": {
    "es6": true,
    "browser": true,
  },
  "globals": {
    "Components": false,
    "dump": true,
    "openDialog": false,
    "sizeToContent": false,
  }
}