aboutsummaryrefslogtreecommitdiff
path: root/tools/node_modules/eslint/lib
diff options
context:
space:
mode:
authorMichaël Zasso <targos@protonmail.com>2018-01-09 11:04:20 +0100
committerMichaël Zasso <targos@protonmail.com>2018-01-11 09:50:42 +0100
commit7a52c51e811cd59db0d2b1b6d6b8b2e7f917d65c (patch)
tree05f30e28191e1b9804e295ee092c6bbb14f5be85 /tools/node_modules/eslint/lib
parent3dc30632755713179f345f4af024bd904c6162d0 (diff)
downloadandroid-node-v8-7a52c51e811cd59db0d2b1b6d6b8b2e7f917d65c.tar.gz
android-node-v8-7a52c51e811cd59db0d2b1b6d6b8b2e7f917d65c.tar.bz2
android-node-v8-7a52c51e811cd59db0d2b1b6d6b8b2e7f917d65c.zip
tools: update ESLint to 4.15.0
PR-URL: https://github.com/nodejs/node/pull/17820 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Diffstat (limited to 'tools/node_modules/eslint/lib')
-rw-r--r--tools/node_modules/eslint/lib/cli-engine.js4
-rw-r--r--tools/node_modules/eslint/lib/formatters/checkstyle.js2
-rw-r--r--tools/node_modules/eslint/lib/formatters/jslint-xml.js2
-rw-r--r--tools/node_modules/eslint/lib/formatters/junit.js2
-rwxr-xr-xtools/node_modules/eslint/lib/linter.js113
-rw-r--r--tools/node_modules/eslint/lib/options.js88
-rw-r--r--tools/node_modules/eslint/lib/report-translator.js47
-rw-r--r--tools/node_modules/eslint/lib/rules/.eslintrc.yml1
-rw-r--r--tools/node_modules/eslint/lib/rules/accessor-pairs.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/array-bracket-newline.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/array-bracket-spacing.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/array-callback-return.js21
-rw-r--r--tools/node_modules/eslint/lib/rules/array-element-newline.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/arrow-body-style.js17
-rw-r--r--tools/node_modules/eslint/lib/rules/arrow-parens.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/arrow-spacing.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/block-scoped-var.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/block-spacing.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/brace-style.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/callback-return.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/camelcase.js46
-rw-r--r--tools/node_modules/eslint/lib/rules/capitalized-comments.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/class-methods-use-this.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/comma-dangle.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/comma-spacing.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/comma-style.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/complexity.js19
-rw-r--r--tools/node_modules/eslint/lib/rules/computed-property-spacing.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/consistent-return.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/consistent-this.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/constructor-super.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/curly.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/default-case.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/dot-location.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/dot-notation.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/eol-last.js11
-rw-r--r--tools/node_modules/eslint/lib/rules/eqeqeq.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/for-direction.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/func-call-spacing.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/func-name-matching.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/func-names.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/func-style.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/function-paren-newline.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/generator-star-spacing.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/getter-return.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/global-require.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/guard-for-in.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/handle-callback-err.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/id-blacklist.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/id-length.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/id-match.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/indent-legacy.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/indent.js15
-rw-r--r--tools/node_modules/eslint/lib/rules/init-declarations.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/jsx-quotes.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/key-spacing.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/keyword-spacing.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/line-comment-position.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/linebreak-style.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/lines-around-comment.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/lines-around-directive.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/lines-between-class-members.js57
-rw-r--r--tools/node_modules/eslint/lib/rules/max-depth.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/max-len.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/max-lines.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/max-nested-callbacks.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/max-params.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/max-statements-per-line.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/max-statements.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/multiline-comment-style.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/multiline-ternary.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/new-cap.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/new-parens.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/newline-after-var.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/newline-before-return.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/newline-per-chained-call.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-alert.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-array-constructor.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-await-in-loop.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-bitwise.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-buffer-constructor.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-caller.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-case-declarations.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-catch-shadow.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-class-assign.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-compare-neg-zero.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-cond-assign.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-confusing-arrow.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-console.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-const-assign.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-constant-condition.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-continue.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-control-regex.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-debugger.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-delete-var.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-div-regex.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-dupe-args.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-dupe-class-members.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-dupe-keys.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-duplicate-case.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-duplicate-imports.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-else-return.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-empty-character-class.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-empty-function.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-empty-pattern.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-empty.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-eq-null.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-eval.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-ex-assign.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-extend-native.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-extra-bind.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-extra-boolean-cast.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-extra-label.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-extra-parens.js5
-rw-r--r--tools/node_modules/eslint/lib/rules/no-extra-semi.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-fallthrough.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-floating-decimal.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-func-assign.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-global-assign.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-implicit-coercion.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-implicit-globals.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-implied-eval.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-inline-comments.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-inner-declarations.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-invalid-regexp.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-invalid-this.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-irregular-whitespace.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-iterator.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-label-var.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-labels.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-lone-blocks.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-lonely-if.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-loop-func.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-magic-numbers.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-mixed-operators.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-mixed-requires.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-multi-assign.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-multi-spaces.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-multi-str.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-multiple-empty-lines.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-native-reassign.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-negated-condition.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-negated-in-lhs.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-nested-ternary.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-new-func.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-new-object.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-new-require.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-new-symbol.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-new-wrappers.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-new.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-obj-calls.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-octal-escape.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-octal.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-param-reassign.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-path-concat.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-plusplus.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-process-env.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-process-exit.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-proto.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-prototype-builtins.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-redeclare.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-regex-spaces.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-restricted-globals.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-restricted-imports.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-restricted-modules.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-restricted-properties.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-restricted-syntax.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-return-assign.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-return-await.js6
-rw-r--r--tools/node_modules/eslint/lib/rules/no-script-url.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-self-assign.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-self-compare.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-sequences.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-shadow-restricted-names.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-shadow.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-spaced-func.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-sparse-arrays.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-sync.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-tabs.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-template-curly-in-string.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-ternary.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-this-before-super.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-throw-literal.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-trailing-spaces.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-undef-init.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-undef.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-undefined.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-underscore-dangle.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-unexpected-multiline.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-unmodified-loop-condition.js160
-rw-r--r--tools/node_modules/eslint/lib/rules/no-unneeded-ternary.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-unreachable.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-unsafe-finally.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-unsafe-negation.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-unused-expressions.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-unused-labels.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-unused-vars.js24
-rw-r--r--tools/node_modules/eslint/lib/rules/no-use-before-define.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-useless-call.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-useless-computed-key.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-useless-concat.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-useless-constructor.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-useless-escape.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-useless-rename.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-useless-return.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-var.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-void.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-warning-comments.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-whitespace-before-property.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/no-with.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/nonblock-statement-body-position.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/object-curly-newline.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/object-curly-spacing.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/object-property-newline.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/object-shorthand.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/one-var-declaration-per-line.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/one-var.js50
-rw-r--r--tools/node_modules/eslint/lib/rules/operator-assignment.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/operator-linebreak.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/padded-blocks.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/padding-line-between-statements.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/prefer-arrow-callback.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/prefer-const.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/prefer-destructuring.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/prefer-numeric-literals.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/prefer-promise-reject-errors.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/prefer-reflect.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/prefer-rest-params.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/prefer-spread.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/prefer-template.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/quote-props.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/quotes.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/radix.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/require-await.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/require-jsdoc.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/require-yield.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/rest-spread-spacing.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/semi-spacing.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/semi-style.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/semi.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/sort-imports.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/sort-keys.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/sort-vars.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/space-before-blocks.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/space-before-function-paren.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/space-in-parens.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/space-infix-ops.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/space-unary-ops.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/spaced-comment.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/strict.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/switch-colon-spacing.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/symbol-description.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/template-curly-spacing.js3
-rwxr-xr-xtools/node_modules/eslint/lib/rules/template-tag-spacing.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/unicode-bom.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/use-isnan.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/valid-jsdoc.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/valid-typeof.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/vars-on-top.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/wrap-iife.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/wrap-regex.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/yield-star-spacing.js3
-rw-r--r--tools/node_modules/eslint/lib/rules/yoda.js3
-rw-r--r--tools/node_modules/eslint/lib/testers/rule-tester.js93
-rw-r--r--tools/node_modules/eslint/lib/util/interpolate.js24
-rw-r--r--tools/node_modules/eslint/lib/util/source-code.js47
-rw-r--r--tools/node_modules/eslint/lib/util/traverser.js178
269 files changed, 1230 insertions, 537 deletions
diff --git a/tools/node_modules/eslint/lib/cli-engine.js b/tools/node_modules/eslint/lib/cli-engine.js
index 55450fd633..0c1afcbceb 100644
--- a/tools/node_modules/eslint/lib/cli-engine.js
+++ b/tools/node_modules/eslint/lib/cli-engine.js
@@ -420,6 +420,10 @@ class CLIEngine {
this.config = new Config(this.options, this.linter);
}
+ getRules() {
+ return this.linter.getRules();
+ }
+
/**
* Returns results that only contains errors.
* @param {LintResult[]} results The results to filter.
diff --git a/tools/node_modules/eslint/lib/formatters/checkstyle.js b/tools/node_modules/eslint/lib/formatters/checkstyle.js
index 720e831a3e..c807871930 100644
--- a/tools/node_modules/eslint/lib/formatters/checkstyle.js
+++ b/tools/node_modules/eslint/lib/formatters/checkstyle.js
@@ -32,7 +32,7 @@ module.exports = function(results) {
let output = "";
- output += "<?xml version=\"1.1\" encoding=\"utf-8\"?>";
+ output += "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
output += "<checkstyle version=\"4.3\">";
results.forEach(result => {
diff --git a/tools/node_modules/eslint/lib/formatters/jslint-xml.js b/tools/node_modules/eslint/lib/formatters/jslint-xml.js
index e152d8bdd7..14743430d8 100644
--- a/tools/node_modules/eslint/lib/formatters/jslint-xml.js
+++ b/tools/node_modules/eslint/lib/formatters/jslint-xml.js
@@ -14,7 +14,7 @@ module.exports = function(results) {
let output = "";
- output += "<?xml version=\"1.1\" encoding=\"utf-8\"?>";
+ output += "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
output += "<jslint>";
results.forEach(result => {
diff --git a/tools/node_modules/eslint/lib/formatters/junit.js b/tools/node_modules/eslint/lib/formatters/junit.js
index ca666bb14c..77d548f380 100644
--- a/tools/node_modules/eslint/lib/formatters/junit.js
+++ b/tools/node_modules/eslint/lib/formatters/junit.js
@@ -32,7 +32,7 @@ module.exports = function(results) {
let output = "";
- output += "<?xml version=\"1.1\" encoding=\"utf-8\"?>\n";
+ output += "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
output += "<testsuites>\n";
results.forEach(result => {
diff --git a/tools/node_modules/eslint/lib/linter.js b/tools/node_modules/eslint/lib/linter.js
index 21d62f73ae..2238c5be0e 100755
--- a/tools/node_modules/eslint/lib/linter.js
+++ b/tools/node_modules/eslint/lib/linter.js
@@ -10,6 +10,7 @@
//------------------------------------------------------------------------------
const eslintScope = require("eslint-scope"),
+ evk = require("eslint-visitor-keys"),
levn = require("levn"),
lodash = require("lodash"),
blankScriptAST = require("../conf/blank-script.json"),
@@ -43,6 +44,8 @@ const MAX_AUTOFIX_PASSES = 10;
* @property {ASTNode} ast The ESTree AST Program node.
* @property {Object} services An object containing additional services related
* to the parser.
+ * @property {ScopeManager|null} scopeManager The scope manager object of this AST.
+ * @property {Object|null} visitorKeys The visitor keys to traverse this AST.
*/
//------------------------------------------------------------------------------
@@ -502,6 +505,28 @@ function getRuleOptions(ruleConfig) {
}
/**
+ * Analyze scope of the given AST.
+ * @param {ASTNode} ast The `Program` node to analyze.
+ * @param {Object} parserOptions The parser options.
+ * @param {Object} visitorKeys The visitor keys.
+ * @returns {ScopeManager} The analysis result.
+ */
+function analyzeScope(ast, parserOptions, visitorKeys) {
+ const ecmaFeatures = parserOptions.ecmaFeatures || {};
+ const ecmaVersion = parserOptions.ecmaVersion || 5;
+
+ return eslintScope.analyze(ast, {
+ ignoreEval: true,
+ nodejsScope: ecmaFeatures.globalReturn,
+ impliedStrict: ecmaFeatures.impliedStrict,
+ ecmaVersion,
+ sourceType: parserOptions.sourceType || "script",
+ childVisitorKeys: visitorKeys || evk.KEYS,
+ fallback: Traverser.getKeys
+ });
+}
+
+/**
* Parses text into an AST. Moved out here because the try-catch prevents
* optimization of functions, so it's best to keep the try-catch as isolated
* as possible
@@ -509,18 +534,20 @@ function getRuleOptions(ruleConfig) {
* @param {Object} providedParserOptions Options to pass to the parser
* @param {Object} parser The parser module
* @param {string} filePath The path to the file being parsed.
- * @returns {{success: false, error: Problem}|{success: true,ast: ASTNode, services: Object}}
+ * @returns {{success: false, error: Problem}|{success: true, sourceCode: SourceCode}}
* An object containing the AST and parser services if parsing was successful, or the error if parsing failed
* @private
*/
function parse(text, providedParserOptions, parser, filePath) {
-
+ const textToParse = stripUnicodeBOM(text).replace(astUtils.SHEBANG_MATCHER, (match, captured) => `//${captured}`);
const parserOptions = Object.assign({}, providedParserOptions, {
loc: true,
range: true,
raw: true,
tokens: true,
comment: true,
+ eslintVisitorKeys: true,
+ eslintScopeManager: true,
filePath
});
@@ -531,20 +558,30 @@ function parse(text, providedParserOptions, parser, filePath) {
* problem that ESLint identified just like any other.
*/
try {
- if (typeof parser.parseForESLint === "function") {
- const parseResult = parser.parseForESLint(text, parserOptions);
-
- return {
- success: true,
- ast: parseResult.ast,
- services: parseResult.services || {}
- };
- }
+ const parseResult = (typeof parser.parseForESLint === "function")
+ ? parser.parseForESLint(textToParse, parserOptions)
+ : { ast: parser.parse(textToParse, parserOptions) };
+ const ast = parseResult.ast;
+ const parserServices = parseResult.services || {};
+ const visitorKeys = parseResult.visitorKeys || evk.KEYS;
+ const scopeManager = parseResult.scopeManager || analyzeScope(ast, parserOptions, visitorKeys);
return {
success: true,
- ast: parser.parse(text, parserOptions),
- services: {}
+
+ /*
+ * Save all values that `parseForESLint()` returned.
+ * If a `SourceCode` object is given as the first parameter instead of source code text,
+ * linter skips the parsing process and reuses the source code object.
+ * In that case, linter needs all the values that `parseForESLint()` returned.
+ */
+ sourceCode: new SourceCode({
+ text,
+ ast,
+ parserServices,
+ scopeManager,
+ visitorKeys
+ })
};
} catch (ex) {
@@ -717,7 +754,6 @@ module.exports = class Linter {
*/
_verifyWithoutProcessors(textOrSourceCode, config, filenameOrOptions) {
let text,
- parserServices,
allowInlineConfig,
providedFilename,
reportUnusedDisableDirectives;
@@ -731,8 +767,6 @@ module.exports = class Linter {
providedFilename = filenameOrOptions;
}
- const filename = typeof providedFilename === "string" ? providedFilename : "<input>";
-
if (typeof textOrSourceCode === "string") {
lastSourceCodes.set(this, null);
text = textOrSourceCode;
@@ -741,6 +775,8 @@ module.exports = class Linter {
text = textOrSourceCode.text;
}
+ const filename = typeof providedFilename === "string" ? providedFilename : "<input>";
+
// search and apply "eslint-env *".
const envInFile = findEslintEnv(text);
@@ -757,9 +793,7 @@ module.exports = class Linter {
// process initial config to make it safe to extend
config = prepareConfig(config, this.environments);
- if (lastSourceCodes.get(this)) {
- parserServices = {};
- } else {
+ if (!lastSourceCodes.get(this)) {
// there's no input, just exit here
if (text.trim().length === 0) {
@@ -783,7 +817,7 @@ module.exports = class Linter {
}];
}
const parseResult = parse(
- stripUnicodeBOM(text).replace(astUtils.SHEBANG_MATCHER, (match, captured) => `//${captured}`),
+ text,
config.parserOptions,
parser,
filename
@@ -793,8 +827,24 @@ module.exports = class Linter {
return [parseResult.error];
}
- parserServices = parseResult.services;
- lastSourceCodes.set(this, new SourceCode(text, parseResult.ast));
+ lastSourceCodes.set(this, parseResult.sourceCode);
+ } else {
+
+ /*
+ * If the given source code object as the first argument does not have scopeManager, analyze the scope.
+ * This is for backward compatibility (SourceCode is frozen so it cannot rebind).
+ */
+ const lastSourceCode = lastSourceCodes.get(this);
+
+ if (!lastSourceCode.scopeManager) {
+ lastSourceCodes.set(this, new SourceCode({
+ text: lastSourceCode.text,
+ ast: lastSourceCode.ast,
+ parserServices: lastSourceCode.parserServices,
+ visitorKeys: lastSourceCode.visitorKeys,
+ scopeManager: analyzeScope(lastSourceCode.ast, config.parserOptions)
+ }));
+ }
}
const problems = [];
@@ -814,16 +864,7 @@ module.exports = class Linter {
const emitter = createEmitter();
const traverser = new Traverser();
- const ecmaFeatures = config.parserOptions.ecmaFeatures || {};
- const ecmaVersion = config.parserOptions.ecmaVersion || 5;
- const scopeManager = eslintScope.analyze(sourceCode.ast, {
- ignoreEval: true,
- nodejsScope: ecmaFeatures.globalReturn,
- impliedStrict: ecmaFeatures.impliedStrict,
- ecmaVersion,
- sourceType: config.parserOptions.sourceType || "script",
- fallback: Traverser.getKeys
- });
+ const scopeManager = sourceCode.scopeManager;
/*
* Create a frozen object with the ruleContext properties and methods that are shared by all rules.
@@ -842,7 +883,7 @@ module.exports = class Linter {
markVariableAsUsed: name => markVariableAsUsed(scopeManager, traverser.current(), config.parserOptions, name),
parserOptions: config.parserOptions,
parserPath: config.parser,
- parserServices,
+ parserServices: sourceCode.parserServices,
settings: config.settings,
/**
@@ -870,6 +911,7 @@ module.exports = class Linter {
}
const rule = this.rules.get(ruleId);
+ const messageIds = rule && rule.meta && rule.meta.messages;
let reportTranslator = null;
const ruleContext = Object.freeze(
Object.assign(
@@ -890,7 +932,7 @@ module.exports = class Linter {
* with Node 8.4.0.
*/
if (reportTranslator === null) {
- reportTranslator = createReportTranslator({ ruleId, severity, sourceCode });
+ reportTranslator = createReportTranslator({ ruleId, severity, sourceCode, messageIds });
}
const problem = reportTranslator.apply(null, arguments);
@@ -957,7 +999,8 @@ module.exports = class Linter {
},
leave(node) {
eventGenerator.leaveNode(node);
- }
+ },
+ visitorKeys: sourceCode.visitorKeys
});
return applyDisableDirectives({
diff --git a/tools/node_modules/eslint/lib/options.js b/tools/node_modules/eslint/lib/options.js
index ee1d3369ce..c8005d4445 100644
--- a/tools/node_modules/eslint/lib/options.js
+++ b/tools/node_modules/eslint/lib/options.js
@@ -65,26 +65,6 @@ module.exports = optionator({
description: "Specify parser options"
},
{
- heading: "Caching"
- },
- {
- option: "cache",
- type: "Boolean",
- default: "false",
- description: "Only check changed files"
- },
- {
- option: "cache-file",
- type: "path::String",
- default: ".eslintcache",
- description: "Path to the cache file. Deprecated: use --cache-location"
- },
- {
- option: "cache-location",
- type: "path::String",
- description: "Path to the cache file or directory"
- },
- {
heading: "Specifying rules and plugins"
},
{
@@ -103,6 +83,21 @@ module.exports = optionator({
description: "Specify rules"
},
{
+ heading: "Fixing problems"
+ },
+ {
+ option: "fix",
+ type: "Boolean",
+ default: false,
+ description: "Automatically fix problems"
+ },
+ {
+ option: "fix-dry-run",
+ type: "Boolean",
+ default: false,
+ description: "Automatically fix problems without saving the changes to the file system"
+ },
+ {
heading: "Ignoring files"
},
{
@@ -176,25 +171,48 @@ module.exports = optionator({
description: "Force enabling/disabling of color"
},
{
- heading: "Miscellaneous"
+ heading: "Inline configuration comments"
},
{
- option: "init",
+ option: "inline-config",
type: "Boolean",
- default: "false",
- description: "Run config initialization wizard"
+ default: "true",
+ description: "Prevent comments from changing config or rules"
},
{
- option: "fix",
+ option: "report-unused-disable-directives",
type: "Boolean",
default: false,
- description: "Automatically fix problems"
+ description: "Adds reported errors for unused eslint-disable directives"
},
{
- option: "fix-dry-run",
+ heading: "Caching"
+ },
+ {
+ option: "cache",
type: "Boolean",
- default: false,
- description: "Automatically fix problems without saving the changes to the file system"
+ default: "false",
+ description: "Only check changed files"
+ },
+ {
+ option: "cache-file",
+ type: "path::String",
+ default: ".eslintcache",
+ description: "Path to the cache file. Deprecated: use --cache-location"
+ },
+ {
+ option: "cache-location",
+ type: "path::String",
+ description: "Path to the cache file or directory"
+ },
+ {
+ heading: "Miscellaneous"
+ },
+ {
+ option: "init",
+ type: "Boolean",
+ default: "false",
+ description: "Run config initialization wizard"
},
{
option: "debug",
@@ -215,18 +233,6 @@ module.exports = optionator({
description: "Output the version number"
},
{
- option: "inline-config",
- type: "Boolean",
- default: "true",
- description: "Prevent comments from changing config or rules"
- },
- {
- option: "report-unused-disable-directives",
- type: "Boolean",
- default: false,
- description: "Adds reported errors for unused eslint-disable directives"
- },
- {
option: "print-config",
type: "path::String",
description: "Print the configuration for the given file"
diff --git a/tools/node_modules/eslint/lib/report-translator.js b/tools/node_modules/eslint/lib/report-translator.js
index 9c4ab8b9a9..8e5b587f96 100644
--- a/tools/node_modules/eslint/lib/report-translator.js
+++ b/tools/node_modules/eslint/lib/report-translator.js
@@ -11,6 +11,7 @@
const assert = require("assert");
const ruleFixer = require("./util/rule-fixer");
+const interpolate = require("./util/interpolate");
//------------------------------------------------------------------------------
// Typedefs
@@ -41,7 +42,9 @@ function normalizeMultiArgReportCall() {
// If there is one argument, it is considered to be a new-style call already.
if (arguments.length === 1) {
- return arguments[0];
+
+ // Shallow clone the object to avoid surprises if reusing the descriptor
+ return Object.assign({}, arguments[0]);
}
// If the second argument is a string, the arguments are interpreted as [node, message, data, fix].
@@ -100,16 +103,7 @@ function normalizeReportLoc(descriptor) {
* @returns {string} The interpolated message for the descriptor
*/
function normalizeMessagePlaceholders(descriptor) {
- if (!descriptor.data) {
- return descriptor.message;
- }
- return descriptor.message.replace(/\{\{\s*([^{}]+?)\s*\}\}/g, (fullMatch, term) => {
- if (term in descriptor.data) {
- return descriptor.data[term];
- }
-
- return fullMatch;
- });
+ return interpolate(descriptor.message, descriptor.data);
}
/**
@@ -216,6 +210,14 @@ function createProblem(options) {
source: options.sourceLines[options.loc.start.line - 1] || ""
};
+ /*
+ * If this isn’t in the conditional, some of the tests fail
+ * because `messageId` is present in the problem object
+ */
+ if (options.messageId) {
+ problem.messageId = options.messageId;
+ }
+
if (options.loc.end) {
problem.endLine = options.loc.end.line;
problem.endColumn = options.loc.end.column + 1;
@@ -231,12 +233,13 @@ function createProblem(options) {
/**
* Returns a function that converts the arguments of a `context.report` call from a rule into a reported
* problem for the Node.js API.
- * @param {{ruleId: string, severity: number, sourceCode: SourceCode}} metadata Metadata for the reported problem
+ * @param {{ruleId: string, severity: number, sourceCode: SourceCode, messageIds: Object}} metadata Metadata for the reported problem
* @param {SourceCode} sourceCode The `SourceCode` instance for the text being linted
* @returns {function(...args): {
* ruleId: string,
* severity: (0|1|2),
- * message: string,
+ * message: (string|undefined),
+ * messageId: (string|undefined),
* line: number,
* column: number,
* endLine: (number|undefined),
@@ -261,11 +264,29 @@ module.exports = function createReportTranslator(metadata) {
assertValidNodeInfo(descriptor);
+ if (descriptor.messageId) {
+ if (!metadata.messageIds) {
+ throw new TypeError("context.report() called with a messageId, but no messages were present in the rule metadata.");
+ }
+ const id = descriptor.messageId;
+ const messages = metadata.messageIds;
+
+ if (descriptor.message) {
+ throw new TypeError("context.report() called with a message and a messageId. Please only pass one.");
+ }
+ if (!messages || !Object.prototype.hasOwnProperty.call(messages, id)) {
+ throw new TypeError(`context.report() called with a messageId of '${id}' which is not present in the 'messages' config: ${JSON.stringify(messages, null, 2)}`);
+ }
+ descriptor.message = messages[id];
+ }
+
+
return createProblem({
ruleId: metadata.ruleId,
severity: metadata.severity,
node: descriptor.node,
message: normalizeMessagePlaceholders(descriptor),
+ messageId: descriptor.messageId,
loc: normalizeReportLoc(descriptor),
fix: normalizeFixes(descriptor, metadata.sourceCode),
sourceLines: metadata.sourceCode.lines
diff --git a/tools/node_modules/eslint/lib/rules/.eslintrc.yml b/tools/node_modules/eslint/lib/rules/.eslintrc.yml
index 2a8d907935..64b3cee7f0 100644
--- a/tools/node_modules/eslint/lib/rules/.eslintrc.yml
+++ b/tools/node_modules/eslint/lib/rules/.eslintrc.yml
@@ -1,3 +1,4 @@
rules:
rulesdir/no-invalid-meta: "error"
rulesdir/consistent-docs-description: "error"
+ rulesdir/consistent-docs-url: "error"
diff --git a/tools/node_modules/eslint/lib/rules/accessor-pairs.js b/tools/node_modules/eslint/lib/rules/accessor-pairs.js
index 4afdc7136c..b01b29b176 100644
--- a/tools/node_modules/eslint/lib/rules/accessor-pairs.js
+++ b/tools/node_modules/eslint/lib/rules/accessor-pairs.js
@@ -75,7 +75,8 @@ module.exports = {
docs: {
description: "enforce getter and setter pairs in objects",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/accessor-pairs"
},
schema: [{
type: "object",
diff --git a/tools/node_modules/eslint/lib/rules/array-bracket-newline.js b/tools/node_modules/eslint/lib/rules/array-bracket-newline.js
index cb7350a825..b939d65b3f 100644
--- a/tools/node_modules/eslint/lib/rules/array-bracket-newline.js
+++ b/tools/node_modules/eslint/lib/rules/array-bracket-newline.js
@@ -16,7 +16,8 @@ module.exports = {
docs: {
description: "enforce linebreaks after opening and before closing array brackets",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/array-bracket-newline"
},
fixable: "whitespace",
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/array-bracket-spacing.js b/tools/node_modules/eslint/lib/rules/array-bracket-spacing.js
index aecef2c4f2..933458a42a 100644
--- a/tools/node_modules/eslint/lib/rules/array-bracket-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/array-bracket-spacing.js
@@ -15,7 +15,8 @@ module.exports = {
docs: {
description: "enforce consistent spacing inside array brackets",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/array-bracket-spacing"
},
fixable: "whitespace",
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/array-callback-return.js b/tools/node_modules/eslint/lib/rules/array-callback-return.js
index 37d6ebe3a7..69655481d8 100644
--- a/tools/node_modules/eslint/lib/rules/array-callback-return.js
+++ b/tools/node_modules/eslint/lib/rules/array-callback-return.js
@@ -142,13 +142,27 @@ module.exports = {
docs: {
description: "enforce `return` statements in callbacks of array methods",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/array-callback-return"
},
- schema: []
+ schema: [
+ {
+ type: "object",
+ properties: {
+ allowImplicit: {
+ type: "boolean"
+ }
+ },
+ additionalProperties: false
+ }
+ ]
},
create(context) {
+
+ const options = context.options[0] || { allowImplicit: false };
+
let funcInfo = {
upper: null,
codePath: null,
@@ -212,7 +226,8 @@ module.exports = {
if (funcInfo.shouldCheck) {
funcInfo.hasReturn = true;
- if (!node.argument) {
+ // if allowImplicit: false, should also check node.argument
+ if (!options.allowImplicit && !node.argument) {
context.report({
node,
message: "{{name}} expected a return value.",
diff --git a/tools/node_modules/eslint/lib/rules/array-element-newline.js b/tools/node_modules/eslint/lib/rules/array-element-newline.js
index 26dc9bfa0b..22352c7e33 100644
--- a/tools/node_modules/eslint/lib/rules/array-element-newline.js
+++ b/tools/node_modules/eslint/lib/rules/array-element-newline.js
@@ -16,7 +16,8 @@ module.exports = {
docs: {
description: "enforce line breaks after each array element",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/array-element-newline"
},
fixable: "whitespace",
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/arrow-body-style.js b/tools/node_modules/eslint/lib/rules/arrow-body-style.js
index 78a391334d..afbf46fd54 100644
--- a/tools/node_modules/eslint/lib/rules/arrow-body-style.js
+++ b/tools/node_modules/eslint/lib/rules/arrow-body-style.js
@@ -19,7 +19,8 @@ module.exports = {
docs: {
description: "require braces around arrow function bodies",
category: "ECMAScript 6",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/arrow-body-style"
},
schema: {
@@ -109,10 +110,22 @@ module.exports = {
}
if (never || asNeeded && blockBody[0].type === "ReturnStatement") {
+ let message;
+
+ if (blockBody.length === 0) {
+ message = "Unexpected block statement surrounding arrow body; put a value of `undefined` immediately after the `=>`.";
+ } else if (blockBody.length > 1) {
+ message = "Unexpected block statement surrounding arrow body.";
+ } else if (astUtils.isOpeningBraceToken(sourceCode.getFirstToken(blockBody[0], { skip: 1 }))) {
+ message = "Unexpected block statement surrounding arrow body; parenthesize the returned value and move it immediately after the `=>`.";
+ } else {
+ message = "Unexpected block statement surrounding arrow body; move the returned value immediately after the `=>`.";
+ }
+
context.report({
node,
loc: arrowBody.loc.start,
- message: "Unexpected block statement surrounding arrow body.",
+ message,
fix(fixer) {
const fixes = [];
diff --git a/tools/node_modules/eslint/lib/rules/arrow-parens.js b/tools/node_modules/eslint/lib/rules/arrow-parens.js
index e8f8ddd8e7..5a0fd61b34 100644
--- a/tools/node_modules/eslint/lib/rules/arrow-parens.js
+++ b/tools/node_modules/eslint/lib/rules/arrow-parens.js
@@ -19,7 +19,8 @@ module.exports = {
docs: {
description: "require parentheses around arrow function arguments",
category: "ECMAScript 6",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/arrow-parens"
},
fixable: "code",
diff --git a/tools/node_modules/eslint/lib/rules/arrow-spacing.js b/tools/node_modules/eslint/lib/rules/arrow-spacing.js
index 37e03907cb..d2c5b9b77b 100644
--- a/tools/node_modules/eslint/lib/rules/arrow-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/arrow-spacing.js
@@ -19,7 +19,8 @@ module.exports = {
docs: {
description: "enforce consistent spacing before and after the arrow in arrow functions",
category: "ECMAScript 6",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/arrow-spacing"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/block-scoped-var.js b/tools/node_modules/eslint/lib/rules/block-scoped-var.js
index 0b4d855fae..58cef1741a 100644
--- a/tools/node_modules/eslint/lib/rules/block-scoped-var.js
+++ b/tools/node_modules/eslint/lib/rules/block-scoped-var.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "enforce the use of variables within the scope they are defined",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/block-scoped-var"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/block-spacing.js b/tools/node_modules/eslint/lib/rules/block-spacing.js
index b3ea8405e2..4fbf6d4c0b 100644
--- a/tools/node_modules/eslint/lib/rules/block-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/block-spacing.js
@@ -16,7 +16,8 @@ module.exports = {
docs: {
description: "disallow or enforce spaces inside of blocks after opening block and before closing block",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/block-spacing"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/brace-style.js b/tools/node_modules/eslint/lib/rules/brace-style.js
index 320da9dac9..bc0ddbd78f 100644
--- a/tools/node_modules/eslint/lib/rules/brace-style.js
+++ b/tools/node_modules/eslint/lib/rules/brace-style.js
@@ -16,7 +16,8 @@ module.exports = {
docs: {
description: "enforce consistent brace style for blocks",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/brace-style"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/callback-return.js b/tools/node_modules/eslint/lib/rules/callback-return.js
index 0fa7f278a1..ed85c7181a 100644
--- a/tools/node_modules/eslint/lib/rules/callback-return.js
+++ b/tools/node_modules/eslint/lib/rules/callback-return.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "require `return` statements after callbacks",
category: "Node.js and CommonJS",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/callback-return"
},
schema: [{
diff --git a/tools/node_modules/eslint/lib/rules/camelcase.js b/tools/node_modules/eslint/lib/rules/camelcase.js
index 6fb1475b21..86822f9752 100644
--- a/tools/node_modules/eslint/lib/rules/camelcase.js
+++ b/tools/node_modules/eslint/lib/rules/camelcase.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "enforce camelcase naming convention",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/camelcase"
},
schema: [
@@ -92,34 +93,45 @@ module.exports = {
}
// Always report underscored object names
- if (node.parent.object.type === "Identifier" &&
- node.parent.object.name === node.name &&
- isUnderscored(name)) {
+ if (node.parent.object.type === "Identifier" && node.parent.object.name === node.name && isUnderscored(name)) {
report(node);
// Report AssignmentExpressions only if they are the left side of the assignment
- } else if (effectiveParent.type === "AssignmentExpression" &&
- isUnderscored(name) &&
- (effectiveParent.right.type !== "MemberExpression" ||
- effectiveParent.left.type === "MemberExpression" &&
- effectiveParent.left.property.name === node.name)) {
+ } else if (effectiveParent.type === "AssignmentExpression" && isUnderscored(name) && (effectiveParent.right.type !== "MemberExpression" || effectiveParent.left.type === "MemberExpression" && effectiveParent.left.property.name === node.name)) {
report(node);
}
- // Properties have their own rules
- } else if (node.parent.type === "Property") {
+ /*
+ * Properties have their own rules, and
+ * AssignmentPattern nodes can be treated like Properties:
+ * e.g.: const { no_camelcased = false } = bar;
+ */
+ } else if (node.parent.type === "Property" || node.parent.type === "AssignmentPattern") {
- // "never" check properties
- if (properties === "never") {
- return;
+ if (node.parent.parent && node.parent.parent.type === "ObjectPattern") {
+
+ if (node.parent.shorthand && node.parent.value.left && isUnderscored(name)) {
+
+ report(node);
+ }
+
+ // prevent checking righthand side of destructured object
+ if (node.parent.key === node && node.parent.value !== node) {
+ return;
+ }
+
+ if (node.parent.value.name && isUnderscored(name)) {
+ report(node);
+ }
}
- if (node.parent.parent && node.parent.parent.type === "ObjectPattern" &&
- node.parent.key === node && node.parent.value !== node) {
+ // "never" check properties
+ if (properties === "never") {
return;
}
- if (isUnderscored(name) && !ALLOWED_PARENT_TYPES.has(effectiveParent.type)) {
+ // don't check right hand side of AssignmentExpression to prevent duplicate warnings
+ if (isUnderscored(name) && !ALLOWED_PARENT_TYPES.has(effectiveParent.type) && !(node.parent.right === node)) {
report(node);
}
diff --git a/tools/node_modules/eslint/lib/rules/capitalized-comments.js b/tools/node_modules/eslint/lib/rules/capitalized-comments.js
index 1a27608067..19b5f6a717 100644
--- a/tools/node_modules/eslint/lib/rules/capitalized-comments.js
+++ b/tools/node_modules/eslint/lib/rules/capitalized-comments.js
@@ -113,7 +113,8 @@ module.exports = {
docs: {
description: "enforce or disallow capitalization of the first letter of a comment",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/capitalized-comments"
},
fixable: "code",
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/class-methods-use-this.js b/tools/node_modules/eslint/lib/rules/class-methods-use-this.js
index d429c579b9..774086780a 100644
--- a/tools/node_modules/eslint/lib/rules/class-methods-use-this.js
+++ b/tools/node_modules/eslint/lib/rules/class-methods-use-this.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "enforce that class methods utilize `this`",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/class-methods-use-this"
},
schema: [{
type: "object",
diff --git a/tools/node_modules/eslint/lib/rules/comma-dangle.js b/tools/node_modules/eslint/lib/rules/comma-dangle.js
index ddcc0cd229..180979d403 100644
--- a/tools/node_modules/eslint/lib/rules/comma-dangle.js
+++ b/tools/node_modules/eslint/lib/rules/comma-dangle.js
@@ -79,7 +79,8 @@ module.exports = {
docs: {
description: "require or disallow trailing commas",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/comma-dangle"
},
fixable: "code",
schema: {
diff --git a/tools/node_modules/eslint/lib/rules/comma-spacing.js b/tools/node_modules/eslint/lib/rules/comma-spacing.js
index 25a0e7d82c..dd3de7f354 100644
--- a/tools/node_modules/eslint/lib/rules/comma-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/comma-spacing.js
@@ -15,7 +15,8 @@ module.exports = {
docs: {
description: "enforce consistent spacing before and after commas",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/comma-spacing"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/comma-style.js b/tools/node_modules/eslint/lib/rules/comma-style.js
index 4c65338a44..8b96e5e25a 100644
--- a/tools/node_modules/eslint/lib/rules/comma-style.js
+++ b/tools/node_modules/eslint/lib/rules/comma-style.js
@@ -16,7 +16,8 @@ module.exports = {
docs: {
description: "enforce consistent comma style",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/comma-style"
},
fixable: "code",
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/complexity.js b/tools/node_modules/eslint/lib/rules/complexity.js
index e0313fa78f..1838d4bf8e 100644
--- a/tools/node_modules/eslint/lib/rules/complexity.js
+++ b/tools/node_modules/eslint/lib/rules/complexity.js
@@ -23,7 +23,8 @@ module.exports = {
docs: {
description: "enforce a maximum cyclomatic complexity allowed in a program",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/complexity"
},
schema: [
@@ -126,20 +127,6 @@ module.exports = {
}
}
- /**
- * Increase the logical path complexity in context
- * @param {ASTNode} node node to evaluate
- * @returns {void}
- * @private
- */
- function increaseLogicalComplexity(node) {
-
- // Avoiding &&
- if (node.operator === "||") {
- increaseComplexity();
- }
- }
-
//--------------------------------------------------------------------------
// Public API
//--------------------------------------------------------------------------
@@ -154,7 +141,7 @@ module.exports = {
CatchClause: increaseComplexity,
ConditionalExpression: increaseComplexity,
- LogicalExpression: increaseLogicalComplexity,
+ LogicalExpression: increaseComplexity,
ForStatement: increaseComplexity,
ForInStatement: increaseComplexity,
ForOfStatement: increaseComplexity,
diff --git a/tools/node_modules/eslint/lib/rules/computed-property-spacing.js b/tools/node_modules/eslint/lib/rules/computed-property-spacing.js
index 19c28fd22e..57408afb45 100644
--- a/tools/node_modules/eslint/lib/rules/computed-property-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/computed-property-spacing.js
@@ -15,7 +15,8 @@ module.exports = {
docs: {
description: "enforce consistent spacing inside computed property brackets",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/computed-property-spacing"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/consistent-return.js b/tools/node_modules/eslint/lib/rules/consistent-return.js
index a42faaa1ed..a436dd1fc0 100644
--- a/tools/node_modules/eslint/lib/rules/consistent-return.js
+++ b/tools/node_modules/eslint/lib/rules/consistent-return.js
@@ -56,7 +56,8 @@ module.exports = {
docs: {
description: "require `return` statements to either always or never specify values",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/consistent-return"
},
schema: [{
diff --git a/tools/node_modules/eslint/lib/rules/consistent-this.js b/tools/node_modules/eslint/lib/rules/consistent-this.js
index 151cdcf9c9..60690007f2 100644
--- a/tools/node_modules/eslint/lib/rules/consistent-this.js
+++ b/tools/node_modules/eslint/lib/rules/consistent-this.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "enforce consistent naming when capturing the current execution context",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/consistent-this"
},
schema: {
diff --git a/tools/node_modules/eslint/lib/rules/constructor-super.js b/tools/node_modules/eslint/lib/rules/constructor-super.js
index d0a238df8e..30637472f1 100644
--- a/tools/node_modules/eslint/lib/rules/constructor-super.js
+++ b/tools/node_modules/eslint/lib/rules/constructor-super.js
@@ -95,7 +95,8 @@ module.exports = {
docs: {
description: "require `super()` calls in constructors",
category: "ECMAScript 6",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/constructor-super"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/curly.js b/tools/node_modules/eslint/lib/rules/curly.js
index 37f07d95ee..7fdf57eda1 100644
--- a/tools/node_modules/eslint/lib/rules/curly.js
+++ b/tools/node_modules/eslint/lib/rules/curly.js
@@ -19,7 +19,8 @@ module.exports = {
docs: {
description: "enforce consistent brace style for all control statements",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/curly"
},
schema: {
diff --git a/tools/node_modules/eslint/lib/rules/default-case.js b/tools/node_modules/eslint/lib/rules/default-case.js
index 32cd8dfe49..a66300a99b 100644
--- a/tools/node_modules/eslint/lib/rules/default-case.js
+++ b/tools/node_modules/eslint/lib/rules/default-case.js
@@ -15,7 +15,8 @@ module.exports = {
docs: {
description: "require `default` cases in `switch` statements",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/default-case"
},
schema: [{
diff --git a/tools/node_modules/eslint/lib/rules/dot-location.js b/tools/node_modules/eslint/lib/rules/dot-location.js
index 60f4af7013..c02476e035 100644
--- a/tools/node_modules/eslint/lib/rules/dot-location.js
+++ b/tools/node_modules/eslint/lib/rules/dot-location.js
@@ -16,7 +16,8 @@ module.exports = {
docs: {
description: "enforce consistent newlines before and after dots",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/dot-location"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/dot-notation.js b/tools/node_modules/eslint/lib/rules/dot-notation.js
index 21e3df1741..10c73b41f0 100644
--- a/tools/node_modules/eslint/lib/rules/dot-notation.js
+++ b/tools/node_modules/eslint/lib/rules/dot-notation.js
@@ -22,7 +22,8 @@ module.exports = {
docs: {
description: "enforce dot notation whenever possible",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/dot-notation"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/eol-last.js b/tools/node_modules/eslint/lib/rules/eol-last.js
index 1f3676b0e9..f96352676c 100644
--- a/tools/node_modules/eslint/lib/rules/eol-last.js
+++ b/tools/node_modules/eslint/lib/rules/eol-last.js
@@ -19,7 +19,8 @@ module.exports = {
docs: {
description: "require or disallow newline at the end of files",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/eol-last"
},
fixable: "whitespace",
schema: [
@@ -46,6 +47,14 @@ module.exports = {
CRLF = `\r${LF}`,
endsWithNewline = lodash.endsWith(src, LF);
+ /*
+ * Empty source is always valid: No content in file so we don't
+ * need to lint for a newline on the last line of content.
+ */
+ if (!src.length) {
+ return;
+ }
+
let mode = context.options[0] || "always",
appendCRLF = false;
diff --git a/tools/node_modules/eslint/lib/rules/eqeqeq.js b/tools/node_modules/eslint/lib/rules/eqeqeq.js
index 8801102e64..fc65450af4 100644
--- a/tools/node_modules/eslint/lib/rules/eqeqeq.js
+++ b/tools/node_modules/eslint/lib/rules/eqeqeq.js
@@ -20,7 +20,8 @@ module.exports = {
docs: {
description: "require the use of `===` and `!==`",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/eqeqeq"
},
schema: {
diff --git a/tools/node_modules/eslint/lib/rules/for-direction.js b/tools/node_modules/eslint/lib/rules/for-direction.js
index 7178ced9db..c91888da22 100644
--- a/tools/node_modules/eslint/lib/rules/for-direction.js
+++ b/tools/node_modules/eslint/lib/rules/for-direction.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "enforce \"for\" loop update clause moving the counter in the right direction.",
category: "Possible Errors",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/for-direction"
},
fixable: null,
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/func-call-spacing.js b/tools/node_modules/eslint/lib/rules/func-call-spacing.js
index 00e677d33b..b13613cf80 100644
--- a/tools/node_modules/eslint/lib/rules/func-call-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/func-call-spacing.js
@@ -20,7 +20,8 @@ module.exports = {
docs: {
description: "require or disallow spacing between function identifiers and their invocations",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/func-call-spacing"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/func-name-matching.js b/tools/node_modules/eslint/lib/rules/func-name-matching.js
index db06d5d468..85fd7d4f1e 100644
--- a/tools/node_modules/eslint/lib/rules/func-name-matching.js
+++ b/tools/node_modules/eslint/lib/rules/func-name-matching.js
@@ -70,7 +70,8 @@ module.exports = {
docs: {
description: "require function names to match the name of the variable or property to which they are assigned",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/func-name-matching"
},
schema: {
diff --git a/tools/node_modules/eslint/lib/rules/func-names.js b/tools/node_modules/eslint/lib/rules/func-names.js
index 848ce97574..722f276c1d 100644
--- a/tools/node_modules/eslint/lib/rules/func-names.js
+++ b/tools/node_modules/eslint/lib/rules/func-names.js
@@ -29,7 +29,8 @@ module.exports = {
docs: {
description: "require or disallow named `function` expressions",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/func-names"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/func-style.js b/tools/node_modules/eslint/lib/rules/func-style.js
index 123eae3d8a..ea6d74fb3a 100644
--- a/tools/node_modules/eslint/lib/rules/func-style.js
+++ b/tools/node_modules/eslint/lib/rules/func-style.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "enforce the consistent use of either `function` declarations or expressions",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/func-style"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/function-paren-newline.js b/tools/node_modules/eslint/lib/rules/function-paren-newline.js
index 10ad960a4d..7e4f2792cf 100644
--- a/tools/node_modules/eslint/lib/rules/function-paren-newline.js
+++ b/tools/node_modules/eslint/lib/rules/function-paren-newline.js
@@ -19,7 +19,8 @@ module.exports = {
docs: {
description: "enforce consistent line breaks inside function parentheses",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/function-paren-newline"
},
fixable: "whitespace",
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/generator-star-spacing.js b/tools/node_modules/eslint/lib/rules/generator-star-spacing.js
index a718b59afc..282b37510b 100644
--- a/tools/node_modules/eslint/lib/rules/generator-star-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/generator-star-spacing.js
@@ -30,7 +30,8 @@ module.exports = {
docs: {
description: "enforce consistent spacing around `*` operators in generator functions",
category: "ECMAScript 6",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/generator-star-spacing"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/getter-return.js b/tools/node_modules/eslint/lib/rules/getter-return.js
index 6eb1efc00c..58f2a3978b 100644
--- a/tools/node_modules/eslint/lib/rules/getter-return.js
+++ b/tools/node_modules/eslint/lib/rules/getter-return.js
@@ -47,7 +47,8 @@ module.exports = {
docs: {
description: "enforce `return` statements in getters",
category: "Possible Errors",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/getter-return"
},
fixable: null,
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/global-require.js b/tools/node_modules/eslint/lib/rules/global-require.js
index beda8d99f1..a5f5335d01 100644
--- a/tools/node_modules/eslint/lib/rules/global-require.js
+++ b/tools/node_modules/eslint/lib/rules/global-require.js
@@ -51,7 +51,8 @@ module.exports = {
docs: {
description: "require `require()` calls to be placed at top-level module scope",
category: "Node.js and CommonJS",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/global-require"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/guard-for-in.js b/tools/node_modules/eslint/lib/rules/guard-for-in.js
index 754830f6a6..88a9106b3f 100644
--- a/tools/node_modules/eslint/lib/rules/guard-for-in.js
+++ b/tools/node_modules/eslint/lib/rules/guard-for-in.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "require `for-in` loops to include an `if` statement",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/guard-for-in"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/handle-callback-err.js b/tools/node_modules/eslint/lib/rules/handle-callback-err.js
index de36a0c1b0..f6e6c108ce 100644
--- a/tools/node_modules/eslint/lib/rules/handle-callback-err.js
+++ b/tools/node_modules/eslint/lib/rules/handle-callback-err.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "require error handling in callbacks",
category: "Node.js and CommonJS",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/handle-callback-err"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/id-blacklist.js b/tools/node_modules/eslint/lib/rules/id-blacklist.js
index ee28c0b5a8..ba9b5d4b39 100644
--- a/tools/node_modules/eslint/lib/rules/id-blacklist.js
+++ b/tools/node_modules/eslint/lib/rules/id-blacklist.js
@@ -15,7 +15,8 @@ module.exports = {
docs: {
description: "disallow specified identifiers",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/id-blacklist"
},
schema: {
diff --git a/tools/node_modules/eslint/lib/rules/id-length.js b/tools/node_modules/eslint/lib/rules/id-length.js
index dad9c40649..eaed26217d 100644
--- a/tools/node_modules/eslint/lib/rules/id-length.js
+++ b/tools/node_modules/eslint/lib/rules/id-length.js
@@ -15,7 +15,8 @@ module.exports = {
docs: {
description: "enforce minimum and maximum identifier lengths",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/id-length"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/id-match.js b/tools/node_modules/eslint/lib/rules/id-match.js
index 0420fdc74e..608ef17d11 100644
--- a/tools/node_modules/eslint/lib/rules/id-match.js
+++ b/tools/node_modules/eslint/lib/rules/id-match.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "require identifiers to match a specified regular expression",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/id-match"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js b/tools/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js
index b8802f4de5..a7ad1122b5 100644
--- a/tools/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js
+++ b/tools/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js
@@ -12,7 +12,8 @@ module.exports = {
docs: {
description: "enforce the location of arrow function bodies",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/implicit-arrow-linebreak"
},
fixable: "whitespace",
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/indent-legacy.js b/tools/node_modules/eslint/lib/rules/indent-legacy.js
index cf91406806..701cf01632 100644
--- a/tools/node_modules/eslint/lib/rules/indent-legacy.js
+++ b/tools/node_modules/eslint/lib/rules/indent-legacy.js
@@ -25,7 +25,8 @@ module.exports = {
description: "enforce consistent indentation",
category: "Stylistic Issues",
recommended: false,
- replacedBy: ["indent"]
+ replacedBy: ["indent"],
+ url: "https://eslint.org/docs/rules/indent-legacy"
},
deprecated: true,
diff --git a/tools/node_modules/eslint/lib/rules/indent.js b/tools/node_modules/eslint/lib/rules/indent.js
index 42cebf9ea5..2159880f88 100644
--- a/tools/node_modules/eslint/lib/rules/indent.js
+++ b/tools/node_modules/eslint/lib/rules/indent.js
@@ -492,7 +492,8 @@ module.exports = {
docs: {
description: "enforce consistent indentation",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/indent"
},
fixable: "whitespace",
@@ -600,6 +601,9 @@ module.exports = {
pattern: ":exit$"
}
}
+ },
+ ignoreComments: {
+ type: "boolean"
}
},
additionalProperties: false
@@ -638,7 +642,8 @@ module.exports = {
ObjectExpression: 1,
ImportDeclaration: 1,
flatTernaryExpressions: false,
- ignoredNodes: []
+ ignoredNodes: [],
+ ignoreComments: false
};
if (context.options.length) {
@@ -1457,6 +1462,12 @@ module.exports = {
},
"Program:exit"() {
+ // If ignoreComments option is enabled, ignore all comment tokens.
+ if (options.ignoreComments) {
+ sourceCode.getAllComments()
+ .forEach(comment => offsets.ignoreToken(comment));
+ }
+
// Invoke the queued offset listeners for the nodes that aren't ignored.
listenerCallQueue
.filter(nodeInfo => !ignoredNodes.has(nodeInfo.node))
diff --git a/tools/node_modules/eslint/lib/rules/init-declarations.js b/tools/node_modules/eslint/lib/rules/init-declarations.js
index 1f53f3dfc4..412b96dc0a 100644
--- a/tools/node_modules/eslint/lib/rules/init-declarations.js
+++ b/tools/node_modules/eslint/lib/rules/init-declarations.js
@@ -47,7 +47,8 @@ module.exports = {
docs: {
description: "require or disallow initialization in variable declarations",
category: "Variables",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/init-declarations"
},
schema: {
diff --git a/tools/node_modules/eslint/lib/rules/jsx-quotes.js b/tools/node_modules/eslint/lib/rules/jsx-quotes.js
index 5653922d94..54ec481a80 100644
--- a/tools/node_modules/eslint/lib/rules/jsx-quotes.js
+++ b/tools/node_modules/eslint/lib/rules/jsx-quotes.js
@@ -41,7 +41,8 @@ module.exports = {
docs: {
description: "enforce the consistent use of either double or single quotes in JSX attributes",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/jsx-quotes"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/key-spacing.js b/tools/node_modules/eslint/lib/rules/key-spacing.js
index 1c62ad4289..1ae4990a59 100644
--- a/tools/node_modules/eslint/lib/rules/key-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/key-spacing.js
@@ -131,7 +131,8 @@ module.exports = {
docs: {
description: "enforce consistent spacing between keys and values in object literal properties",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/key-spacing"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/keyword-spacing.js b/tools/node_modules/eslint/lib/rules/keyword-spacing.js
index 218cfd02be..d0dd640255 100644
--- a/tools/node_modules/eslint/lib/rules/keyword-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/keyword-spacing.js
@@ -68,7 +68,8 @@ module.exports = {
docs: {
description: "enforce consistent spacing before and after keywords",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/keyword-spacing"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/line-comment-position.js b/tools/node_modules/eslint/lib/rules/line-comment-position.js
index 0df806cca8..ebdb024f6e 100644
--- a/tools/node_modules/eslint/lib/rules/line-comment-position.js
+++ b/tools/node_modules/eslint/lib/rules/line-comment-position.js
@@ -15,7 +15,8 @@ module.exports = {
docs: {
description: "enforce position of line comments",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/line-comment-position"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/linebreak-style.js b/tools/node_modules/eslint/lib/rules/linebreak-style.js
index 907bc02ec4..d5a170f730 100644
--- a/tools/node_modules/eslint/lib/rules/linebreak-style.js
+++ b/tools/node_modules/eslint/lib/rules/linebreak-style.js
@@ -20,7 +20,8 @@ module.exports = {
docs: {
description: "enforce consistent linebreak style",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/linebreak-style"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/lines-around-comment.js b/tools/node_modules/eslint/lib/rules/lines-around-comment.js
index 3df9cb86f4..5d98473be1 100644
--- a/tools/node_modules/eslint/lib/rules/lines-around-comment.js
+++ b/tools/node_modules/eslint/lib/rules/lines-around-comment.js
@@ -55,7 +55,8 @@ module.exports = {
docs: {
description: "require empty lines around comments",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/lines-around-comment"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/lines-around-directive.js b/tools/node_modules/eslint/lib/rules/lines-around-directive.js
index b560009f71..3ba3ab5bb3 100644
--- a/tools/node_modules/eslint/lib/rules/lines-around-directive.js
+++ b/tools/node_modules/eslint/lib/rules/lines-around-directive.js
@@ -18,7 +18,8 @@ module.exports = {
description: "require or disallow newlines around directives",
category: "Stylistic Issues",
recommended: false,
- replacedBy: ["padding-line-between-statements"]
+ replacedBy: ["padding-line-between-statements"],
+ url: "https://eslint.org/docs/rules/lines-around-directive"
},
schema: [{
oneOf: [
diff --git a/tools/node_modules/eslint/lib/rules/lines-between-class-members.js b/tools/node_modules/eslint/lib/rules/lines-between-class-members.js
index 85e8c69358..252984da5a 100644
--- a/tools/node_modules/eslint/lib/rules/lines-between-class-members.js
+++ b/tools/node_modules/eslint/lib/rules/lines-between-class-members.js
@@ -15,7 +15,8 @@ module.exports = {
docs: {
description: "require or disallow an empty line between class members",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/lines-between-class-members"
},
fixable: "whitespace",
@@ -55,7 +56,56 @@ module.exports = {
* @returns {boolean} True if there is at least a line between the tokens
*/
function isPaddingBetweenTokens(first, second) {
- return second.loc.start.line - first.loc.end.line >= 2;
+ const comments = sourceCode.getCommentsBefore(second);
+ const len = comments.length;
+
+ // If there is no comments
+ if (len === 0) {
+ const linesBetweenFstAndSnd = second.loc.start.line - first.loc.end.line - 1;
+
+ return linesBetweenFstAndSnd >= 1;
+ }
+
+
+ // If there are comments
+ let sumOfCommentLines = 0; // the numbers of lines of comments
+ let prevCommentLineNum = -1; // line number of the end of the previous comment
+
+ for (let i = 0; i < len; i++) {
+ const commentLinesOfThisComment = comments[i].loc.end.line - comments[i].loc.start.line + 1;
+
+ sumOfCommentLines += commentLinesOfThisComment;
+
+ /*
+ * If this comment and the previous comment are in the same line,
+ * the count of comment lines is duplicated. So decrement sumOfCommentLines.
+ */
+ if (prevCommentLineNum === comments[i].loc.start.line) {
+ sumOfCommentLines -= 1;
+ }
+
+ prevCommentLineNum = comments[i].loc.end.line;
+ }
+
+ /*
+ * If the first block and the first comment are in the same line,
+ * the count of comment lines is duplicated. So decrement sumOfCommentLines.
+ */
+ if (first.loc.end.line === comments[0].loc.start.line) {
+ sumOfCommentLines -= 1;
+ }
+
+ /*
+ * If the last comment and the second block are in the same line,
+ * the count of comment lines is duplicated. So decrement sumOfCommentLines.
+ */
+ if (comments[len - 1].loc.end.line === second.loc.start.line) {
+ sumOfCommentLines -= 1;
+ }
+
+ const linesBetweenFstAndSnd = second.loc.start.line - first.loc.end.line - 1;
+
+ return linesBetweenFstAndSnd - sumOfCommentLines >= 1;
}
return {
@@ -65,8 +115,7 @@ module.exports = {
for (let i = 0; i < body.length - 1; i++) {
const curFirst = sourceCode.getFirstToken(body[i]);
const curLast = sourceCode.getLastToken(body[i]);
- const comments = sourceCode.getCommentsBefore(body[i + 1]);
- const nextFirst = comments.length ? comments[0] : sourceCode.getFirstToken(body[i + 1]);
+ const nextFirst = sourceCode.getFirstToken(body[i + 1]);
const isPadded = isPaddingBetweenTokens(curLast, nextFirst);
const isMulti = !astUtils.isTokenOnSameLine(curFirst, curLast);
const skip = !isMulti && options[1].exceptAfterSingleLine;
diff --git a/tools/node_modules/eslint/lib/rules/max-depth.js b/tools/node_modules/eslint/lib/rules/max-depth.js
index 74c13ffa9f..ead44b90cb 100644
--- a/tools/node_modules/eslint/lib/rules/max-depth.js
+++ b/tools/node_modules/eslint/lib/rules/max-depth.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "enforce a maximum depth that blocks can be nested",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/max-depth"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/max-len.js b/tools/node_modules/eslint/lib/rules/max-len.js
index 27d549c9c5..35ac803b65 100644
--- a/tools/node_modules/eslint/lib/rules/max-len.js
+++ b/tools/node_modules/eslint/lib/rules/max-len.js
@@ -68,7 +68,8 @@ module.exports = {
docs: {
description: "enforce a maximum line length",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/max-len"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/max-lines.js b/tools/node_modules/eslint/lib/rules/max-lines.js
index 297c75dc13..9bb4420edc 100644
--- a/tools/node_modules/eslint/lib/rules/max-lines.js
+++ b/tools/node_modules/eslint/lib/rules/max-lines.js
@@ -20,7 +20,8 @@ module.exports = {
docs: {
description: "enforce a maximum number of lines per file",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/max-lines"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/max-nested-callbacks.js b/tools/node_modules/eslint/lib/rules/max-nested-callbacks.js
index a89f49ae02..7d7386ec1e 100644
--- a/tools/node_modules/eslint/lib/rules/max-nested-callbacks.js
+++ b/tools/node_modules/eslint/lib/rules/max-nested-callbacks.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "enforce a maximum depth that callbacks can be nested",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/max-nested-callbacks"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/max-params.js b/tools/node_modules/eslint/lib/rules/max-params.js
index 85838adacc..d7c22c5274 100644
--- a/tools/node_modules/eslint/lib/rules/max-params.js
+++ b/tools/node_modules/eslint/lib/rules/max-params.js
@@ -22,7 +22,8 @@ module.exports = {
docs: {
description: "enforce a maximum number of parameters in function definitions",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/max-params"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/max-statements-per-line.js b/tools/node_modules/eslint/lib/rules/max-statements-per-line.js
index 3d18da4ee1..a6776bdea9 100644
--- a/tools/node_modules/eslint/lib/rules/max-statements-per-line.js
+++ b/tools/node_modules/eslint/lib/rules/max-statements-per-line.js
@@ -19,7 +19,8 @@ module.exports = {
docs: {
description: "enforce a maximum number of statements allowed per line",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/max-statements-per-line"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/max-statements.js b/tools/node_modules/eslint/lib/rules/max-statements.js
index f98aa3a21d..faa0d5d844 100644
--- a/tools/node_modules/eslint/lib/rules/max-statements.js
+++ b/tools/node_modules/eslint/lib/rules/max-statements.js
@@ -22,7 +22,8 @@ module.exports = {
docs: {
description: "enforce a maximum number of statements allowed in function blocks",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/max-statements"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/multiline-comment-style.js b/tools/node_modules/eslint/lib/rules/multiline-comment-style.js
index db4f768443..4da9a619fc 100644
--- a/tools/node_modules/eslint/lib/rules/multiline-comment-style.js
+++ b/tools/node_modules/eslint/lib/rules/multiline-comment-style.js
@@ -15,7 +15,8 @@ module.exports = {
docs: {
description: "enforce a particular style for multiline comments",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/multiline-comment-style"
},
fixable: "whitespace",
schema: [{ enum: ["starred-block", "separate-lines", "bare-block"] }]
diff --git a/tools/node_modules/eslint/lib/rules/multiline-ternary.js b/tools/node_modules/eslint/lib/rules/multiline-ternary.js
index a74f241d86..10cf269fb1 100644
--- a/tools/node_modules/eslint/lib/rules/multiline-ternary.js
+++ b/tools/node_modules/eslint/lib/rules/multiline-ternary.js
@@ -16,7 +16,8 @@ module.exports = {
docs: {
description: "enforce newlines between operands of ternary expressions",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/multiline-ternary"
},
schema: [
{
diff --git a/tools/node_modules/eslint/lib/rules/new-cap.js b/tools/node_modules/eslint/lib/rules/new-cap.js
index f01e8f90ac..cc33e3b817 100644
--- a/tools/node_modules/eslint/lib/rules/new-cap.js
+++ b/tools/node_modules/eslint/lib/rules/new-cap.js
@@ -77,7 +77,8 @@ module.exports = {
docs: {
description: "require constructor names to begin with a capital letter",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/new-cap"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/new-parens.js b/tools/node_modules/eslint/lib/rules/new-parens.js
index aa0f7fe931..abf2e032b7 100644
--- a/tools/node_modules/eslint/lib/rules/new-parens.js
+++ b/tools/node_modules/eslint/lib/rules/new-parens.js
@@ -24,7 +24,8 @@ module.exports = {
docs: {
description: "require parentheses when invoking a constructor with no arguments",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/new-parens"
},
schema: [],
diff --git a/tools/node_modules/eslint/lib/rules/newline-after-var.js b/tools/node_modules/eslint/lib/rules/newline-after-var.js
index 80f73c836f..b11d9d9952 100644
--- a/tools/node_modules/eslint/lib/rules/newline-after-var.js
+++ b/tools/node_modules/eslint/lib/rules/newline-after-var.js
@@ -22,7 +22,8 @@ module.exports = {
description: "require or disallow an empty line after variable declarations",
category: "Stylistic Issues",
recommended: false,
- replacedBy: ["padding-line-between-statements"]
+ replacedBy: ["padding-line-between-statements"],
+ url: "https://eslint.org/docs/rules/newline-after-var"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/newline-before-return.js b/tools/node_modules/eslint/lib/rules/newline-before-return.js
index 02bd66db13..5bc1f7031b 100644
--- a/tools/node_modules/eslint/lib/rules/newline-before-return.js
+++ b/tools/node_modules/eslint/lib/rules/newline-before-return.js
@@ -15,7 +15,8 @@ module.exports = {
description: "require an empty line before `return` statements",
category: "Stylistic Issues",
recommended: false,
- replacedBy: ["padding-line-between-statements"]
+ replacedBy: ["padding-line-between-statements"],
+ url: "https://eslint.org/docs/rules/newline-before-return"
},
fixable: "whitespace",
schema: [],
diff --git a/tools/node_modules/eslint/lib/rules/newline-per-chained-call.js b/tools/node_modules/eslint/lib/rules/newline-per-chained-call.js
index 356c4baf32..9691da44e0 100644
--- a/tools/node_modules/eslint/lib/rules/newline-per-chained-call.js
+++ b/tools/node_modules/eslint/lib/rules/newline-per-chained-call.js
@@ -17,7 +17,8 @@ module.exports = {
docs: {
description: "require a newline after each call in a method chain",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/newline-per-chained-call"
},
fixable: "whitespace",
schema: [{
diff --git a/tools/node_modules/eslint/lib/rules/no-alert.js b/tools/node_modules/eslint/lib/rules/no-alert.js
index bc1087253b..b4fd231215 100644
--- a/tools/node_modules/eslint/lib/rules/no-alert.js
+++ b/tools/node_modules/eslint/lib/rules/no-alert.js
@@ -88,7 +88,8 @@ module.exports = {
docs: {
description: "disallow the use of `alert`, `confirm`, and `prompt`",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-alert"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-array-constructor.js b/tools/node_modules/eslint/lib/rules/no-array-constructor.js
index 70dc8b4cd5..187389fdff 100644
--- a/tools/node_modules/eslint/lib/rules/no-array-constructor.js
+++ b/tools/node_modules/eslint/lib/rules/no-array-constructor.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow `Array` constructors",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-array-constructor"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-await-in-loop.js b/tools/node_modules/eslint/lib/rules/no-await-in-loop.js
index d1ed92b704..7d4f8a0a6b 100644
--- a/tools/node_modules/eslint/lib/rules/no-await-in-loop.js
+++ b/tools/node_modules/eslint/lib/rules/no-await-in-loop.js
@@ -28,7 +28,8 @@ module.exports = {
docs: {
description: "disallow `await` inside of loops",
category: "Possible Errors",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-await-in-loop"
},
schema: []
},
diff --git a/tools/node_modules/eslint/lib/rules/no-bitwise.js b/tools/node_modules/eslint/lib/rules/no-bitwise.js
index f062ad2669..8376674f65 100644
--- a/tools/node_modules/eslint/lib/rules/no-bitwise.js
+++ b/tools/node_modules/eslint/lib/rules/no-bitwise.js
@@ -25,7 +25,8 @@ module.exports = {
docs: {
description: "disallow bitwise operators",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-bitwise"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-buffer-constructor.js b/tools/node_modules/eslint/lib/rules/no-buffer-constructor.js
index 1521ff2847..55f181ee69 100644
--- a/tools/node_modules/eslint/lib/rules/no-buffer-constructor.js
+++ b/tools/node_modules/eslint/lib/rules/no-buffer-constructor.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "disallow use of the Buffer() constructor",
category: "Node.js and CommonJS",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-buffer-constructor"
},
schema: []
},
diff --git a/tools/node_modules/eslint/lib/rules/no-caller.js b/tools/node_modules/eslint/lib/rules/no-caller.js
index 55a37b7d86..df10bf3736 100644
--- a/tools/node_modules/eslint/lib/rules/no-caller.js
+++ b/tools/node_modules/eslint/lib/rules/no-caller.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow the use of `arguments.caller` or `arguments.callee`",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-caller"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-case-declarations.js b/tools/node_modules/eslint/lib/rules/no-case-declarations.js
index e801c6bb6e..03c730ddbd 100644
--- a/tools/node_modules/eslint/lib/rules/no-case-declarations.js
+++ b/tools/node_modules/eslint/lib/rules/no-case-declarations.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "disallow lexical declarations in case clauses",
category: "Best Practices",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-case-declarations"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-catch-shadow.js b/tools/node_modules/eslint/lib/rules/no-catch-shadow.js
index bef61902e9..69a4e6aff8 100644
--- a/tools/node_modules/eslint/lib/rules/no-catch-shadow.js
+++ b/tools/node_modules/eslint/lib/rules/no-catch-shadow.js
@@ -20,7 +20,8 @@ module.exports = {
docs: {
description: "disallow `catch` clause parameters from shadowing variables in the outer scope",
category: "Variables",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-catch-shadow"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-class-assign.js b/tools/node_modules/eslint/lib/rules/no-class-assign.js
index 4b0443abc7..56e75122a2 100644
--- a/tools/node_modules/eslint/lib/rules/no-class-assign.js
+++ b/tools/node_modules/eslint/lib/rules/no-class-assign.js
@@ -16,7 +16,8 @@ module.exports = {
docs: {
description: "disallow reassigning class members",
category: "ECMAScript 6",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-class-assign"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-compare-neg-zero.js b/tools/node_modules/eslint/lib/rules/no-compare-neg-zero.js
index 604e221919..09cf295063 100644
--- a/tools/node_modules/eslint/lib/rules/no-compare-neg-zero.js
+++ b/tools/node_modules/eslint/lib/rules/no-compare-neg-zero.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "disallow comparing against -0",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-compare-neg-zero"
},
fixable: null,
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-cond-assign.js b/tools/node_modules/eslint/lib/rules/no-cond-assign.js
index 7c031c13f0..e761be14ec 100644
--- a/tools/node_modules/eslint/lib/rules/no-cond-assign.js
+++ b/tools/node_modules/eslint/lib/rules/no-cond-assign.js
@@ -22,7 +22,8 @@ module.exports = {
docs: {
description: "disallow assignment operators in conditional expressions",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-cond-assign"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-confusing-arrow.js b/tools/node_modules/eslint/lib/rules/no-confusing-arrow.js
index fc69ca39a9..542a4060e2 100644
--- a/tools/node_modules/eslint/lib/rules/no-confusing-arrow.js
+++ b/tools/node_modules/eslint/lib/rules/no-confusing-arrow.js
@@ -30,7 +30,8 @@ module.exports = {
docs: {
description: "disallow arrow functions where they could be confused with comparisons",
category: "ECMAScript 6",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-confusing-arrow"
},
fixable: "code",
diff --git a/tools/node_modules/eslint/lib/rules/no-console.js b/tools/node_modules/eslint/lib/rules/no-console.js
index f5a3a235e6..b00582ebad 100644
--- a/tools/node_modules/eslint/lib/rules/no-console.js
+++ b/tools/node_modules/eslint/lib/rules/no-console.js
@@ -20,7 +20,8 @@ module.exports = {
docs: {
description: "disallow the use of `console`",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-console"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-const-assign.js b/tools/node_modules/eslint/lib/rules/no-const-assign.js
index db1848a981..8a08a52df4 100644
--- a/tools/node_modules/eslint/lib/rules/no-const-assign.js
+++ b/tools/node_modules/eslint/lib/rules/no-const-assign.js
@@ -16,7 +16,8 @@ module.exports = {
docs: {
description: "disallow reassigning `const` variables",
category: "ECMAScript 6",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-const-assign"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-constant-condition.js b/tools/node_modules/eslint/lib/rules/no-constant-condition.js
index 0cd445dfdb..5611d617ec 100644
--- a/tools/node_modules/eslint/lib/rules/no-constant-condition.js
+++ b/tools/node_modules/eslint/lib/rules/no-constant-condition.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow constant expressions in conditions",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-constant-condition"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-continue.js b/tools/node_modules/eslint/lib/rules/no-continue.js
index 2615fba13e..52061ef532 100644
--- a/tools/node_modules/eslint/lib/rules/no-continue.js
+++ b/tools/node_modules/eslint/lib/rules/no-continue.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow `continue` statements",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-continue"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-control-regex.js b/tools/node_modules/eslint/lib/rules/no-control-regex.js
index 14981f4ab1..676c666128 100644
--- a/tools/node_modules/eslint/lib/rules/no-control-regex.js
+++ b/tools/node_modules/eslint/lib/rules/no-control-regex.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow control characters in regular expressions",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-control-regex"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-debugger.js b/tools/node_modules/eslint/lib/rules/no-debugger.js
index d79cb18166..7d816e3a00 100644
--- a/tools/node_modules/eslint/lib/rules/no-debugger.js
+++ b/tools/node_modules/eslint/lib/rules/no-debugger.js
@@ -16,7 +16,8 @@ module.exports = {
docs: {
description: "disallow the use of `debugger`",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-debugger"
},
fixable: "code",
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-delete-var.js b/tools/node_modules/eslint/lib/rules/no-delete-var.js
index adc1b5bb9c..9ca09f1dea 100644
--- a/tools/node_modules/eslint/lib/rules/no-delete-var.js
+++ b/tools/node_modules/eslint/lib/rules/no-delete-var.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow deleting variables",
category: "Variables",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-delete-var"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-div-regex.js b/tools/node_modules/eslint/lib/rules/no-div-regex.js
index 84a9b9a3aa..87423f8861 100644
--- a/tools/node_modules/eslint/lib/rules/no-div-regex.js
+++ b/tools/node_modules/eslint/lib/rules/no-div-regex.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow division operators explicitly at the beginning of regular expressions",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-div-regex"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-dupe-args.js b/tools/node_modules/eslint/lib/rules/no-dupe-args.js
index c932be01d7..a71d01f9bd 100644
--- a/tools/node_modules/eslint/lib/rules/no-dupe-args.js
+++ b/tools/node_modules/eslint/lib/rules/no-dupe-args.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow duplicate arguments in `function` definitions",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-dupe-args"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-dupe-class-members.js b/tools/node_modules/eslint/lib/rules/no-dupe-class-members.js
index 07b999fab1..cc7f8da284 100644
--- a/tools/node_modules/eslint/lib/rules/no-dupe-class-members.js
+++ b/tools/node_modules/eslint/lib/rules/no-dupe-class-members.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow duplicate class members",
category: "ECMAScript 6",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-dupe-class-members"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-dupe-keys.js b/tools/node_modules/eslint/lib/rules/no-dupe-keys.js
index 0120d0b38c..10955e4503 100644
--- a/tools/node_modules/eslint/lib/rules/no-dupe-keys.js
+++ b/tools/node_modules/eslint/lib/rules/no-dupe-keys.js
@@ -87,7 +87,8 @@ module.exports = {
docs: {
description: "disallow duplicate keys in object literals",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-dupe-keys"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-duplicate-case.js b/tools/node_modules/eslint/lib/rules/no-duplicate-case.js
index 07823f284c..2a9d955111 100644
--- a/tools/node_modules/eslint/lib/rules/no-duplicate-case.js
+++ b/tools/node_modules/eslint/lib/rules/no-duplicate-case.js
@@ -15,7 +15,8 @@ module.exports = {
docs: {
description: "disallow duplicate case labels",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-duplicate-case"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-duplicate-imports.js b/tools/node_modules/eslint/lib/rules/no-duplicate-imports.js
index d12c3a56df..32071da15f 100644
--- a/tools/node_modules/eslint/lib/rules/no-duplicate-imports.js
+++ b/tools/node_modules/eslint/lib/rules/no-duplicate-imports.js
@@ -104,7 +104,8 @@ module.exports = {
docs: {
description: "disallow duplicate module imports",
category: "ECMAScript 6",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-duplicate-imports"
},
schema: [{
diff --git a/tools/node_modules/eslint/lib/rules/no-else-return.js b/tools/node_modules/eslint/lib/rules/no-else-return.js
index deeff41ab8..91cb5b9796 100644
--- a/tools/node_modules/eslint/lib/rules/no-else-return.js
+++ b/tools/node_modules/eslint/lib/rules/no-else-return.js
@@ -21,7 +21,8 @@ module.exports = {
docs: {
description: "disallow `else` blocks after `return` statements in `if` statements",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-else-return"
},
schema: [{
diff --git a/tools/node_modules/eslint/lib/rules/no-empty-character-class.js b/tools/node_modules/eslint/lib/rules/no-empty-character-class.js
index 0ea7c5a0d1..3c4806632e 100644
--- a/tools/node_modules/eslint/lib/rules/no-empty-character-class.js
+++ b/tools/node_modules/eslint/lib/rules/no-empty-character-class.js
@@ -32,7 +32,8 @@ module.exports = {
docs: {
description: "disallow empty character classes in regular expressions",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-empty-character-class"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-empty-function.js b/tools/node_modules/eslint/lib/rules/no-empty-function.js
index 38c915c33f..3852774e6b 100644
--- a/tools/node_modules/eslint/lib/rules/no-empty-function.js
+++ b/tools/node_modules/eslint/lib/rules/no-empty-function.js
@@ -93,7 +93,8 @@ module.exports = {
docs: {
description: "disallow empty functions",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-empty-function"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-empty-pattern.js b/tools/node_modules/eslint/lib/rules/no-empty-pattern.js
index 11f50b5414..1d0c3ab4b1 100644
--- a/tools/node_modules/eslint/lib/rules/no-empty-pattern.js
+++ b/tools/node_modules/eslint/lib/rules/no-empty-pattern.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "disallow empty destructuring patterns",
category: "Best Practices",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-empty-pattern"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-empty.js b/tools/node_modules/eslint/lib/rules/no-empty.js
index b71b8582a3..15f1df6790 100644
--- a/tools/node_modules/eslint/lib/rules/no-empty.js
+++ b/tools/node_modules/eslint/lib/rules/no-empty.js
@@ -19,7 +19,8 @@ module.exports = {
docs: {
description: "disallow empty block statements",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-empty"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-eq-null.js b/tools/node_modules/eslint/lib/rules/no-eq-null.js
index 7e915a8c72..befb9d46f0 100644
--- a/tools/node_modules/eslint/lib/rules/no-eq-null.js
+++ b/tools/node_modules/eslint/lib/rules/no-eq-null.js
@@ -15,7 +15,8 @@ module.exports = {
docs: {
description: "disallow `null` comparisons without type-checking operators",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-eq-null"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-eval.js b/tools/node_modules/eslint/lib/rules/no-eval.js
index ee5f577f47..8cf4aa307b 100644
--- a/tools/node_modules/eslint/lib/rules/no-eval.js
+++ b/tools/node_modules/eslint/lib/rules/no-eval.js
@@ -79,7 +79,8 @@ module.exports = {
docs: {
description: "disallow the use of `eval()`",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-eval"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-ex-assign.js b/tools/node_modules/eslint/lib/rules/no-ex-assign.js
index 20869d5cd1..6ede2fc210 100644
--- a/tools/node_modules/eslint/lib/rules/no-ex-assign.js
+++ b/tools/node_modules/eslint/lib/rules/no-ex-assign.js
@@ -16,7 +16,8 @@ module.exports = {
docs: {
description: "disallow reassigning exceptions in `catch` clauses",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-ex-assign"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-extend-native.js b/tools/node_modules/eslint/lib/rules/no-extend-native.js
index c550cf5da5..2e170017a8 100644
--- a/tools/node_modules/eslint/lib/rules/no-extend-native.js
+++ b/tools/node_modules/eslint/lib/rules/no-extend-native.js
@@ -27,7 +27,8 @@ module.exports = {
docs: {
description: "disallow extending native types",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-extend-native"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-extra-bind.js b/tools/node_modules/eslint/lib/rules/no-extra-bind.js
index 2d22eff245..21b96c3c26 100644
--- a/tools/node_modules/eslint/lib/rules/no-extra-bind.js
+++ b/tools/node_modules/eslint/lib/rules/no-extra-bind.js
@@ -19,7 +19,8 @@ module.exports = {
docs: {
description: "disallow unnecessary calls to `.bind()`",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-extra-bind"
},
schema: [],
diff --git a/tools/node_modules/eslint/lib/rules/no-extra-boolean-cast.js b/tools/node_modules/eslint/lib/rules/no-extra-boolean-cast.js
index 47ca7e22fe..471e8b5b82 100644
--- a/tools/node_modules/eslint/lib/rules/no-extra-boolean-cast.js
+++ b/tools/node_modules/eslint/lib/rules/no-extra-boolean-cast.js
@@ -20,7 +20,8 @@ module.exports = {
docs: {
description: "disallow unnecessary boolean casts",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-extra-boolean-cast"
},
schema: [],
diff --git a/tools/node_modules/eslint/lib/rules/no-extra-label.js b/tools/node_modules/eslint/lib/rules/no-extra-label.js
index b89267de93..f90a403cbf 100644
--- a/tools/node_modules/eslint/lib/rules/no-extra-label.js
+++ b/tools/node_modules/eslint/lib/rules/no-extra-label.js
@@ -20,7 +20,8 @@ module.exports = {
docs: {
description: "disallow unnecessary labels",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-extra-label"
},
schema: [],
diff --git a/tools/node_modules/eslint/lib/rules/no-extra-parens.js b/tools/node_modules/eslint/lib/rules/no-extra-parens.js
index d8e0df64a7..4bf8f99500 100644
--- a/tools/node_modules/eslint/lib/rules/no-extra-parens.js
+++ b/tools/node_modules/eslint/lib/rules/no-extra-parens.js
@@ -15,7 +15,8 @@ module.exports = {
docs: {
description: "disallow unnecessary parentheses",
category: "Possible Errors",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-extra-parens"
},
fixable: "code",
@@ -582,7 +583,7 @@ module.exports = {
tokensToIgnore.add(firstLeftToken);
}
}
- if (hasExcessParens(node.right)) {
+ if (!(node.type === "ForOfStatement" && node.right.type === "SequenceExpression") && hasExcessParens(node.right)) {
report(node.right);
}
if (hasExcessParens(node.left)) {
diff --git a/tools/node_modules/eslint/lib/rules/no-extra-semi.js b/tools/node_modules/eslint/lib/rules/no-extra-semi.js
index acd312b32b..5668c7e095 100644
--- a/tools/node_modules/eslint/lib/rules/no-extra-semi.js
+++ b/tools/node_modules/eslint/lib/rules/no-extra-semi.js
@@ -21,7 +21,8 @@ module.exports = {
docs: {
description: "disallow unnecessary semicolons",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-extra-semi"
},
fixable: "code",
diff --git a/tools/node_modules/eslint/lib/rules/no-fallthrough.js b/tools/node_modules/eslint/lib/rules/no-fallthrough.js
index 082e8431d6..ce4f91ad96 100644
--- a/tools/node_modules/eslint/lib/rules/no-fallthrough.js
+++ b/tools/node_modules/eslint/lib/rules/no-fallthrough.js
@@ -58,7 +58,8 @@ module.exports = {
docs: {
description: "disallow fallthrough of `case` statements",
category: "Best Practices",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-fallthrough"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-floating-decimal.js b/tools/node_modules/eslint/lib/rules/no-floating-decimal.js
index dfba453a49..da8c479123 100644
--- a/tools/node_modules/eslint/lib/rules/no-floating-decimal.js
+++ b/tools/node_modules/eslint/lib/rules/no-floating-decimal.js
@@ -20,7 +20,8 @@ module.exports = {
docs: {
description: "disallow leading or trailing decimal points in numeric literals",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-floating-decimal"
},
schema: [],
diff --git a/tools/node_modules/eslint/lib/rules/no-func-assign.js b/tools/node_modules/eslint/lib/rules/no-func-assign.js
index ea86365b29..a0a17f3697 100644
--- a/tools/node_modules/eslint/lib/rules/no-func-assign.js
+++ b/tools/node_modules/eslint/lib/rules/no-func-assign.js
@@ -16,7 +16,8 @@ module.exports = {
docs: {
description: "disallow reassigning `function` declarations",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-func-assign"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-global-assign.js b/tools/node_modules/eslint/lib/rules/no-global-assign.js
index 679650cb70..3397bdbe00 100644
--- a/tools/node_modules/eslint/lib/rules/no-global-assign.js
+++ b/tools/node_modules/eslint/lib/rules/no-global-assign.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow assignments to native objects or read-only global variables",
category: "Best Practices",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-global-assign"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-implicit-coercion.js b/tools/node_modules/eslint/lib/rules/no-implicit-coercion.js
index 24e04858f0..7efab83935 100644
--- a/tools/node_modules/eslint/lib/rules/no-implicit-coercion.js
+++ b/tools/node_modules/eslint/lib/rules/no-implicit-coercion.js
@@ -156,7 +156,8 @@ module.exports = {
docs: {
description: "disallow shorthand type conversions",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-implicit-coercion"
},
fixable: "code",
diff --git a/tools/node_modules/eslint/lib/rules/no-implicit-globals.js b/tools/node_modules/eslint/lib/rules/no-implicit-globals.js
index f0962cdc7a..c4717b6a37 100644
--- a/tools/node_modules/eslint/lib/rules/no-implicit-globals.js
+++ b/tools/node_modules/eslint/lib/rules/no-implicit-globals.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow variable and `function` declarations in the global scope",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-implicit-globals"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-implied-eval.js b/tools/node_modules/eslint/lib/rules/no-implied-eval.js
index cfb16dbf73..de294bc885 100644
--- a/tools/node_modules/eslint/lib/rules/no-implied-eval.js
+++ b/tools/node_modules/eslint/lib/rules/no-implied-eval.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow the use of `eval()`-like methods",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-implied-eval"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-inline-comments.js b/tools/node_modules/eslint/lib/rules/no-inline-comments.js
index 42b4753dfd..85a0d38316 100644
--- a/tools/node_modules/eslint/lib/rules/no-inline-comments.js
+++ b/tools/node_modules/eslint/lib/rules/no-inline-comments.js
@@ -15,7 +15,8 @@ module.exports = {
docs: {
description: "disallow inline comments after code",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-inline-comments"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-inner-declarations.js b/tools/node_modules/eslint/lib/rules/no-inner-declarations.js
index 28aa5b4b5c..032c0a0f09 100644
--- a/tools/node_modules/eslint/lib/rules/no-inner-declarations.js
+++ b/tools/node_modules/eslint/lib/rules/no-inner-declarations.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow variable or `function` declarations in nested blocks",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-inner-declarations"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-invalid-regexp.js b/tools/node_modules/eslint/lib/rules/no-invalid-regexp.js
index 45596f7ee8..8ccb5242b0 100644
--- a/tools/node_modules/eslint/lib/rules/no-invalid-regexp.js
+++ b/tools/node_modules/eslint/lib/rules/no-invalid-regexp.js
@@ -19,7 +19,8 @@ module.exports = {
docs: {
description: "disallow invalid regular expression strings in `RegExp` constructors",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-invalid-regexp"
},
schema: [{
diff --git a/tools/node_modules/eslint/lib/rules/no-invalid-this.js b/tools/node_modules/eslint/lib/rules/no-invalid-this.js
index 5a0a62f7a1..a04673be86 100644
--- a/tools/node_modules/eslint/lib/rules/no-invalid-this.js
+++ b/tools/node_modules/eslint/lib/rules/no-invalid-this.js
@@ -20,7 +20,8 @@ module.exports = {
docs: {
description: "disallow `this` keywords outside of classes or class-like objects",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-invalid-this"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-irregular-whitespace.js b/tools/node_modules/eslint/lib/rules/no-irregular-whitespace.js
index cfbdfd1a5e..e36ec88b01 100644
--- a/tools/node_modules/eslint/lib/rules/no-irregular-whitespace.js
+++ b/tools/node_modules/eslint/lib/rules/no-irregular-whitespace.js
@@ -30,7 +30,8 @@ module.exports = {
docs: {
description: "disallow irregular whitespace outside of strings and comments",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-irregular-whitespace"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-iterator.js b/tools/node_modules/eslint/lib/rules/no-iterator.js
index 3677dd94d9..ca12fcda47 100644
--- a/tools/node_modules/eslint/lib/rules/no-iterator.js
+++ b/tools/node_modules/eslint/lib/rules/no-iterator.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow the use of the `__iterator__` property",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-iterator"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-label-var.js b/tools/node_modules/eslint/lib/rules/no-label-var.js
index 954066aef3..a880abfcab 100644
--- a/tools/node_modules/eslint/lib/rules/no-label-var.js
+++ b/tools/node_modules/eslint/lib/rules/no-label-var.js
@@ -20,7 +20,8 @@ module.exports = {
docs: {
description: "disallow labels that share a name with a variable",
category: "Variables",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-label-var"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-labels.js b/tools/node_modules/eslint/lib/rules/no-labels.js
index 101092a667..e09bb7b6ee 100644
--- a/tools/node_modules/eslint/lib/rules/no-labels.js
+++ b/tools/node_modules/eslint/lib/rules/no-labels.js
@@ -19,7 +19,8 @@ module.exports = {
docs: {
description: "disallow labeled statements",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-labels"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-lone-blocks.js b/tools/node_modules/eslint/lib/rules/no-lone-blocks.js
index 2b5666e213..5e22aacf00 100644
--- a/tools/node_modules/eslint/lib/rules/no-lone-blocks.js
+++ b/tools/node_modules/eslint/lib/rules/no-lone-blocks.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow unnecessary nested blocks",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-lone-blocks"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-lonely-if.js b/tools/node_modules/eslint/lib/rules/no-lonely-if.js
index db127d1945..3ecc41e8cf 100644
--- a/tools/node_modules/eslint/lib/rules/no-lonely-if.js
+++ b/tools/node_modules/eslint/lib/rules/no-lonely-if.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "disallow `if` statements as the only statement in `else` blocks",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-lonely-if"
},
schema: [],
diff --git a/tools/node_modules/eslint/lib/rules/no-loop-func.js b/tools/node_modules/eslint/lib/rules/no-loop-func.js
index c97e0c3c5a..0dce09a61a 100644
--- a/tools/node_modules/eslint/lib/rules/no-loop-func.js
+++ b/tools/node_modules/eslint/lib/rules/no-loop-func.js
@@ -159,7 +159,8 @@ module.exports = {
docs: {
description: "disallow `function` declarations and expressions inside loop statements",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-loop-func"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-magic-numbers.js b/tools/node_modules/eslint/lib/rules/no-magic-numbers.js
index 796ecff0f8..20a752e554 100644
--- a/tools/node_modules/eslint/lib/rules/no-magic-numbers.js
+++ b/tools/node_modules/eslint/lib/rules/no-magic-numbers.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow magic numbers",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-magic-numbers"
},
schema: [{
diff --git a/tools/node_modules/eslint/lib/rules/no-mixed-operators.js b/tools/node_modules/eslint/lib/rules/no-mixed-operators.js
index 9f1fbc9a6d..0df42259db 100644
--- a/tools/node_modules/eslint/lib/rules/no-mixed-operators.js
+++ b/tools/node_modules/eslint/lib/rules/no-mixed-operators.js
@@ -74,7 +74,8 @@ module.exports = {
docs: {
description: "disallow mixed binary operators",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-mixed-operators"
},
schema: [
{
diff --git a/tools/node_modules/eslint/lib/rules/no-mixed-requires.js b/tools/node_modules/eslint/lib/rules/no-mixed-requires.js
index 171052a52a..1058f3a511 100644
--- a/tools/node_modules/eslint/lib/rules/no-mixed-requires.js
+++ b/tools/node_modules/eslint/lib/rules/no-mixed-requires.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow `require` calls to be mixed with regular variable declarations",
category: "Node.js and CommonJS",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-mixed-requires"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js b/tools/node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js
index 2b8e89d3c8..7cb4b4ceea 100644
--- a/tools/node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js
+++ b/tools/node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "disallow mixed spaces and tabs for indentation",
category: "Stylistic Issues",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-mixed-spaces-and-tabs"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-multi-assign.js b/tools/node_modules/eslint/lib/rules/no-multi-assign.js
index 164869f6dd..ca3f778ac6 100644
--- a/tools/node_modules/eslint/lib/rules/no-multi-assign.js
+++ b/tools/node_modules/eslint/lib/rules/no-multi-assign.js
@@ -15,7 +15,8 @@ module.exports = {
docs: {
description: "disallow use of chained assignment expressions",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-multi-assign"
},
schema: []
},
diff --git a/tools/node_modules/eslint/lib/rules/no-multi-spaces.js b/tools/node_modules/eslint/lib/rules/no-multi-spaces.js
index 84f1b50189..d0ca097ad6 100644
--- a/tools/node_modules/eslint/lib/rules/no-multi-spaces.js
+++ b/tools/node_modules/eslint/lib/rules/no-multi-spaces.js
@@ -16,7 +16,8 @@ module.exports = {
docs: {
description: "disallow multiple spaces",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-multi-spaces"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/no-multi-str.js b/tools/node_modules/eslint/lib/rules/no-multi-str.js
index 76f29cbb5a..2b97c261e0 100644
--- a/tools/node_modules/eslint/lib/rules/no-multi-str.js
+++ b/tools/node_modules/eslint/lib/rules/no-multi-str.js
@@ -20,7 +20,8 @@ module.exports = {
docs: {
description: "disallow multiline strings",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-multi-str"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-multiple-empty-lines.js b/tools/node_modules/eslint/lib/rules/no-multiple-empty-lines.js
index 9d1067c205..a111786a30 100644
--- a/tools/node_modules/eslint/lib/rules/no-multiple-empty-lines.js
+++ b/tools/node_modules/eslint/lib/rules/no-multiple-empty-lines.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow multiple empty lines",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-multiple-empty-lines"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/no-native-reassign.js b/tools/node_modules/eslint/lib/rules/no-native-reassign.js
index a60d4e499c..b1064b0bb3 100644
--- a/tools/node_modules/eslint/lib/rules/no-native-reassign.js
+++ b/tools/node_modules/eslint/lib/rules/no-native-reassign.js
@@ -16,7 +16,8 @@ module.exports = {
description: "disallow assignments to native objects or read-only global variables",
category: "Best Practices",
recommended: false,
- replacedBy: ["no-global-assign"]
+ replacedBy: ["no-global-assign"],
+ url: "https://eslint.org/docs/rules/no-native-reassign"
},
deprecated: true,
diff --git a/tools/node_modules/eslint/lib/rules/no-negated-condition.js b/tools/node_modules/eslint/lib/rules/no-negated-condition.js
index 8ea8559ea1..254dcb5c23 100644
--- a/tools/node_modules/eslint/lib/rules/no-negated-condition.js
+++ b/tools/node_modules/eslint/lib/rules/no-negated-condition.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "disallow negated conditions",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-negated-condition"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-negated-in-lhs.js b/tools/node_modules/eslint/lib/rules/no-negated-in-lhs.js
index 495cbc160e..7f08814c94 100644
--- a/tools/node_modules/eslint/lib/rules/no-negated-in-lhs.js
+++ b/tools/node_modules/eslint/lib/rules/no-negated-in-lhs.js
@@ -16,7 +16,8 @@ module.exports = {
description: "disallow negating the left operand in `in` expressions",
category: "Possible Errors",
recommended: false,
- replacedBy: ["no-unsafe-negation"]
+ replacedBy: ["no-unsafe-negation"],
+ url: "https://eslint.org/docs/rules/no-negated-in-lhs"
},
deprecated: true,
diff --git a/tools/node_modules/eslint/lib/rules/no-nested-ternary.js b/tools/node_modules/eslint/lib/rules/no-nested-ternary.js
index 4fe49fc9c0..15e72f20d1 100644
--- a/tools/node_modules/eslint/lib/rules/no-nested-ternary.js
+++ b/tools/node_modules/eslint/lib/rules/no-nested-ternary.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow nested ternary expressions",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-nested-ternary"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-new-func.js b/tools/node_modules/eslint/lib/rules/no-new-func.js
index 6abbe8391d..8ee327baa1 100644
--- a/tools/node_modules/eslint/lib/rules/no-new-func.js
+++ b/tools/node_modules/eslint/lib/rules/no-new-func.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow `new` operators with the `Function` object",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-new-func"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-new-object.js b/tools/node_modules/eslint/lib/rules/no-new-object.js
index d4d77b5514..3f68cbc1b5 100644
--- a/tools/node_modules/eslint/lib/rules/no-new-object.js
+++ b/tools/node_modules/eslint/lib/rules/no-new-object.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow `Object` constructors",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-new-object"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-new-require.js b/tools/node_modules/eslint/lib/rules/no-new-require.js
index f9ea1f84bf..f74daa7569 100644
--- a/tools/node_modules/eslint/lib/rules/no-new-require.js
+++ b/tools/node_modules/eslint/lib/rules/no-new-require.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow `new` operators with calls to `require`",
category: "Node.js and CommonJS",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-new-require"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-new-symbol.js b/tools/node_modules/eslint/lib/rules/no-new-symbol.js
index 5743a4748a..a537268e38 100644
--- a/tools/node_modules/eslint/lib/rules/no-new-symbol.js
+++ b/tools/node_modules/eslint/lib/rules/no-new-symbol.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow `new` operators with the `Symbol` object",
category: "ECMAScript 6",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-new-symbol"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-new-wrappers.js b/tools/node_modules/eslint/lib/rules/no-new-wrappers.js
index 65bf79b87c..e8d516212b 100644
--- a/tools/node_modules/eslint/lib/rules/no-new-wrappers.js
+++ b/tools/node_modules/eslint/lib/rules/no-new-wrappers.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow `new` operators with the `String`, `Number`, and `Boolean` objects",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-new-wrappers"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-new.js b/tools/node_modules/eslint/lib/rules/no-new.js
index 6e6025aac5..f9121bc18f 100644
--- a/tools/node_modules/eslint/lib/rules/no-new.js
+++ b/tools/node_modules/eslint/lib/rules/no-new.js
@@ -15,7 +15,8 @@ module.exports = {
docs: {
description: "disallow `new` operators outside of assignments or comparisons",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-new"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-obj-calls.js b/tools/node_modules/eslint/lib/rules/no-obj-calls.js
index 0ca8a5effb..320343cb2c 100644
--- a/tools/node_modules/eslint/lib/rules/no-obj-calls.js
+++ b/tools/node_modules/eslint/lib/rules/no-obj-calls.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow calling global object properties as functions",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-obj-calls"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-octal-escape.js b/tools/node_modules/eslint/lib/rules/no-octal-escape.js
index 04bfb6aae3..e9509b87f8 100644
--- a/tools/node_modules/eslint/lib/rules/no-octal-escape.js
+++ b/tools/node_modules/eslint/lib/rules/no-octal-escape.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow octal escape sequences in string literals",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-octal-escape"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-octal.js b/tools/node_modules/eslint/lib/rules/no-octal.js
index 58082d0d1c..d782c23a39 100644
--- a/tools/node_modules/eslint/lib/rules/no-octal.js
+++ b/tools/node_modules/eslint/lib/rules/no-octal.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow octal literals",
category: "Best Practices",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-octal"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-param-reassign.js b/tools/node_modules/eslint/lib/rules/no-param-reassign.js
index f32e42ae2f..be1a559178 100644
--- a/tools/node_modules/eslint/lib/rules/no-param-reassign.js
+++ b/tools/node_modules/eslint/lib/rules/no-param-reassign.js
@@ -15,7 +15,8 @@ module.exports = {
docs: {
description: "disallow reassigning `function` parameters",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-param-reassign"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-path-concat.js b/tools/node_modules/eslint/lib/rules/no-path-concat.js
index 1e153a43b6..1dee7bda11 100644
--- a/tools/node_modules/eslint/lib/rules/no-path-concat.js
+++ b/tools/node_modules/eslint/lib/rules/no-path-concat.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "disallow string concatenation with `__dirname` and `__filename`",
category: "Node.js and CommonJS",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-path-concat"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-plusplus.js b/tools/node_modules/eslint/lib/rules/no-plusplus.js
index 94f259ac9e..f754b36721 100644
--- a/tools/node_modules/eslint/lib/rules/no-plusplus.js
+++ b/tools/node_modules/eslint/lib/rules/no-plusplus.js
@@ -15,7 +15,8 @@ module.exports = {
docs: {
description: "disallow the unary operators `++` and `--`",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-plusplus"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-process-env.js b/tools/node_modules/eslint/lib/rules/no-process-env.js
index ef58b38e3c..71b27ffd72 100644
--- a/tools/node_modules/eslint/lib/rules/no-process-env.js
+++ b/tools/node_modules/eslint/lib/rules/no-process-env.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "disallow the use of `process.env`",
category: "Node.js and CommonJS",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-process-env"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-process-exit.js b/tools/node_modules/eslint/lib/rules/no-process-exit.js
index 04e423b88f..2d22d7fd96 100644
--- a/tools/node_modules/eslint/lib/rules/no-process-exit.js
+++ b/tools/node_modules/eslint/lib/rules/no-process-exit.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "disallow the use of `process.exit()`",
category: "Node.js and CommonJS",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-process-exit"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-proto.js b/tools/node_modules/eslint/lib/rules/no-proto.js
index 933746f559..e37c6c22e6 100644
--- a/tools/node_modules/eslint/lib/rules/no-proto.js
+++ b/tools/node_modules/eslint/lib/rules/no-proto.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow the use of the `__proto__` property",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-proto"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-prototype-builtins.js b/tools/node_modules/eslint/lib/rules/no-prototype-builtins.js
index b9f040eaf6..f52847f44d 100644
--- a/tools/node_modules/eslint/lib/rules/no-prototype-builtins.js
+++ b/tools/node_modules/eslint/lib/rules/no-prototype-builtins.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "disallow calling some `Object.prototype` methods directly on objects",
category: "Possible Errors",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-prototype-builtins"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-redeclare.js b/tools/node_modules/eslint/lib/rules/no-redeclare.js
index ccb57003ed..79ab21137e 100644
--- a/tools/node_modules/eslint/lib/rules/no-redeclare.js
+++ b/tools/node_modules/eslint/lib/rules/no-redeclare.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow variable redeclaration",
category: "Best Practices",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-redeclare"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-regex-spaces.js b/tools/node_modules/eslint/lib/rules/no-regex-spaces.js
index 9250437caa..a50692a4c3 100644
--- a/tools/node_modules/eslint/lib/rules/no-regex-spaces.js
+++ b/tools/node_modules/eslint/lib/rules/no-regex-spaces.js
@@ -16,7 +16,8 @@ module.exports = {
docs: {
description: "disallow multiple spaces in regular expressions",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-regex-spaces"
},
schema: [],
diff --git a/tools/node_modules/eslint/lib/rules/no-restricted-globals.js b/tools/node_modules/eslint/lib/rules/no-restricted-globals.js
index 75428fc174..691e55d192 100644
--- a/tools/node_modules/eslint/lib/rules/no-restricted-globals.js
+++ b/tools/node_modules/eslint/lib/rules/no-restricted-globals.js
@@ -20,7 +20,8 @@ module.exports = {
docs: {
description: "disallow specified global variables",
category: "Variables",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-restricted-globals"
},
schema: {
diff --git a/tools/node_modules/eslint/lib/rules/no-restricted-imports.js b/tools/node_modules/eslint/lib/rules/no-restricted-imports.js
index eb477b4be6..11d09d6d22 100644
--- a/tools/node_modules/eslint/lib/rules/no-restricted-imports.js
+++ b/tools/node_modules/eslint/lib/rules/no-restricted-imports.js
@@ -56,7 +56,8 @@ module.exports = {
docs: {
description: "disallow specified modules when loaded by `import`",
category: "ECMAScript 6",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-restricted-imports"
},
schema: {
diff --git a/tools/node_modules/eslint/lib/rules/no-restricted-modules.js b/tools/node_modules/eslint/lib/rules/no-restricted-modules.js
index cd47975733..54271094fd 100644
--- a/tools/node_modules/eslint/lib/rules/no-restricted-modules.js
+++ b/tools/node_modules/eslint/lib/rules/no-restricted-modules.js
@@ -50,7 +50,8 @@ module.exports = {
docs: {
description: "disallow specified modules when loaded by `require`",
category: "Node.js and CommonJS",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-restricted-modules"
},
schema: {
diff --git a/tools/node_modules/eslint/lib/rules/no-restricted-properties.js b/tools/node_modules/eslint/lib/rules/no-restricted-properties.js
index cdc73f9e41..71cc83c65a 100644
--- a/tools/node_modules/eslint/lib/rules/no-restricted-properties.js
+++ b/tools/node_modules/eslint/lib/rules/no-restricted-properties.js
@@ -16,7 +16,8 @@ module.exports = {
docs: {
description: "disallow certain properties on certain objects",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-restricted-properties"
},
schema: {
diff --git a/tools/node_modules/eslint/lib/rules/no-restricted-syntax.js b/tools/node_modules/eslint/lib/rules/no-restricted-syntax.js
index 1798065ec0..c472d9432e 100644
--- a/tools/node_modules/eslint/lib/rules/no-restricted-syntax.js
+++ b/tools/node_modules/eslint/lib/rules/no-restricted-syntax.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "disallow specified syntax",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-restricted-syntax"
},
schema: {
diff --git a/tools/node_modules/eslint/lib/rules/no-return-assign.js b/tools/node_modules/eslint/lib/rules/no-return-assign.js
index 882f94b724..0a016cfad5 100644
--- a/tools/node_modules/eslint/lib/rules/no-return-assign.js
+++ b/tools/node_modules/eslint/lib/rules/no-return-assign.js
@@ -25,7 +25,8 @@ module.exports = {
docs: {
description: "disallow assignment operators in `return` statements",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-return-assign"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-return-await.js b/tools/node_modules/eslint/lib/rules/no-return-await.js
index 2f06b61108..490ccaeb36 100644
--- a/tools/node_modules/eslint/lib/rules/no-return-await.js
+++ b/tools/node_modules/eslint/lib/rules/no-return-await.js
@@ -17,7 +17,11 @@ module.exports = {
docs: {
description: "disallow unnecessary `return await`",
category: "Best Practices",
- recommended: false // TODO: set to true
+
+ // TODO: set to true
+ recommended: false,
+
+ url: "https://eslint.org/docs/rules/no-return-await"
},
fixable: null,
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-script-url.js b/tools/node_modules/eslint/lib/rules/no-script-url.js
index 98f988ff1a..ba74dafb8e 100644
--- a/tools/node_modules/eslint/lib/rules/no-script-url.js
+++ b/tools/node_modules/eslint/lib/rules/no-script-url.js
@@ -16,7 +16,8 @@ module.exports = {
docs: {
description: "disallow `javascript:` urls",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-script-url"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-self-assign.js b/tools/node_modules/eslint/lib/rules/no-self-assign.js
index 48b922d46b..3014042002 100644
--- a/tools/node_modules/eslint/lib/rules/no-self-assign.js
+++ b/tools/node_modules/eslint/lib/rules/no-self-assign.js
@@ -166,7 +166,8 @@ module.exports = {
docs: {
description: "disallow assignments where both sides are exactly the same",
category: "Best Practices",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-self-assign"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-self-compare.js b/tools/node_modules/eslint/lib/rules/no-self-compare.js
index 5beaa181b9..6ebc3870fe 100644
--- a/tools/node_modules/eslint/lib/rules/no-self-compare.js
+++ b/tools/node_modules/eslint/lib/rules/no-self-compare.js
@@ -15,7 +15,8 @@ module.exports = {
docs: {
description: "disallow comparisons where both sides are exactly the same",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-self-compare"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-sequences.js b/tools/node_modules/eslint/lib/rules/no-sequences.js
index 5e746dfa88..8eaf55572b 100644
--- a/tools/node_modules/eslint/lib/rules/no-sequences.js
+++ b/tools/node_modules/eslint/lib/rules/no-sequences.js
@@ -20,7 +20,8 @@ module.exports = {
docs: {
description: "disallow comma operators",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-sequences"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-shadow-restricted-names.js b/tools/node_modules/eslint/lib/rules/no-shadow-restricted-names.js
index 6c60232b8b..7b92521b07 100644
--- a/tools/node_modules/eslint/lib/rules/no-shadow-restricted-names.js
+++ b/tools/node_modules/eslint/lib/rules/no-shadow-restricted-names.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "disallow identifiers from shadowing restricted names",
category: "Variables",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-shadow-restricted-names"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-shadow.js b/tools/node_modules/eslint/lib/rules/no-shadow.js
index e093d48c81..d01231ff99 100644
--- a/tools/node_modules/eslint/lib/rules/no-shadow.js
+++ b/tools/node_modules/eslint/lib/rules/no-shadow.js
@@ -20,7 +20,8 @@ module.exports = {
docs: {
description: "disallow variable declarations from shadowing variables declared in the outer scope",
category: "Variables",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-shadow"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-spaced-func.js b/tools/node_modules/eslint/lib/rules/no-spaced-func.js
index 361c1e0cd7..42d1e4b243 100644
--- a/tools/node_modules/eslint/lib/rules/no-spaced-func.js
+++ b/tools/node_modules/eslint/lib/rules/no-spaced-func.js
@@ -16,7 +16,8 @@ module.exports = {
description: "disallow spacing between function identifiers and their applications (deprecated)",
category: "Stylistic Issues",
recommended: false,
- replacedBy: ["func-call-spacing"]
+ replacedBy: ["func-call-spacing"],
+ url: "https://eslint.org/docs/rules/no-spaced-func"
},
deprecated: true,
diff --git a/tools/node_modules/eslint/lib/rules/no-sparse-arrays.js b/tools/node_modules/eslint/lib/rules/no-sparse-arrays.js
index 3044896c61..1cc6f7ccba 100644
--- a/tools/node_modules/eslint/lib/rules/no-sparse-arrays.js
+++ b/tools/node_modules/eslint/lib/rules/no-sparse-arrays.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "disallow sparse arrays",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-sparse-arrays"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-sync.js b/tools/node_modules/eslint/lib/rules/no-sync.js
index 06305969a1..eb7b787d38 100644
--- a/tools/node_modules/eslint/lib/rules/no-sync.js
+++ b/tools/node_modules/eslint/lib/rules/no-sync.js
@@ -16,7 +16,8 @@ module.exports = {
docs: {
description: "disallow synchronous methods",
category: "Node.js and CommonJS",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-sync"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-tabs.js b/tools/node_modules/eslint/lib/rules/no-tabs.js
index 4bab96f387..08a8fa5b75 100644
--- a/tools/node_modules/eslint/lib/rules/no-tabs.js
+++ b/tools/node_modules/eslint/lib/rules/no-tabs.js
@@ -19,7 +19,8 @@ module.exports = {
docs: {
description: "disallow all tabs",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-tabs"
},
schema: []
},
diff --git a/tools/node_modules/eslint/lib/rules/no-template-curly-in-string.js b/tools/node_modules/eslint/lib/rules/no-template-curly-in-string.js
index d8f6c31108..ed74fcc6f7 100644
--- a/tools/node_modules/eslint/lib/rules/no-template-curly-in-string.js
+++ b/tools/node_modules/eslint/lib/rules/no-template-curly-in-string.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "disallow template literal placeholder syntax in regular strings",
category: "Possible Errors",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-template-curly-in-string"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-ternary.js b/tools/node_modules/eslint/lib/rules/no-ternary.js
index 3e254f6812..4dcc8db069 100644
--- a/tools/node_modules/eslint/lib/rules/no-ternary.js
+++ b/tools/node_modules/eslint/lib/rules/no-ternary.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow ternary operators",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-ternary"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-this-before-super.js b/tools/node_modules/eslint/lib/rules/no-this-before-super.js
index 2a686ac72e..944a323529 100644
--- a/tools/node_modules/eslint/lib/rules/no-this-before-super.js
+++ b/tools/node_modules/eslint/lib/rules/no-this-before-super.js
@@ -39,7 +39,8 @@ module.exports = {
docs: {
description: "disallow `this`/`super` before calling `super()` in constructors",
category: "ECMAScript 6",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-this-before-super"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-throw-literal.js b/tools/node_modules/eslint/lib/rules/no-throw-literal.js
index 5e9054399a..b080578bf2 100644
--- a/tools/node_modules/eslint/lib/rules/no-throw-literal.js
+++ b/tools/node_modules/eslint/lib/rules/no-throw-literal.js
@@ -16,7 +16,8 @@ module.exports = {
docs: {
description: "disallow throwing literals as exceptions",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-throw-literal"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-trailing-spaces.js b/tools/node_modules/eslint/lib/rules/no-trailing-spaces.js
index fbbc640217..4d70c3b5cd 100644
--- a/tools/node_modules/eslint/lib/rules/no-trailing-spaces.js
+++ b/tools/node_modules/eslint/lib/rules/no-trailing-spaces.js
@@ -19,7 +19,8 @@ module.exports = {
docs: {
description: "disallow trailing whitespace at the end of lines",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-trailing-spaces"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/no-undef-init.js b/tools/node_modules/eslint/lib/rules/no-undef-init.js
index 7e58f55a69..2e0ab24629 100644
--- a/tools/node_modules/eslint/lib/rules/no-undef-init.js
+++ b/tools/node_modules/eslint/lib/rules/no-undef-init.js
@@ -16,7 +16,8 @@ module.exports = {
docs: {
description: "disallow initializing variables to `undefined`",
category: "Variables",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-undef-init"
},
schema: [],
diff --git a/tools/node_modules/eslint/lib/rules/no-undef.js b/tools/node_modules/eslint/lib/rules/no-undef.js
index 74a33dd997..c8347d50d1 100644
--- a/tools/node_modules/eslint/lib/rules/no-undef.js
+++ b/tools/node_modules/eslint/lib/rules/no-undef.js
@@ -28,7 +28,8 @@ module.exports = {
docs: {
description: "disallow the use of undeclared variables unless mentioned in `/*global */` comments",
category: "Variables",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-undef"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-undefined.js b/tools/node_modules/eslint/lib/rules/no-undefined.js
index 7e9f96b921..94b514e91d 100644
--- a/tools/node_modules/eslint/lib/rules/no-undefined.js
+++ b/tools/node_modules/eslint/lib/rules/no-undefined.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "disallow the use of `undefined` as an identifier",
category: "Variables",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-undefined"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-underscore-dangle.js b/tools/node_modules/eslint/lib/rules/no-underscore-dangle.js
index 5964da41cd..c76488a943 100644
--- a/tools/node_modules/eslint/lib/rules/no-underscore-dangle.js
+++ b/tools/node_modules/eslint/lib/rules/no-underscore-dangle.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow dangling underscores in identifiers",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-underscore-dangle"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-unexpected-multiline.js b/tools/node_modules/eslint/lib/rules/no-unexpected-multiline.js
index 9398b8a603..c7c26686d9 100644
--- a/tools/node_modules/eslint/lib/rules/no-unexpected-multiline.js
+++ b/tools/node_modules/eslint/lib/rules/no-unexpected-multiline.js
@@ -19,7 +19,8 @@ module.exports = {
docs: {
description: "disallow confusing multiline expressions",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-unexpected-multiline"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-unmodified-loop-condition.js b/tools/node_modules/eslint/lib/rules/no-unmodified-loop-condition.js
index 49dff0d0ce..623144dc06 100644
--- a/tools/node_modules/eslint/lib/rules/no-unmodified-loop-condition.js
+++ b/tools/node_modules/eslint/lib/rules/no-unmodified-loop-condition.js
@@ -107,84 +107,6 @@ const isInLoop = {
};
/**
- * Checks whether or not a given group node has any dynamic elements.
- *
- * @param {ASTNode} root - A node to check.
- * This node is one of BinaryExpression or ConditionalExpression.
- * @returns {boolean} `true` if the node is dynamic.
- */
-function hasDynamicExpressions(root) {
- let retv = false;
- const traverser = new Traverser();
-
- traverser.traverse(root, {
- enter(node) {
- if (DYNAMIC_PATTERN.test(node.type)) {
- retv = true;
- this.break();
- } else if (SKIP_PATTERN.test(node.type)) {
- this.skip();
- }
- }
- });
-
- return retv;
-}
-
-/**
- * Creates the loop condition information from a given reference.
- *
- * @param {eslint-scope.Reference} reference - A reference to create.
- * @returns {LoopConditionInfo|null} Created loop condition info, or null.
- */
-function toLoopCondition(reference) {
- if (reference.init) {
- return null;
- }
-
- let group = null;
- let child = reference.identifier;
- let node = child.parent;
-
- while (node) {
- if (SENTINEL_PATTERN.test(node.type)) {
- if (LOOP_PATTERN.test(node.type) && node.test === child) {
-
- // This reference is inside of a loop condition.
- return {
- reference,
- group,
- isInLoop: isInLoop[node.type].bind(null, node),
- modified: false
- };
- }
-
- // This reference is outside of a loop condition.
- break;
- }
-
- /*
- * If it's inside of a group, OK if either operand is modified.
- * So stores the group this reference belongs to.
- */
- if (GROUP_PATTERN.test(node.type)) {
-
- // If this expression is dynamic, no need to check.
- if (hasDynamicExpressions(node)) {
- break;
- } else {
- group = node;
- }
- }
-
- child = node;
- node = node.parent;
- }
-
- return null;
-}
-
-/**
* Gets the function which encloses a given reference.
* This supports only FunctionDeclaration.
*
@@ -247,13 +169,15 @@ module.exports = {
docs: {
description: "disallow unmodified loop conditions",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-unmodified-loop-condition"
},
schema: []
},
create(context) {
+ const sourceCode = context.getSourceCode();
let groupMap = null;
/**
@@ -308,6 +232,84 @@ module.exports = {
}
/**
+ * Checks whether or not a given group node has any dynamic elements.
+ *
+ * @param {ASTNode} root - A node to check.
+ * This node is one of BinaryExpression or ConditionalExpression.
+ * @returns {boolean} `true` if the node is dynamic.
+ */
+ function hasDynamicExpressions(root) {
+ let retv = false;
+
+ Traverser.traverse(root, {
+ visitorKeys: sourceCode.visitorKeys,
+ enter(node) {
+ if (DYNAMIC_PATTERN.test(node.type)) {
+ retv = true;
+ this.break();
+ } else if (SKIP_PATTERN.test(node.type)) {
+ this.skip();
+ }
+ }
+ });
+
+ return retv;
+ }
+
+ /**
+ * Creates the loop condition information from a given reference.
+ *
+ * @param {eslint-scope.Reference} reference - A reference to create.
+ * @returns {LoopConditionInfo|null} Created loop condition info, or null.
+ */
+ function toLoopCondition(reference) {
+ if (reference.init) {
+ return null;
+ }
+
+ let group = null;
+ let child = reference.identifier;
+ let node = child.parent;
+
+ while (node) {
+ if (SENTINEL_PATTERN.test(node.type)) {
+ if (LOOP_PATTERN.test(node.type) && node.test === child) {
+
+ // This reference is inside of a loop condition.
+ return {
+ reference,
+ group,
+ isInLoop: isInLoop[node.type].bind(null, node),
+ modified: false
+ };
+ }
+
+ // This reference is outside of a loop condition.
+ break;
+ }
+
+ /*
+ * If it's inside of a group, OK if either operand is modified.
+ * So stores the group this reference belongs to.
+ */
+ if (GROUP_PATTERN.test(node.type)) {
+
+ // If this expression is dynamic, no need to check.
+ if (hasDynamicExpressions(node)) {
+ break;
+ } else {
+ group = node;
+ }
+ }
+
+ child = node;
+ node = node.parent;
+ }
+
+ return null;
+ }
+
+ /**
* Finds unmodified references which are inside of a loop condition.
* Then reports the references which are outside of groups.
*
diff --git a/tools/node_modules/eslint/lib/rules/no-unneeded-ternary.js b/tools/node_modules/eslint/lib/rules/no-unneeded-ternary.js
index 5745537805..7f82c8ee28 100644
--- a/tools/node_modules/eslint/lib/rules/no-unneeded-ternary.js
+++ b/tools/node_modules/eslint/lib/rules/no-unneeded-ternary.js
@@ -27,7 +27,8 @@ module.exports = {
docs: {
description: "disallow ternary operators when simpler alternatives exist",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-unneeded-ternary"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-unreachable.js b/tools/node_modules/eslint/lib/rules/no-unreachable.js
index 217a6a4299..80d246307c 100644
--- a/tools/node_modules/eslint/lib/rules/no-unreachable.js
+++ b/tools/node_modules/eslint/lib/rules/no-unreachable.js
@@ -104,7 +104,8 @@ module.exports = {
docs: {
description: "disallow unreachable code after `return`, `throw`, `continue`, and `break` statements",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-unreachable"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-unsafe-finally.js b/tools/node_modules/eslint/lib/rules/no-unsafe-finally.js
index d25033e545..ebef05188f 100644
--- a/tools/node_modules/eslint/lib/rules/no-unsafe-finally.js
+++ b/tools/node_modules/eslint/lib/rules/no-unsafe-finally.js
@@ -23,7 +23,8 @@ module.exports = {
docs: {
description: "disallow control flow statements in `finally` blocks",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-unsafe-finally"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-unsafe-negation.js b/tools/node_modules/eslint/lib/rules/no-unsafe-negation.js
index 761dc03386..5dc39f183b 100644
--- a/tools/node_modules/eslint/lib/rules/no-unsafe-negation.js
+++ b/tools/node_modules/eslint/lib/rules/no-unsafe-negation.js
@@ -44,7 +44,8 @@ module.exports = {
docs: {
description: "disallow negating the left operand of relational operators",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-unsafe-negation"
},
schema: [],
fixable: "code"
diff --git a/tools/node_modules/eslint/lib/rules/no-unused-expressions.js b/tools/node_modules/eslint/lib/rules/no-unused-expressions.js
index b4e1074d54..fedfac17d1 100644
--- a/tools/node_modules/eslint/lib/rules/no-unused-expressions.js
+++ b/tools/node_modules/eslint/lib/rules/no-unused-expressions.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "disallow unused expressions",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-unused-expressions"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-unused-labels.js b/tools/node_modules/eslint/lib/rules/no-unused-labels.js
index bcd3cfdc47..3e1dcb6601 100644
--- a/tools/node_modules/eslint/lib/rules/no-unused-labels.js
+++ b/tools/node_modules/eslint/lib/rules/no-unused-labels.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow unused labels",
category: "Best Practices",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-unused-labels"
},
schema: [],
diff --git a/tools/node_modules/eslint/lib/rules/no-unused-vars.js b/tools/node_modules/eslint/lib/rules/no-unused-vars.js
index 05940d5932..1d0cef8562 100644
--- a/tools/node_modules/eslint/lib/rules/no-unused-vars.js
+++ b/tools/node_modules/eslint/lib/rules/no-unused-vars.js
@@ -21,7 +21,8 @@ module.exports = {
docs: {
description: "disallow unused variables",
category: "Variables",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-unused-vars"
},
schema: [
@@ -105,26 +106,21 @@ module.exports = {
* @returns {string} The warning message to be used with this unused variable.
*/
function getDefinedMessage(unusedVar) {
+ const defType = unusedVar.defs && unusedVar.defs[0] && unusedVar.defs[0].type;
let type;
let pattern;
- if (config.varsIgnorePattern) {
+ if (defType === "CatchClause" && config.caughtErrorsIgnorePattern) {
+ type = "args";
+ pattern = config.caughtErrorsIgnorePattern.toString();
+ } else if (defType === "Parameter" && config.argsIgnorePattern) {
+ type = "args";
+ pattern = config.argsIgnorePattern.toString();
+ } else if (defType !== "Parameter" && config.varsIgnorePattern) {
type = "vars";
pattern = config.varsIgnorePattern.toString();
}
- if (unusedVar.defs && unusedVar.defs[0] && unusedVar.defs[0].type) {
- const defType = unusedVar.defs[0].type;
-
- if (defType === "CatchClause" && config.caughtErrorsIgnorePattern) {
- type = "args";
- pattern = config.caughtErrorsIgnorePattern.toString();
- } else if (defType === "Parameter" && config.argsIgnorePattern) {
- type = "args";
- pattern = config.argsIgnorePattern.toString();
- }
- }
-
const additional = type ? ` Allowed unused ${type} must match ${pattern}.` : "";
return `'{{name}}' is defined but never used.${additional}`;
diff --git a/tools/node_modules/eslint/lib/rules/no-use-before-define.js b/tools/node_modules/eslint/lib/rules/no-use-before-define.js
index ada01815d9..37b8e11ca8 100644
--- a/tools/node_modules/eslint/lib/rules/no-use-before-define.js
+++ b/tools/node_modules/eslint/lib/rules/no-use-before-define.js
@@ -139,7 +139,8 @@ module.exports = {
docs: {
description: "disallow the use of variables before they are defined",
category: "Variables",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-use-before-define"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-useless-call.js b/tools/node_modules/eslint/lib/rules/no-useless-call.js
index e4820ac248..925c9f79a9 100644
--- a/tools/node_modules/eslint/lib/rules/no-useless-call.js
+++ b/tools/node_modules/eslint/lib/rules/no-useless-call.js
@@ -52,7 +52,8 @@ module.exports = {
docs: {
description: "disallow unnecessary calls to `.call()` and `.apply()`",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-useless-call"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-useless-computed-key.js b/tools/node_modules/eslint/lib/rules/no-useless-computed-key.js
index f8114ab754..07573075e1 100644
--- a/tools/node_modules/eslint/lib/rules/no-useless-computed-key.js
+++ b/tools/node_modules/eslint/lib/rules/no-useless-computed-key.js
@@ -21,7 +21,8 @@ module.exports = {
docs: {
description: "disallow unnecessary computed property keys in object literals",
category: "ECMAScript 6",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-useless-computed-key"
},
schema: [],
diff --git a/tools/node_modules/eslint/lib/rules/no-useless-concat.js b/tools/node_modules/eslint/lib/rules/no-useless-concat.js
index e42781fee7..a9ac786843 100644
--- a/tools/node_modules/eslint/lib/rules/no-useless-concat.js
+++ b/tools/node_modules/eslint/lib/rules/no-useless-concat.js
@@ -69,7 +69,8 @@ module.exports = {
docs: {
description: "disallow unnecessary concatenation of literals or template literals",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-useless-concat"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-useless-constructor.js b/tools/node_modules/eslint/lib/rules/no-useless-constructor.js
index f790c789f5..59e40bef8f 100644
--- a/tools/node_modules/eslint/lib/rules/no-useless-constructor.js
+++ b/tools/node_modules/eslint/lib/rules/no-useless-constructor.js
@@ -145,7 +145,8 @@ module.exports = {
docs: {
description: "disallow unnecessary constructors",
category: "ECMAScript 6",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-useless-constructor"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-useless-escape.js b/tools/node_modules/eslint/lib/rules/no-useless-escape.js
index cdc3e98df8..80abec78e8 100644
--- a/tools/node_modules/eslint/lib/rules/no-useless-escape.js
+++ b/tools/node_modules/eslint/lib/rules/no-useless-escape.js
@@ -82,7 +82,8 @@ module.exports = {
docs: {
description: "disallow unnecessary escape characters",
category: "Best Practices",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/no-useless-escape"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-useless-rename.js b/tools/node_modules/eslint/lib/rules/no-useless-rename.js
index a489a6e51b..83a03deb63 100644
--- a/tools/node_modules/eslint/lib/rules/no-useless-rename.js
+++ b/tools/node_modules/eslint/lib/rules/no-useless-rename.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow renaming import, export, and destructured assignments to the same name",
category: "ECMAScript 6",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-useless-rename"
},
fixable: "code",
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-useless-return.js b/tools/node_modules/eslint/lib/rules/no-useless-return.js
index 5415bf59b8..8e2a6d97f6 100644
--- a/tools/node_modules/eslint/lib/rules/no-useless-return.js
+++ b/tools/node_modules/eslint/lib/rules/no-useless-return.js
@@ -76,7 +76,8 @@ module.exports = {
docs: {
description: "disallow redundant return statements",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-useless-return"
},
fixable: "code",
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-var.js b/tools/node_modules/eslint/lib/rules/no-var.js
index d3c163e557..d95ca539f0 100644
--- a/tools/node_modules/eslint/lib/rules/no-var.js
+++ b/tools/node_modules/eslint/lib/rules/no-var.js
@@ -183,7 +183,8 @@ module.exports = {
docs: {
description: "require `let` or `const` instead of `var`",
category: "ECMAScript 6",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-var"
},
schema: [],
diff --git a/tools/node_modules/eslint/lib/rules/no-void.js b/tools/node_modules/eslint/lib/rules/no-void.js
index 5202fa49a8..1d3d887da6 100644
--- a/tools/node_modules/eslint/lib/rules/no-void.js
+++ b/tools/node_modules/eslint/lib/rules/no-void.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "disallow `void` operators",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-void"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/no-warning-comments.js b/tools/node_modules/eslint/lib/rules/no-warning-comments.js
index c0ecaca9e7..ce58f9ac80 100644
--- a/tools/node_modules/eslint/lib/rules/no-warning-comments.js
+++ b/tools/node_modules/eslint/lib/rules/no-warning-comments.js
@@ -16,7 +16,8 @@ module.exports = {
docs: {
description: "disallow specified warning terms in comments",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-warning-comments"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/no-whitespace-before-property.js b/tools/node_modules/eslint/lib/rules/no-whitespace-before-property.js
index 2d476b66c0..fc4c25f849 100644
--- a/tools/node_modules/eslint/lib/rules/no-whitespace-before-property.js
+++ b/tools/node_modules/eslint/lib/rules/no-whitespace-before-property.js
@@ -19,7 +19,8 @@ module.exports = {
docs: {
description: "disallow whitespace before properties",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-whitespace-before-property"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/no-with.js b/tools/node_modules/eslint/lib/rules/no-with.js
index be9e346360..d72dcdfb21 100644
--- a/tools/node_modules/eslint/lib/rules/no-with.js
+++ b/tools/node_modules/eslint/lib/rules/no-with.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "disallow `with` statements",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/no-with"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/nonblock-statement-body-position.js b/tools/node_modules/eslint/lib/rules/nonblock-statement-body-position.js
index 212e36a57c..e447ef886b 100644
--- a/tools/node_modules/eslint/lib/rules/nonblock-statement-body-position.js
+++ b/tools/node_modules/eslint/lib/rules/nonblock-statement-body-position.js
@@ -15,7 +15,8 @@ module.exports = {
docs: {
description: "enforce the location of single-line statements",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/nonblock-statement-body-position"
},
fixable: "whitespace",
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/object-curly-newline.js b/tools/node_modules/eslint/lib/rules/object-curly-newline.js
index ebad69de2e..91b2ca6c97 100644
--- a/tools/node_modules/eslint/lib/rules/object-curly-newline.js
+++ b/tools/node_modules/eslint/lib/rules/object-curly-newline.js
@@ -97,7 +97,8 @@ module.exports = {
docs: {
description: "enforce consistent line breaks inside braces",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/object-curly-newline"
},
fixable: "whitespace",
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/object-curly-spacing.js b/tools/node_modules/eslint/lib/rules/object-curly-spacing.js
index 3341e915f2..b37d6fd90f 100644
--- a/tools/node_modules/eslint/lib/rules/object-curly-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/object-curly-spacing.js
@@ -15,7 +15,8 @@ module.exports = {
docs: {
description: "enforce consistent spacing inside braces",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/object-curly-spacing"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/object-property-newline.js b/tools/node_modules/eslint/lib/rules/object-property-newline.js
index 0463e389ab..56ca269402 100644
--- a/tools/node_modules/eslint/lib/rules/object-property-newline.js
+++ b/tools/node_modules/eslint/lib/rules/object-property-newline.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "enforce placing object properties on separate lines",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/object-property-newline"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/object-shorthand.js b/tools/node_modules/eslint/lib/rules/object-shorthand.js
index 980d0fc35a..c6c0b10445 100644
--- a/tools/node_modules/eslint/lib/rules/object-shorthand.js
+++ b/tools/node_modules/eslint/lib/rules/object-shorthand.js
@@ -27,7 +27,8 @@ module.exports = {
docs: {
description: "require or disallow method and property shorthand syntax for object literals",
category: "ECMAScript 6",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/object-shorthand"
},
fixable: "code",
diff --git a/tools/node_modules/eslint/lib/rules/one-var-declaration-per-line.js b/tools/node_modules/eslint/lib/rules/one-var-declaration-per-line.js
index 61b505c82d..e17529b6be 100644
--- a/tools/node_modules/eslint/lib/rules/one-var-declaration-per-line.js
+++ b/tools/node_modules/eslint/lib/rules/one-var-declaration-per-line.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "require or disallow newlines around variable declarations",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/one-var-declaration-per-line"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/one-var.js b/tools/node_modules/eslint/lib/rules/one-var.js
index 9e40d4ea6f..cd094444b6 100644
--- a/tools/node_modules/eslint/lib/rules/one-var.js
+++ b/tools/node_modules/eslint/lib/rules/one-var.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "enforce variables to be declared either together or separately in functions",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/one-var"
},
schema: [
@@ -26,6 +27,9 @@ module.exports = {
{
type: "object",
properties: {
+ separateRequires: {
+ type: "boolean"
+ },
var: {
enum: ["always", "never"]
},
@@ -62,21 +66,23 @@ module.exports = {
const mode = context.options[0] || MODE_ALWAYS;
- const options = {
- };
+ const options = {};
if (typeof mode === "string") { // simple options configuration with just a string
options.var = { uninitialized: mode, initialized: mode };
options.let = { uninitialized: mode, initialized: mode };
options.const = { uninitialized: mode, initialized: mode };
} else if (typeof mode === "object") { // options configuration is an object
- if (mode.hasOwnProperty("var") && typeof mode.var === "string") {
+ if (mode.hasOwnProperty("separateRequires")) {
+ options.separateRequires = !!mode.separateRequires;
+ }
+ if (mode.hasOwnProperty("var")) {
options.var = { uninitialized: mode.var, initialized: mode.var };
}
- if (mode.hasOwnProperty("let") && typeof mode.let === "string") {
+ if (mode.hasOwnProperty("let")) {
options.let = { uninitialized: mode.let, initialized: mode.let };
}
- if (mode.hasOwnProperty("const") && typeof mode.const === "string") {
+ if (mode.hasOwnProperty("const")) {
options.const = { uninitialized: mode.const, initialized: mode.const };
}
if (mode.hasOwnProperty("uninitialized")) {
@@ -158,7 +164,17 @@ module.exports = {
}
/**
- * Records whether initialized or uninitialized variables are defined in current scope.
+ * Check if a variable declaration is a require.
+ * @param {ASTNode} decl variable declaration Node
+ * @returns {bool} if decl is a require, return true; else return false.
+ * @private
+ */
+ function isRequire(decl) {
+ return decl.init && decl.init.type === "CallExpression" && decl.init.callee.name === "require";
+ }
+
+ /**
+ * Records whether initialized/uninitialized/required variables are defined in current scope.
* @param {string} statementType node.kind, one of: "var", "let", or "const"
* @param {ASTNode[]} declarations List of declarations
* @param {Object} currentScope The scope being investigated
@@ -173,7 +189,11 @@ module.exports = {
}
} else {
if (options[statementType] && options[statementType].initialized === MODE_ALWAYS) {
- currentScope.initialized = true;
+ if (options.separateRequires && isRequire(declarations[i])) {
+ currentScope.required = true;
+ } else {
+ currentScope.initialized = true;
+ }
}
}
}
@@ -228,6 +248,7 @@ module.exports = {
const declarationCounts = countDeclarations(declarations);
const currentOptions = options[statementType] || {};
const currentScope = getCurrentScope(statementType);
+ const hasRequires = declarations.some(isRequire);
if (currentOptions.uninitialized === MODE_ALWAYS && currentOptions.initialized === MODE_ALWAYS) {
if (currentScope.uninitialized || currentScope.initialized) {
@@ -245,6 +266,9 @@ module.exports = {
return false;
}
}
+ if (currentScope.required && hasRequires) {
+ return false;
+ }
recordTypes(statementType, declarations, currentScope);
return true;
}
@@ -275,6 +299,16 @@ module.exports = {
const declarations = node.declarations;
const declarationCounts = countDeclarations(declarations);
+ const mixedRequires = declarations.some(isRequire) && !declarations.every(isRequire);
+
+ if (options[type].initialized === MODE_ALWAYS) {
+ if (options.separateRequires && mixedRequires) {
+ context.report({
+ node,
+ message: "Split requires to be separated into a single block."
+ });
+ }
+ }
// always
if (!hasOnlyOneStatement(type, declarations)) {
diff --git a/tools/node_modules/eslint/lib/rules/operator-assignment.js b/tools/node_modules/eslint/lib/rules/operator-assignment.js
index f776609f5e..ad516bbfc4 100644
--- a/tools/node_modules/eslint/lib/rules/operator-assignment.js
+++ b/tools/node_modules/eslint/lib/rules/operator-assignment.js
@@ -92,7 +92,8 @@ module.exports = {
docs: {
description: "require or disallow assignment operator shorthand where possible",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/operator-assignment"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/operator-linebreak.js b/tools/node_modules/eslint/lib/rules/operator-linebreak.js
index 271cbb35c1..558258b27d 100644
--- a/tools/node_modules/eslint/lib/rules/operator-linebreak.js
+++ b/tools/node_modules/eslint/lib/rules/operator-linebreak.js
@@ -20,7 +20,8 @@ module.exports = {
docs: {
description: "enforce consistent linebreak style for operators",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/operator-linebreak"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/padded-blocks.js b/tools/node_modules/eslint/lib/rules/padded-blocks.js
index ad65882ac6..2fbb267121 100644
--- a/tools/node_modules/eslint/lib/rules/padded-blocks.js
+++ b/tools/node_modules/eslint/lib/rules/padded-blocks.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "require or disallow padding within blocks",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/padded-blocks"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/padding-line-between-statements.js b/tools/node_modules/eslint/lib/rules/padding-line-between-statements.js
index a89c49decf..9d1a4a3c7e 100644
--- a/tools/node_modules/eslint/lib/rules/padding-line-between-statements.js
+++ b/tools/node_modules/eslint/lib/rules/padding-line-between-statements.js
@@ -394,7 +394,8 @@ module.exports = {
docs: {
description: "require or disallow padding lines between statements",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/padding-line-between-statements"
},
fixable: "whitespace",
schema: {
diff --git a/tools/node_modules/eslint/lib/rules/prefer-arrow-callback.js b/tools/node_modules/eslint/lib/rules/prefer-arrow-callback.js
index 31ae2859fe..ff7a0fa7e7 100644
--- a/tools/node_modules/eslint/lib/rules/prefer-arrow-callback.js
+++ b/tools/node_modules/eslint/lib/rules/prefer-arrow-callback.js
@@ -134,7 +134,8 @@ module.exports = {
docs: {
description: "require using arrow functions for callbacks",
category: "ECMAScript 6",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/prefer-arrow-callback"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/prefer-const.js b/tools/node_modules/eslint/lib/rules/prefer-const.js
index a8cf3b7ef6..a24a00284f 100644
--- a/tools/node_modules/eslint/lib/rules/prefer-const.js
+++ b/tools/node_modules/eslint/lib/rules/prefer-const.js
@@ -233,7 +233,8 @@ module.exports = {
docs: {
description: "require `const` declarations for variables that are never reassigned after declared",
category: "ECMAScript 6",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/prefer-const"
},
fixable: "code",
diff --git a/tools/node_modules/eslint/lib/rules/prefer-destructuring.js b/tools/node_modules/eslint/lib/rules/prefer-destructuring.js
index 56c348a478..e9d02da3a1 100644
--- a/tools/node_modules/eslint/lib/rules/prefer-destructuring.js
+++ b/tools/node_modules/eslint/lib/rules/prefer-destructuring.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "require destructuring from arrays and/or objects",
category: "ECMAScript 6",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/prefer-destructuring"
},
schema: [
{
diff --git a/tools/node_modules/eslint/lib/rules/prefer-numeric-literals.js b/tools/node_modules/eslint/lib/rules/prefer-numeric-literals.js
index 929e660c66..051a91c81c 100644
--- a/tools/node_modules/eslint/lib/rules/prefer-numeric-literals.js
+++ b/tools/node_modules/eslint/lib/rules/prefer-numeric-literals.js
@@ -41,7 +41,8 @@ module.exports = {
docs: {
description: "disallow `parseInt()` and `Number.parseInt()` in favor of binary, octal, and hexadecimal literals",
category: "ECMAScript 6",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/prefer-numeric-literals"
},
schema: [],
diff --git a/tools/node_modules/eslint/lib/rules/prefer-promise-reject-errors.js b/tools/node_modules/eslint/lib/rules/prefer-promise-reject-errors.js
index d2a6b5df10..f92bd58d2e 100644
--- a/tools/node_modules/eslint/lib/rules/prefer-promise-reject-errors.js
+++ b/tools/node_modules/eslint/lib/rules/prefer-promise-reject-errors.js
@@ -15,7 +15,8 @@ module.exports = {
docs: {
description: "require using Error objects as Promise rejection reasons",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/prefer-promise-reject-errors"
},
fixable: null,
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/prefer-reflect.js b/tools/node_modules/eslint/lib/rules/prefer-reflect.js
index a47e66c5f5..56e841ff18 100644
--- a/tools/node_modules/eslint/lib/rules/prefer-reflect.js
+++ b/tools/node_modules/eslint/lib/rules/prefer-reflect.js
@@ -15,7 +15,8 @@ module.exports = {
description: "require `Reflect` methods where applicable",
category: "ECMAScript 6",
recommended: false,
- replacedBy: []
+ replacedBy: [],
+ url: "https://eslint.org/docs/rules/prefer-reflect"
},
deprecated: true,
diff --git a/tools/node_modules/eslint/lib/rules/prefer-rest-params.js b/tools/node_modules/eslint/lib/rules/prefer-rest-params.js
index 03342371b2..133456e4d1 100644
--- a/tools/node_modules/eslint/lib/rules/prefer-rest-params.js
+++ b/tools/node_modules/eslint/lib/rules/prefer-rest-params.js
@@ -65,7 +65,8 @@ module.exports = {
docs: {
description: "require rest parameters instead of `arguments`",
category: "ECMAScript 6",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/prefer-rest-params"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/prefer-spread.js b/tools/node_modules/eslint/lib/rules/prefer-spread.js
index c111d5f98e..62cfb28e7e 100644
--- a/tools/node_modules/eslint/lib/rules/prefer-spread.js
+++ b/tools/node_modules/eslint/lib/rules/prefer-spread.js
@@ -52,7 +52,8 @@ module.exports = {
docs: {
description: "require spread operators instead of `.apply()`",
category: "ECMAScript 6",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/prefer-spread"
},
schema: [],
diff --git a/tools/node_modules/eslint/lib/rules/prefer-template.js b/tools/node_modules/eslint/lib/rules/prefer-template.js
index 076ce6a3ea..c583bdcf9a 100644
--- a/tools/node_modules/eslint/lib/rules/prefer-template.js
+++ b/tools/node_modules/eslint/lib/rules/prefer-template.js
@@ -103,7 +103,8 @@ module.exports = {
docs: {
description: "require template literals instead of string concatenation",
category: "ECMAScript 6",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/prefer-template"
},
schema: [],
diff --git a/tools/node_modules/eslint/lib/rules/quote-props.js b/tools/node_modules/eslint/lib/rules/quote-props.js
index 6ac1f3c138..36739494da 100644
--- a/tools/node_modules/eslint/lib/rules/quote-props.js
+++ b/tools/node_modules/eslint/lib/rules/quote-props.js
@@ -20,7 +20,8 @@ module.exports = {
docs: {
description: "require quotes around object literal property names",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/quote-props"
},
schema: {
diff --git a/tools/node_modules/eslint/lib/rules/quotes.js b/tools/node_modules/eslint/lib/rules/quotes.js
index 914762727b..fa8bbae5fa 100644
--- a/tools/node_modules/eslint/lib/rules/quotes.js
+++ b/tools/node_modules/eslint/lib/rules/quotes.js
@@ -79,7 +79,8 @@ module.exports = {
docs: {
description: "enforce the consistent use of either backticks, double, or single quotes",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/quotes"
},
fixable: "code",
diff --git a/tools/node_modules/eslint/lib/rules/radix.js b/tools/node_modules/eslint/lib/rules/radix.js
index 0484c3bfb3..7e116a6fbf 100644
--- a/tools/node_modules/eslint/lib/rules/radix.js
+++ b/tools/node_modules/eslint/lib/rules/radix.js
@@ -81,7 +81,8 @@ module.exports = {
docs: {
description: "enforce the consistent use of the radix argument when using `parseInt()`",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/radix"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/require-await.js b/tools/node_modules/eslint/lib/rules/require-await.js
index a5698ae058..6adc84ae15 100644
--- a/tools/node_modules/eslint/lib/rules/require-await.js
+++ b/tools/node_modules/eslint/lib/rules/require-await.js
@@ -34,7 +34,8 @@ module.exports = {
docs: {
description: "disallow async functions which have no `await` expression",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/require-await"
},
schema: []
},
diff --git a/tools/node_modules/eslint/lib/rules/require-jsdoc.js b/tools/node_modules/eslint/lib/rules/require-jsdoc.js
index a02ee3659c..91b90b7d10 100644
--- a/tools/node_modules/eslint/lib/rules/require-jsdoc.js
+++ b/tools/node_modules/eslint/lib/rules/require-jsdoc.js
@@ -9,7 +9,8 @@ module.exports = {
docs: {
description: "require JSDoc comments",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/require-jsdoc"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/require-yield.js b/tools/node_modules/eslint/lib/rules/require-yield.js
index 5cc2944bc6..83a29876f0 100644
--- a/tools/node_modules/eslint/lib/rules/require-yield.js
+++ b/tools/node_modules/eslint/lib/rules/require-yield.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "require generator functions to contain `yield`",
category: "ECMAScript 6",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/require-yield"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/rest-spread-spacing.js b/tools/node_modules/eslint/lib/rules/rest-spread-spacing.js
index 91770eca74..1fbc2c4cc5 100644
--- a/tools/node_modules/eslint/lib/rules/rest-spread-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/rest-spread-spacing.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "enforce spacing between rest and spread operators and their expressions",
category: "ECMAScript 6",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/rest-spread-spacing"
},
fixable: "whitespace",
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/semi-spacing.js b/tools/node_modules/eslint/lib/rules/semi-spacing.js
index fd300e4a37..07af993764 100644
--- a/tools/node_modules/eslint/lib/rules/semi-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/semi-spacing.js
@@ -16,7 +16,8 @@ module.exports = {
docs: {
description: "enforce consistent spacing before and after semicolons",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/semi-spacing"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/semi-style.js b/tools/node_modules/eslint/lib/rules/semi-style.js
index 41fb39246c..de65928136 100644
--- a/tools/node_modules/eslint/lib/rules/semi-style.js
+++ b/tools/node_modules/eslint/lib/rules/semi-style.js
@@ -68,7 +68,8 @@ module.exports = {
docs: {
description: "enforce location of semicolons",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/semi-style"
},
schema: [{ enum: ["last", "first"] }],
fixable: "whitespace"
diff --git a/tools/node_modules/eslint/lib/rules/semi.js b/tools/node_modules/eslint/lib/rules/semi.js
index 78b6966dea..33a214db7c 100644
--- a/tools/node_modules/eslint/lib/rules/semi.js
+++ b/tools/node_modules/eslint/lib/rules/semi.js
@@ -20,7 +20,8 @@ module.exports = {
docs: {
description: "require or disallow semicolons instead of ASI",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/semi"
},
fixable: "code",
diff --git a/tools/node_modules/eslint/lib/rules/sort-imports.js b/tools/node_modules/eslint/lib/rules/sort-imports.js
index 2bd415e974..8735be5d30 100644
--- a/tools/node_modules/eslint/lib/rules/sort-imports.js
+++ b/tools/node_modules/eslint/lib/rules/sort-imports.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "enforce sorted import declarations within modules",
category: "ECMAScript 6",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/sort-imports"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/sort-keys.js b/tools/node_modules/eslint/lib/rules/sort-keys.js
index 8821f62943..9318e2fbb2 100644
--- a/tools/node_modules/eslint/lib/rules/sort-keys.js
+++ b/tools/node_modules/eslint/lib/rules/sort-keys.js
@@ -76,7 +76,8 @@ module.exports = {
docs: {
description: "require object keys to be sorted",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/sort-keys"
},
schema: [
{
diff --git a/tools/node_modules/eslint/lib/rules/sort-vars.js b/tools/node_modules/eslint/lib/rules/sort-vars.js
index c77cdf8620..334deb0657 100644
--- a/tools/node_modules/eslint/lib/rules/sort-vars.js
+++ b/tools/node_modules/eslint/lib/rules/sort-vars.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "require variables within the same declaration block to be sorted",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/sort-vars"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/space-before-blocks.js b/tools/node_modules/eslint/lib/rules/space-before-blocks.js
index f50298c9c4..2b82066d72 100644
--- a/tools/node_modules/eslint/lib/rules/space-before-blocks.js
+++ b/tools/node_modules/eslint/lib/rules/space-before-blocks.js
@@ -16,7 +16,8 @@ module.exports = {
docs: {
description: "enforce consistent spacing before blocks",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/space-before-blocks"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/space-before-function-paren.js b/tools/node_modules/eslint/lib/rules/space-before-function-paren.js
index 8851c4587a..51f6cc4326 100644
--- a/tools/node_modules/eslint/lib/rules/space-before-function-paren.js
+++ b/tools/node_modules/eslint/lib/rules/space-before-function-paren.js
@@ -19,7 +19,8 @@ module.exports = {
docs: {
description: "enforce consistent spacing before `function` definition opening parenthesis",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/space-before-function-paren"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/space-in-parens.js b/tools/node_modules/eslint/lib/rules/space-in-parens.js
index 67ec5847cd..7e315c4486 100644
--- a/tools/node_modules/eslint/lib/rules/space-in-parens.js
+++ b/tools/node_modules/eslint/lib/rules/space-in-parens.js
@@ -15,7 +15,8 @@ module.exports = {
docs: {
description: "enforce consistent spacing inside parentheses",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/space-in-parens"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/space-infix-ops.js b/tools/node_modules/eslint/lib/rules/space-infix-ops.js
index b92c889c7f..49b64658d1 100644
--- a/tools/node_modules/eslint/lib/rules/space-infix-ops.js
+++ b/tools/node_modules/eslint/lib/rules/space-infix-ops.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "require spacing around infix operators",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/space-infix-ops"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/space-unary-ops.js b/tools/node_modules/eslint/lib/rules/space-unary-ops.js
index 06a70fb6ad..4d122836ad 100644
--- a/tools/node_modules/eslint/lib/rules/space-unary-ops.js
+++ b/tools/node_modules/eslint/lib/rules/space-unary-ops.js
@@ -19,7 +19,8 @@ module.exports = {
docs: {
description: "enforce consistent spacing before or after unary operators",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/space-unary-ops"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/spaced-comment.js b/tools/node_modules/eslint/lib/rules/spaced-comment.js
index 8cdd05514c..9d2f5f49ac 100644
--- a/tools/node_modules/eslint/lib/rules/spaced-comment.js
+++ b/tools/node_modules/eslint/lib/rules/spaced-comment.js
@@ -158,7 +158,8 @@ module.exports = {
docs: {
description: "enforce consistent spacing after the `//` or `/*` in a comment",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/spaced-comment"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/strict.js b/tools/node_modules/eslint/lib/rules/strict.js
index 433b471367..633a8b323d 100644
--- a/tools/node_modules/eslint/lib/rules/strict.js
+++ b/tools/node_modules/eslint/lib/rules/strict.js
@@ -83,7 +83,8 @@ module.exports = {
docs: {
description: "require or disallow strict mode directives",
category: "Strict Mode",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/strict"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/switch-colon-spacing.js b/tools/node_modules/eslint/lib/rules/switch-colon-spacing.js
index 400e850997..cf19df6ed4 100644
--- a/tools/node_modules/eslint/lib/rules/switch-colon-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/switch-colon-spacing.js
@@ -20,7 +20,8 @@ module.exports = {
docs: {
description: "enforce spacing around colons of switch statements",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/switch-colon-spacing"
},
schema: [
{
diff --git a/tools/node_modules/eslint/lib/rules/symbol-description.js b/tools/node_modules/eslint/lib/rules/symbol-description.js
index 3f5ffd7463..95c1a1deb5 100644
--- a/tools/node_modules/eslint/lib/rules/symbol-description.js
+++ b/tools/node_modules/eslint/lib/rules/symbol-description.js
@@ -21,7 +21,8 @@ module.exports = {
docs: {
description: "require symbol descriptions",
category: "ECMAScript 6",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/symbol-description"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/template-curly-spacing.js b/tools/node_modules/eslint/lib/rules/template-curly-spacing.js
index 1d491a24c9..707ea76a36 100644
--- a/tools/node_modules/eslint/lib/rules/template-curly-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/template-curly-spacing.js
@@ -27,7 +27,8 @@ module.exports = {
docs: {
description: "require or disallow spacing around embedded expressions of template strings",
category: "ECMAScript 6",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/template-curly-spacing"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/template-tag-spacing.js b/tools/node_modules/eslint/lib/rules/template-tag-spacing.js
index 907c537ff3..aee7ac108b 100755
--- a/tools/node_modules/eslint/lib/rules/template-tag-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/template-tag-spacing.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "require or disallow spacing between template tags and their literals",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/template-tag-spacing"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/unicode-bom.js b/tools/node_modules/eslint/lib/rules/unicode-bom.js
index 7109a49edb..03b2d5ae68 100644
--- a/tools/node_modules/eslint/lib/rules/unicode-bom.js
+++ b/tools/node_modules/eslint/lib/rules/unicode-bom.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "require or disallow Unicode byte order mark (BOM)",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/unicode-bom"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/use-isnan.js b/tools/node_modules/eslint/lib/rules/use-isnan.js
index 5ec48a0386..5bad5b3c6d 100644
--- a/tools/node_modules/eslint/lib/rules/use-isnan.js
+++ b/tools/node_modules/eslint/lib/rules/use-isnan.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "require calls to `isNaN()` when checking for `NaN`",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/use-isnan"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/valid-jsdoc.js b/tools/node_modules/eslint/lib/rules/valid-jsdoc.js
index ea60b115ce..5e1af10de7 100644
--- a/tools/node_modules/eslint/lib/rules/valid-jsdoc.js
+++ b/tools/node_modules/eslint/lib/rules/valid-jsdoc.js
@@ -19,7 +19,8 @@ module.exports = {
docs: {
description: "enforce valid JSDoc comments",
category: "Possible Errors",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/valid-jsdoc"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/valid-typeof.js b/tools/node_modules/eslint/lib/rules/valid-typeof.js
index fba4cc5712..ac4e74f20b 100644
--- a/tools/node_modules/eslint/lib/rules/valid-typeof.js
+++ b/tools/node_modules/eslint/lib/rules/valid-typeof.js
@@ -13,7 +13,8 @@ module.exports = {
docs: {
description: "enforce comparing `typeof` expressions against valid strings",
category: "Possible Errors",
- recommended: true
+ recommended: true,
+ url: "https://eslint.org/docs/rules/valid-typeof"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/vars-on-top.js b/tools/node_modules/eslint/lib/rules/vars-on-top.js
index f74db905b1..8f6bf1d977 100644
--- a/tools/node_modules/eslint/lib/rules/vars-on-top.js
+++ b/tools/node_modules/eslint/lib/rules/vars-on-top.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "require `var` declarations be placed at the top of their containing scope",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/vars-on-top"
},
schema: []
diff --git a/tools/node_modules/eslint/lib/rules/wrap-iife.js b/tools/node_modules/eslint/lib/rules/wrap-iife.js
index c4e6a9e0c7..a21bf21634 100644
--- a/tools/node_modules/eslint/lib/rules/wrap-iife.js
+++ b/tools/node_modules/eslint/lib/rules/wrap-iife.js
@@ -20,7 +20,8 @@ module.exports = {
docs: {
description: "require parentheses around immediate `function` invocations",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/wrap-iife"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/rules/wrap-regex.js b/tools/node_modules/eslint/lib/rules/wrap-regex.js
index 79f3d30515..e58a4fe537 100644
--- a/tools/node_modules/eslint/lib/rules/wrap-regex.js
+++ b/tools/node_modules/eslint/lib/rules/wrap-regex.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "require parenthesis around regex literals",
category: "Stylistic Issues",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/wrap-regex"
},
schema: [],
diff --git a/tools/node_modules/eslint/lib/rules/yield-star-spacing.js b/tools/node_modules/eslint/lib/rules/yield-star-spacing.js
index eb20fc01b0..33a37f0d99 100644
--- a/tools/node_modules/eslint/lib/rules/yield-star-spacing.js
+++ b/tools/node_modules/eslint/lib/rules/yield-star-spacing.js
@@ -14,7 +14,8 @@ module.exports = {
docs: {
description: "require or disallow spacing around the `*` in `yield*` expressions",
category: "ECMAScript 6",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/yield-star-spacing"
},
fixable: "whitespace",
diff --git a/tools/node_modules/eslint/lib/rules/yoda.js b/tools/node_modules/eslint/lib/rules/yoda.js
index 2ccb61f73a..7f3bc6115b 100644
--- a/tools/node_modules/eslint/lib/rules/yoda.js
+++ b/tools/node_modules/eslint/lib/rules/yoda.js
@@ -155,7 +155,8 @@ module.exports = {
docs: {
description: "require or disallow \"Yoda\" conditions",
category: "Best Practices",
- recommended: false
+ recommended: false,
+ url: "https://eslint.org/docs/rules/yoda"
},
schema: [
diff --git a/tools/node_modules/eslint/lib/testers/rule-tester.js b/tools/node_modules/eslint/lib/testers/rule-tester.js
index aae66301d8..de218a875f 100644
--- a/tools/node_modules/eslint/lib/testers/rule-tester.js
+++ b/tools/node_modules/eslint/lib/testers/rule-tester.js
@@ -47,7 +47,8 @@ const lodash = require("lodash"),
ajv = require("../util/ajv"),
Linter = require("../linter"),
Environments = require("../config/environments"),
- SourceCodeFixer = require("../util/source-code-fixer");
+ SourceCodeFixer = require("../util/source-code-fixer"),
+ interpolate = require("../util/interpolate");
//------------------------------------------------------------------------------
// Private Members
@@ -131,13 +132,31 @@ const DESCRIBE = Symbol("describe");
const IT = Symbol("it");
/**
- * This is `it` or `describe` if those don't exist.
+ * This is `it` default handler if `it` don't exist.
* @this {Mocha}
* @param {string} text - The description of the test case.
* @param {Function} method - The logic of the test case.
* @returns {any} Returned value of `method`.
*/
-function defaultHandler(text, method) {
+function itDefaultHandler(text, method) {
+ try {
+ return method.apply(this);
+ } catch (err) {
+ if (err instanceof assert.AssertionError) {
+ err.message += ` (${util.inspect(err.actual)} ${err.operator} ${util.inspect(err.expected)})`;
+ }
+ throw err;
+ }
+}
+
+/**
+ * This is `describe` default handler if `describe` don't exist.
+ * @this {Mocha}
+ * @param {string} text - The description of the test case.
+ * @param {Function} method - The logic of the test case.
+ * @returns {any} Returned value of `method`.
+ */
+function describeDefaultHandler(text, method) {
return method.apply(this);
}
@@ -212,7 +231,7 @@ class RuleTester {
static get describe() {
return (
this[DESCRIBE] ||
- (typeof describe === "function" ? describe : defaultHandler)
+ (typeof describe === "function" ? describe : describeDefaultHandler)
);
}
@@ -223,7 +242,7 @@ class RuleTester {
static get it() {
return (
this[IT] ||
- (typeof it === "function" ? it : defaultHandler)
+ (typeof it === "function" ? it : itDefaultHandler)
);
}
@@ -454,59 +473,73 @@ class RuleTester {
const hasMessageOfThisRule = messages.some(m => m.ruleId === ruleName);
for (let i = 0, l = item.errors.length; i < l; i++) {
- assert(!messages[i].fatal, `A fatal parsing error occurred: ${messages[i].message}`);
+ const error = item.errors[i];
+ const message = messages[i];
+
+ assert(!message.fatal, `A fatal parsing error occurred: ${message.message}`);
assert(hasMessageOfThisRule, "Error rule name should be the same as the name of the rule being tested");
- if (typeof item.errors[i] === "string" || item.errors[i] instanceof RegExp) {
+ if (typeof error === "string" || error instanceof RegExp) {
// Just an error message.
- assertMessageMatches(messages[i].message, item.errors[i]);
- } else if (typeof item.errors[i] === "object") {
+ assertMessageMatches(message.message, error);
+ } else if (typeof error === "object") {
/*
* Error object.
* This may have a message, node type, line, and/or
* column.
*/
- if (item.errors[i].message) {
- assertMessageMatches(messages[i].message, item.errors[i].message);
+ if (error.message) {
+ assertMessageMatches(message.message, error.message);
}
- // The following checks use loose equality assertions for backwards compatibility.
+ if (error.messageId) {
+ const hOP = Object.hasOwnProperty.call.bind(Object.hasOwnProperty);
- if (item.errors[i].type) {
+ // verify that `error.message` is `undefined`
+ assert.strictEqual(error.message, void 0, "Error should not specify both a message and a messageId.");
+ if (!hOP(rule, "meta") || !hOP(rule.meta, "messages")) {
+ assert.fail("Rule must specify a messages hash in `meta`");
+ }
+ if (!hOP(rule.meta.messages, error.messageId)) {
+ const friendlyIDList = `[${Object.keys(rule.meta.messages).map(key => `'${key}'`).join(", ")}]`;
- // eslint-disable-next-line no-restricted-properties
- assert.equal(messages[i].nodeType, item.errors[i].type, `Error type should be ${item.errors[i].type}, found ${messages[i].nodeType}`);
- }
+ assert.fail(`Invalid messageId '${error.messageId}'. Expected one of ${friendlyIDList}.`);
+ }
- if (item.errors[i].hasOwnProperty("line")) {
+ let expectedMessage = rule.meta.messages[error.messageId];
- // eslint-disable-next-line no-restricted-properties
- assert.equal(messages[i].line, item.errors[i].line, `Error line should be ${item.errors[i].line}`);
- }
+ if (error.data) {
+ expectedMessage = interpolate(expectedMessage, error.data);
+ }
- if (item.errors[i].hasOwnProperty("column")) {
+ assertMessageMatches(message.message, expectedMessage);
+ }
- // eslint-disable-next-line no-restricted-properties
- assert.equal(messages[i].column, item.errors[i].column, `Error column should be ${item.errors[i].column}`);
+ if (error.type) {
+ assert.strictEqual(message.nodeType, error.type, `Error type should be ${error.type}, found ${message.nodeType}`);
}
- if (item.errors[i].hasOwnProperty("endLine")) {
+ if (error.hasOwnProperty("line")) {
+ assert.strictEqual(message.line, error.line, `Error line should be ${error.line}`);
+ }
- // eslint-disable-next-line no-restricted-properties
- assert.equal(messages[i].endLine, item.errors[i].endLine, `Error endLine should be ${item.errors[i].endLine}`);
+ if (error.hasOwnProperty("column")) {
+ assert.strictEqual(message.column, error.column, `Error column should be ${error.column}`);
}
- if (item.errors[i].hasOwnProperty("endColumn")) {
+ if (error.hasOwnProperty("endLine")) {
+ assert.strictEqual(message.endLine, error.endLine, `Error endLine should be ${error.endLine}`);
+ }
- // eslint-disable-next-line no-restricted-properties
- assert.equal(messages[i].endColumn, item.errors[i].endColumn, `Error endColumn should be ${item.errors[i].endColumn}`);
+ if (error.hasOwnProperty("endColumn")) {
+ assert.strictEqual(message.endColumn, error.endColumn, `Error endColumn should be ${error.endColumn}`);
}
} else {
// Message was an unexpected type
- assert.fail(messages[i], null, "Error should be a string, object, or RegExp.");
+ assert.fail(message, null, "Error should be a string, object, or RegExp.");
}
}
}
diff --git a/tools/node_modules/eslint/lib/util/interpolate.js b/tools/node_modules/eslint/lib/util/interpolate.js
new file mode 100644
index 0000000000..e0f2d027d1
--- /dev/null
+++ b/tools/node_modules/eslint/lib/util/interpolate.js
@@ -0,0 +1,24 @@
+/**
+ * @fileoverview Interpolate keys from an object into a string with {{ }} markers.
+ * @author Jed Fox
+ */
+
+"use strict";
+
+//------------------------------------------------------------------------------
+// Public Interface
+//------------------------------------------------------------------------------
+
+module.exports = (text, data) => {
+ if (!data) {
+ return text;
+ }
+ return text.replace(/\{\{\s*([^{}]+?)\s*\}\}/g, (fullMatch, term) => {
+ if (term in data) {
+ return data[term];
+ }
+
+ // Preserve old behavior: If parameter name not provided, don't replace it.
+ return fullMatch;
+ });
+};
diff --git a/tools/node_modules/eslint/lib/util/source-code.js b/tools/node_modules/eslint/lib/util/source-code.js
index 0bd710bf67..dee81aa10c 100644
--- a/tools/node_modules/eslint/lib/util/source-code.js
+++ b/tools/node_modules/eslint/lib/util/source-code.js
@@ -84,13 +84,30 @@ class SourceCode extends TokenStore {
/**
* Represents parsed source code.
- * @param {string} text - The source code text.
- * @param {ASTNode} ast - The Program node of the AST representing the code. This AST should be created from the text that BOM was stripped.
+ * @param {string|Object} textOrConfig - The source code text or config object.
+ * @param {string} textOrConfig.text - The source code text.
+ * @param {ASTNode} textOrConfig.ast - The Program node of the AST representing the code. This AST should be created from the text that BOM was stripped.
+ * @param {Object|null} textOrConfig.parserServices - The parser srevices.
+ * @param {ScopeManager|null} textOrConfig.scopeManager - The scope of this source code.
+ * @param {Object|null} textOrConfig.visitorKeys - The visitor keys to traverse AST.
+ * @param {ASTNode} [ast] - The Program node of the AST representing the code. This AST should be created from the text that BOM was stripped.
* @constructor
*/
- constructor(text, ast) {
- validate(ast);
+ constructor(textOrConfig, ast) {
+ let text, parserServices, scopeManager, visitorKeys;
+
+ // Process overloading.
+ if (typeof textOrConfig === "string") {
+ text = textOrConfig;
+ } else if (typeof textOrConfig === "object" && textOrConfig !== null) {
+ text = textOrConfig.text;
+ ast = textOrConfig.ast;
+ parserServices = textOrConfig.parserServices;
+ scopeManager = textOrConfig.scopeManager;
+ visitorKeys = textOrConfig.visitorKeys;
+ }
+ validate(ast);
super(ast.tokens, ast.comments);
/**
@@ -112,6 +129,24 @@ class SourceCode extends TokenStore {
*/
this.ast = ast;
+ /**
+ * The parser services of this source code.
+ * @type {Object}
+ */
+ this.parserServices = parserServices || {};
+
+ /**
+ * The scope of this source code.
+ * @type {ScopeManager|null}
+ */
+ this.scopeManager = scopeManager || null;
+
+ /**
+ * The visitor keys to traverse AST.
+ * @type {Object}
+ */
+ this.visitorKeys = visitorKeys || Traverser.DEFAULT_VISITOR_KEYS;
+
// Check the source text for the presence of a shebang since it is parsed as a standard line comment.
const shebangMatched = this.text.match(astUtils.SHEBANG_MATCHER);
const hasShebang = shebangMatched && ast.comments.length && ast.comments[0].value === shebangMatched[1];
@@ -353,9 +388,9 @@ class SourceCode extends TokenStore {
getNodeByRangeIndex(index) {
let result = null,
resultParent = null;
- const traverser = new Traverser();
- traverser.traverse(this.ast, {
+ Traverser.traverse(this.ast, {
+ visitorKeys: this.visitorKeys,
enter(node, parent) {
if (node.range[0] <= index && index < node.range[1]) {
result = node;
diff --git a/tools/node_modules/eslint/lib/util/traverser.js b/tools/node_modules/eslint/lib/util/traverser.js
index fc070186b3..79fb32faf9 100644
--- a/tools/node_modules/eslint/lib/util/traverser.js
+++ b/tools/node_modules/eslint/lib/util/traverser.js
@@ -1,6 +1,7 @@
/**
- * @fileoverview Wrapper around estraverse
+ * @fileoverview Traverser to traverse AST trees.
* @author Nicholas C. Zakas
+ * @author Toru Nagashima
*/
"use strict";
@@ -8,27 +9,153 @@
// Requirements
//------------------------------------------------------------------------------
-const estraverse = require("estraverse");
+const vk = require("eslint-visitor-keys");
+const debug = require("debug")("eslint:traverser");
//------------------------------------------------------------------------------
// Helpers
//------------------------------------------------------------------------------
-const KEY_BLACKLIST = new Set([
- "parent",
- "leadingComments",
- "trailingComments"
-]);
+/**
+ * Do nothing.
+ * @returns {void}
+ */
+function noop() {
+
+ // do nothing.
+}
+
+/**
+ * Check whether the given value is an ASTNode or not.
+ * @param {any} x The value to check.
+ * @returns {boolean} `true` if the value is an ASTNode.
+ */
+function isNode(x) {
+ return x !== null && typeof x === "object" && typeof x.type === "string";
+}
/**
- * Wrapper around an estraverse controller that ensures the correct keys
- * are visited.
- * @constructor
+ * Get the visitor keys of a given node.
+ * @param {Object} visitorKeys The map of visitor keys.
+ * @param {ASTNode} node The node to get their visitor keys.
+ * @returns {string[]} The visitor keys of the node.
*/
-class Traverser extends estraverse.Controller {
- traverse(node, visitor) {
- visitor.fallback = Traverser.getKeys;
- return super.traverse(node, visitor);
+function getVisitorKeys(visitorKeys, node) {
+ let keys = visitorKeys[node.type];
+
+ if (!keys) {
+ keys = vk.getKeys(node);
+ debug("Unknown node type \"%s\": Estimated visitor keys %j", node.type, keys);
+ }
+
+ return keys;
+}
+
+/**
+ * The traverser class to traverse AST trees.
+ */
+class Traverser {
+ constructor() {
+ this._current = null;
+ this._parents = [];
+ this._skipped = false;
+ this._broken = false;
+ this._visitorKeys = null;
+ this._enter = null;
+ this._leave = null;
+ }
+
+ /**
+ * @returns {ASTNode} The current node.
+ */
+ current() {
+ return this._current;
+ }
+
+ /**
+ * @returns {ASTNode[]} The ancestor nodes.
+ */
+ parents() {
+ return this._parents.slice(0);
+ }
+
+ /**
+ * Break the current traversal.
+ * @returns {void}
+ */
+ break() {
+ this._broken = true;
+ }
+
+ /**
+ * Skip child nodes for the current traversal.
+ * @returns {void}
+ */
+ skip() {
+ this._skipped = true;
+ }
+
+ /**
+ * Traverse the given AST tree.
+ * @param {ASTNode} node The root node to traverse.
+ * @param {Object} options The option object.
+ * @param {Object} [options.visitorKeys=DEFAULT_VISITOR_KEYS] The keys of each node types to traverse child nodes. Default is `./default-visitor-keys.json`.
+ * @param {Function} [options.enter=noop] The callback function which is called on entering each node.
+ * @param {Function} [options.leave=noop] The callback function which is called on leaving each node.
+ * @returns {void}
+ */
+ traverse(node, options) {
+ this._current = null;
+ this._parents = [];
+ this._skipped = false;
+ this._broken = false;
+ this._visitorKeys = options.visitorKeys || vk.KEYS;
+ this._enter = options.enter || noop;
+ this._leave = options.leave || noop;
+ this._traverse(node, null);
+ }
+
+ /**
+ * Traverse the given AST tree recursively.
+ * @param {ASTNode} node The current node.
+ * @param {ASTNode|null} parent The parent node.
+ * @returns {void}
+ * @private
+ */
+ _traverse(node, parent) {
+ if (!isNode(node)) {
+ return;
+ }
+
+ this._current = node;
+ this._skipped = false;
+ this._enter(node, parent);
+
+ if (!this._skipped && !this._broken) {
+ const keys = getVisitorKeys(this._visitorKeys, node);
+
+ if (keys.length >= 1) {
+ this._parents.push(node);
+ for (let i = 0; i < keys.length && !this._broken; ++i) {
+ const child = node[keys[i]];
+
+ if (Array.isArray(child)) {
+ for (let j = 0; j < child.length && !this._broken; ++j) {
+ this._traverse(child[j], node);
+ }
+ } else {
+ this._traverse(child, node);
+ }
+ }
+ this._parents.pop();
+ }
+ }
+
+ if (!this._broken) {
+ this._leave(node, parent);
+ }
+
+ this._current = parent;
}
/**
@@ -38,7 +165,28 @@ class Traverser extends estraverse.Controller {
* @private
*/
static getKeys(node) {
- return Object.keys(node).filter(key => !KEY_BLACKLIST.has(key));
+ return vk.getKeys(node);
+ }
+
+ /**
+ * Traverse the given AST tree.
+ * @param {ASTNode} node The root node to traverse.
+ * @param {Object} options The option object.
+ * @param {Object} [options.visitorKeys=DEFAULT_VISITOR_KEYS] The keys of each node types to traverse child nodes. Default is `./default-visitor-keys.json`.
+ * @param {Function} [options.enter=noop] The callback function which is called on entering each node.
+ * @param {Function} [options.leave=noop] The callback function which is called on leaving each node.
+ * @returns {void}
+ */
+ static traverse(node, options) {
+ new Traverser().traverse(node, options);
+ }
+
+ /**
+ * The default visitor keys.
+ * @type {Object}
+ */
+ static get DEFAULT_VISITOR_KEYS() {
+ return vk.KEYS;
}
}