# https://github.com/eslint/eslint/blob/master/docs/rules/README.md parserOptions: ecmaVersion: 2017 env: browser: true es6: true webextensions: true globals: require: readonly # in polyfill.js rules: accessor-pairs: [2] array-bracket-spacing: [2, never] array-callback-return: [0] arrow-body-style: [2, as-needed] arrow-parens: [2, as-needed] arrow-spacing: [2, {before: true, after: true}] block-scoped-var: [2] brace-style: [2, 1tbs, {allowSingleLine: false}] camelcase: [2, {properties: never}] class-methods-use-this: [2] comma-dangle: [2, {arrays: always-multiline, objects: always-multiline}] comma-spacing: [2, {before: false, after: true}] comma-style: [2, last] complexity: [0] computed-property-spacing: [2, never] consistent-return: [0] constructor-super: [2] curly: [2, "multi-line"] default-case: [0] dot-location: [2, property] dot-notation: [0] eol-last: [2] eqeqeq: [1, smart] func-call-spacing: [2, never] func-name-matching: [0] func-names: [0] generator-star-spacing: [2, before] global-require: [0] guard-for-in: [0] # not needed for our non-OOP stuff handle-callback-err: [2, ^(err|error)$] id-blacklist: [0] id-length: [0] id-match: [0] indent: [2, 2, { SwitchCase: 1, ignoreComments: true, ignoredNodes: [ "TemplateLiteral > *", "ConditionalExpression", "ForStatement" ] }] jsx-quotes: [0] key-spacing: [0] keyword-spacing: [2] lines-around-comment: [0] lines-around-directive: [0] max-len: [2, {code: 120, ignoreComments: true, ignoreRegExpLiterals: true}] max-lines: [0] max-nested-callbacks: [0] max-params: [0] max-statements-per-line: [0] max-statements: [0] multiline-ternary: [0] new-cap: [0] new-parens: [2] newline-before-return: [0] newline-per-chained-call: [0] no-alert: [0] no-array-constructor: [0] no-bitwise: [0] no-caller: [2] no-case-declarations: [2] no-class-assign: [2] no-cond-assign: [2, except-parens] no-confusing-arrow: [0, {allowParens: true}] no-const-assign: [2] no-constant-condition: [0] no-continue: [0] no-control-regex: [0] no-debugger: [2] no-delete-var: [2] no-div-regex: [0] no-dupe-args: [2] no-dupe-class-members: [2] no-dupe-keys: [2] no-duplicate-case: [2] no-duplicate-imports: [2] no-else-return: [0] no-empty-character-class: [2] no-empty-function: [0] no-empty-pattern: [2] no-empty: [2, {allowEmptyCatch: true}] no-eq-null: [0] no-eval: [2] no-ex-assign: [0] no-extend-native: [2] no-extra-bind: [2] no-extra-boolean-cast: [2] no-extra-label: [0] no-extra-parens: [0] no-extra-semi: [2] no-fallthrough: [2, {commentPattern: fallthrough.*}] no-floating-decimal: [0] no-func-assign: [2] no-global-assign: [2] no-implicit-coercion: [1] no-implicit-globals: [0] no-implied-eval: [2] no-inline-comments: [0] no-inner-declarations: [2] no-invalid-regexp: [2] no-invalid-this: [0] no-irregular-whitespace: [2] no-iterator: [2] no-label-var: [2] no-labels: [2, {allowLoop: true}] no-lone-blocks: [2] no-lonely-if: [0] no-loop-func: [0] no-magic-numbers: [0] no-mixed-operators: [0] no-mixed-requires: [2, true] no-mixed-spaces-and-tabs: [2] no-multi-spaces: [2, {ignoreEOLComments: true}] no-multi-str: [2] no-multiple-empty-lines: [2, {max: 2, maxEOF: 0, maxBOF: 0}] no-native-reassign: [2] no-negated-condition: [0] no-negated-in-lhs: [2] no-nested-ternary: [0] no-new-func: [2] no-new-object: [2] no-new-require: [2] no-new-symbol: [2] no-new-wrappers: [2] no-new: [0] no-obj-calls: [2] no-octal-escape: [2] no-octal: [2] no-path-concat: [2] no-process-exit: [0] no-proto: [2] no-redeclare: [2] no-regex-spaces: [2] no-restricted-globals: [2, name, event] # `name` and `event` (in Chrome) are built-in globals # but we don't use these globals so it's most likely a mistake/typo no-restricted-imports: [0] no-restricted-modules: [2, domain, freelist, smalloc, sys] no-restricted-syntax: [2, WithStatement] no-return-assign: [2, except-parens] no-return-await: [2] no-script-url: [2] no-self-assign: [2, {props: true}] no-self-compare: [2] no-sequences: [2] no-shadow-restricted-names: [2] no-shadow: [0] no-spaced-func: [2] no-sparse-arrays: [2] no-tabs: [2] no-template-curly-in-string: [2] no-this-before-super: [2] no-throw-literal: [0] no-trailing-spaces: [2] no-undef-init: [2] no-undef: [2] no-underscore-dangle: [0] no-unexpected-multiline: [2] no-unmodified-loop-condition: [0] no-unneeded-ternary: [2] no-unreachable: [2] no-unsafe-finally: [2] no-unsafe-negation: [2] no-unused-expressions: [2] no-unused-labels: [0] no-unused-vars: [2, {args: after-used}] no-use-before-define: [2, nofunc] no-useless-call: [2] no-useless-computed-key: [2] no-useless-concat: [2] no-useless-constructor: [2] no-useless-escape: [2] no-var: [1] no-warning-comments: [0] no-whitespace-before-property: [2] no-with: [2] object-curly-newline: [0] object-curly-spacing: [2, never] object-shorthand: [0] one-var-declaration-per-line: [1] one-var: [2, {initialized: never}] operator-assignment: [2, always] operator-linebreak: [2, after, overrides: {"?": ignore, ":": ignore, "&&": ignore, "||": ignore}] padded-blocks: [0] prefer-numeric-literals: [2] prefer-rest-params: [0] prefer-const: [1, {destructuring: all, ignoreReadBeforeAssign: true}] quote-props: [0] quotes: [1, single, avoid-escape] radix: [2, always] require-jsdoc: [0] require-yield: [2] semi-spacing: [2, {before: false, after: true}] semi: [2, always] sort-imports: [0] sort-keys: [0] space-before-blocks: [2, always] space-before-function-paren: [2, {anonymous: always, asyncArrow: always, named: never}] space-in-parens: [2, never] space-infix-ops: [2] space-unary-ops: [2] spaced-comment: [0, always, {markers: ["!"]}] strict: [2, global] symbol-description: [2] template-curly-spacing: [2, never] unicode-bom: [2, never] use-isnan: [2] valid-typeof: [2] wrap-iife: [2, inside] yield-star-spacing: [2, {before: true, after: false}] yoda: [2, never] overrides: - files: [tools/*] env: node: true browser: false webextensions: false parserOptions: ecmaVersion: 2017 - files: ["**/*worker*.js"] env: worker: true - files: ["**/*.mjs"] parserOptions: sourceType: module