Bug 1229097: Land an initial .eslintrc for browser and toolkit. r=gijs, r=Standard8
authorDave Townsend <dtownsend@oxymoronical.com>
Mon, 30 Nov 2015 10:45:45 -0800
changeset 309352 ed6fd38d7eb2782a3d6562f22786d66f8c7db9aa
parent 309351 33a59952118a0cf7387190dc92abd255cf530c62
child 309353 0ae21184dbe776ca22e68ff162428ac11348a030
push id5513
push userraliiev@mozilla.com
push dateMon, 25 Jan 2016 13:55:34 +0000
treeherdermozilla-beta@5ee97dd05b5c [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersgijs, Standard8
bugs1229097
milestone45.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1229097: Land an initial .eslintrc for browser and toolkit. r=gijs, r=Standard8 Currently all rules are commented out except eol-last.
browser/.eslintrc
toolkit/.eslintrc
--- a/browser/.eslintrc
+++ b/browser/.eslintrc
@@ -1,6 +1,5 @@
 {
-  // When adding items to this file please check for effects on sub-directories.
-  "rules": {
-    "eol-last": 2,
-  }
+  "extends": [
+    "../toolkit/.eslintrc"
+  ]
 }
new file mode 100644
--- /dev/null
+++ b/toolkit/.eslintrc
@@ -0,0 +1,196 @@
+{
+  // 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": [1, "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" }],
+
+    // Unix linebreaks
+    // "linebreak-style": [2, "unix"],
+
+    // Always require parenthesis for new calls
+    // "new-parens": 2,
+
+    // Use [] instead of Array()
+    // "no-array-constructor": 1,
+
+    // 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": 1,
+
+    // 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": 1,
+
+    // No mixing spaces and tabs in indent
+    // "no-mixed-spaces-and-tabs": [2, "smart-tabs"],
+
+    // No unnecessary spacing
+    // "no-multi-spaces": 1,
+
+    // 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": 1,
+
+    // No Math() or JSON()
+    // "no-obj-calls": 2,
+
+    // No octal literals
+    // "no-octal": 2,
+
+    // No redeclaring variables
+    // "no-redeclare": 1,
+
+    // No unnecessary comparisons
+    // "no-self-compare": 2,
+
+    // No declaring variables from an outer scope
+    // "no-shadow": 1,
+
+    // No declaring variables that hide things like arguments
+    // "no-shadow-restricted-names": 2,
+
+    // No spaces between function name and parentheses
+    // "no-spaced-func": 1,
+
+    // 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": [1, {"vars": "all", "args": "none"}],
+
+    // No using variables before defined
+    // "no-use-before-define": 2,
+
+    // No using with
+    // "no-with": 2,
+
+    // Always require semicolon at end of statement
+    // "semi": [2, "always"],
+
+    // Require space after keywords
+    // "space-after-keywords": 2,
+
+    // Require space before blocks
+    // "space-before-blocks": 2,
+
+    // Never use spaces before function parentheses
+    // "space-before-function-paren": [2, { "anonymous": "always", "named": "never" }],
+
+    // Require spaces before finally, catch, etc.
+    // "space-before-keywords": [2, "always"],
+
+    // No space padding in parentheses
+    // "space-in-parens": [2, "never"],
+
+    // Require spaces around operators
+    // "space-infix-ops": 2,
+
+    // Require spaces after return, throw and case
+    // "space-return-throw-case": 2,
+
+    // ++ and -- should not need spacing
+    // "space-unary-ops": [1, { "words": true, "nonwords": false }],
+
+    // No comparisons to NaN
+    // "use-isnan": 2,
+
+    // Only check typeof against valid results
+    // "valid-typeof": 2,
+  }
+}