eslint 5.6.0 → 5.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +65 -0
- package/bin/eslint.js +0 -1
- package/lib/cli-engine.js +128 -31
- package/lib/cli.js +6 -1
- package/lib/linter.js +9 -0
- package/lib/options.js +5 -0
- package/lib/rules/accessor-pairs.js +4 -0
- package/lib/rules/array-bracket-newline.js +5 -0
- package/lib/rules/array-bracket-spacing.js +5 -0
- package/lib/rules/array-callback-return.js +2 -0
- package/lib/rules/array-element-newline.js +4 -0
- package/lib/rules/arrow-body-style.js +2 -0
- package/lib/rules/arrow-parens.js +2 -0
- package/lib/rules/arrow-spacing.js +2 -0
- package/lib/rules/block-scoped-var.js +2 -0
- package/lib/rules/block-spacing.js +2 -0
- package/lib/rules/brace-style.js +2 -0
- package/lib/rules/callback-return.js +2 -0
- package/lib/rules/camelcase.js +38 -8
- package/lib/rules/capitalized-comments.js +4 -0
- package/lib/rules/class-methods-use-this.js +3 -0
- package/lib/rules/comma-dangle.js +4 -0
- package/lib/rules/comma-spacing.js +2 -0
- package/lib/rules/comma-style.js +5 -0
- package/lib/rules/complexity.js +2 -0
- package/lib/rules/computed-property-spacing.js +2 -0
- package/lib/rules/consistent-return.js +2 -0
- package/lib/rules/consistent-this.js +2 -0
- package/lib/rules/constructor-super.js +2 -0
- package/lib/rules/curly.js +2 -0
- package/lib/rules/default-case.js +2 -0
- package/lib/rules/dot-location.js +2 -0
- package/lib/rules/dot-notation.js +2 -0
- package/lib/rules/eol-last.js +5 -0
- package/lib/rules/eqeqeq.js +2 -0
- package/lib/rules/for-direction.js +4 -0
- package/lib/rules/func-call-spacing.js +4 -0
- package/lib/rules/func-name-matching.js +3 -0
- package/lib/rules/func-names.js +3 -0
- package/lib/rules/func-style.js +3 -0
- package/lib/rules/function-paren-newline.js +5 -0
- package/lib/rules/generator-star-spacing.js +3 -0
- package/lib/rules/getter-return.js +5 -0
- package/lib/rules/global-require.js +2 -0
- package/lib/rules/guard-for-in.js +2 -0
- package/lib/rules/handle-callback-err.js +2 -0
- package/lib/rules/id-blacklist.js +2 -0
- package/lib/rules/id-length.js +2 -0
- package/lib/rules/id-match.js +101 -27
- package/lib/rules/implicit-arrow-linebreak.js +4 -0
- package/lib/rules/indent-legacy.js +4 -1
- package/lib/rules/indent.js +2 -0
- package/lib/rules/init-declarations.js +2 -0
- package/lib/rules/jsx-quotes.js +2 -0
- package/lib/rules/key-spacing.js +4 -3
- package/lib/rules/keyword-spacing.js +2 -0
- package/lib/rules/line-comment-position.js +2 -0
- package/lib/rules/linebreak-style.js +2 -0
- package/lib/rules/lines-around-comment.js +2 -0
- package/lib/rules/lines-around-directive.js +6 -2
- package/lib/rules/lines-between-class-members.js +2 -0
- package/lib/rules/max-classes-per-file.js +4 -0
- package/lib/rules/max-depth.js +2 -0
- package/lib/rules/max-len.js +2 -0
- package/lib/rules/max-lines-per-function.js +2 -0
- package/lib/rules/max-lines.js +2 -0
- package/lib/rules/max-nested-callbacks.js +2 -0
- package/lib/rules/max-params.js +2 -0
- package/lib/rules/max-statements-per-line.js +2 -0
- package/lib/rules/max-statements.js +2 -0
- package/lib/rules/multiline-comment-style.js +3 -0
- package/lib/rules/multiline-ternary.js +3 -0
- package/lib/rules/new-cap.js +2 -0
- package/lib/rules/new-parens.js +2 -1
- package/lib/rules/newline-after-var.js +5 -2
- package/lib/rules/newline-before-return.js +5 -2
- package/lib/rules/newline-per-chained-call.js +4 -0
- package/lib/rules/no-alert.js +2 -0
- package/lib/rules/no-array-constructor.js +2 -0
- package/lib/rules/no-async-promise-executor.js +3 -0
- package/lib/rules/no-await-in-loop.js +4 -0
- package/lib/rules/no-bitwise.js +2 -0
- package/lib/rules/no-buffer-constructor.js +4 -0
- package/lib/rules/no-caller.js +2 -0
- package/lib/rules/no-case-declarations.js +2 -0
- package/lib/rules/no-catch-shadow.js +6 -3
- package/lib/rules/no-class-assign.js +2 -0
- package/lib/rules/no-compare-neg-zero.js +4 -0
- package/lib/rules/no-cond-assign.js +2 -0
- package/lib/rules/no-confusing-arrow.js +2 -0
- package/lib/rules/no-console.js +2 -0
- package/lib/rules/no-const-assign.js +2 -0
- package/lib/rules/no-constant-condition.js +2 -0
- package/lib/rules/no-continue.js +2 -0
- package/lib/rules/no-control-regex.js +4 -2
- package/lib/rules/no-debugger.js +4 -0
- package/lib/rules/no-delete-var.js +2 -0
- package/lib/rules/no-div-regex.js +2 -0
- package/lib/rules/no-dupe-args.js +2 -0
- package/lib/rules/no-dupe-class-members.js +2 -0
- package/lib/rules/no-dupe-keys.js +2 -0
- package/lib/rules/no-duplicate-case.js +2 -0
- package/lib/rules/no-duplicate-imports.js +2 -0
- package/lib/rules/no-else-return.js +2 -0
- package/lib/rules/no-empty-character-class.js +2 -0
- package/lib/rules/no-empty-function.js +2 -0
- package/lib/rules/no-empty-pattern.js +2 -0
- package/lib/rules/no-empty.js +2 -0
- package/lib/rules/no-eq-null.js +2 -0
- package/lib/rules/no-eval.js +2 -0
- package/lib/rules/no-ex-assign.js +2 -0
- package/lib/rules/no-extend-native.js +2 -0
- package/lib/rules/no-extra-bind.js +24 -1
- package/lib/rules/no-extra-boolean-cast.js +2 -1
- package/lib/rules/no-extra-label.js +2 -1
- package/lib/rules/no-extra-parens.js +5 -6
- package/lib/rules/no-extra-semi.js +2 -0
- package/lib/rules/no-fallthrough.js +2 -0
- package/lib/rules/no-floating-decimal.js +2 -1
- package/lib/rules/no-func-assign.js +2 -0
- package/lib/rules/no-global-assign.js +2 -0
- package/lib/rules/no-implicit-coercion.js +3 -0
- package/lib/rules/no-implicit-globals.js +2 -0
- package/lib/rules/no-implied-eval.js +2 -0
- package/lib/rules/no-inline-comments.js +2 -0
- package/lib/rules/no-inner-declarations.js +2 -0
- package/lib/rules/no-invalid-regexp.js +2 -0
- package/lib/rules/no-invalid-this.js +2 -0
- package/lib/rules/no-irregular-whitespace.js +6 -8
- package/lib/rules/no-iterator.js +2 -0
- package/lib/rules/no-label-var.js +2 -0
- package/lib/rules/no-labels.js +2 -0
- package/lib/rules/no-lone-blocks.js +2 -0
- package/lib/rules/no-lonely-if.js +2 -1
- package/lib/rules/no-loop-func.js +2 -0
- package/lib/rules/no-magic-numbers.js +3 -0
- package/lib/rules/no-misleading-character-class.js +4 -0
- package/lib/rules/no-mixed-operators.js +3 -0
- package/lib/rules/no-mixed-requires.js +2 -0
- package/lib/rules/no-mixed-spaces-and-tabs.js +2 -0
- package/lib/rules/no-multi-assign.js +3 -0
- package/lib/rules/no-multi-spaces.js +2 -0
- package/lib/rules/no-multi-str.js +2 -0
- package/lib/rules/no-multiple-empty-lines.js +2 -0
- package/lib/rules/no-native-reassign.js +4 -1
- package/lib/rules/no-negated-condition.js +2 -0
- package/lib/rules/no-negated-in-lhs.js +5 -2
- package/lib/rules/no-nested-ternary.js +2 -0
- package/lib/rules/no-new-func.js +2 -0
- package/lib/rules/no-new-object.js +2 -0
- package/lib/rules/no-new-require.js +2 -0
- package/lib/rules/no-new-symbol.js +2 -0
- package/lib/rules/no-new-wrappers.js +2 -0
- package/lib/rules/no-new.js +2 -0
- package/lib/rules/no-obj-calls.js +2 -0
- package/lib/rules/no-octal-escape.js +2 -0
- package/lib/rules/no-octal.js +2 -0
- package/lib/rules/no-param-reassign.js +2 -0
- package/lib/rules/no-path-concat.js +2 -0
- package/lib/rules/no-plusplus.js +2 -0
- package/lib/rules/no-process-env.js +2 -0
- package/lib/rules/no-process-exit.js +2 -0
- package/lib/rules/no-proto.js +2 -0
- package/lib/rules/no-prototype-builtins.js +2 -0
- package/lib/rules/no-redeclare.js +2 -0
- package/lib/rules/no-regex-spaces.js +2 -1
- package/lib/rules/no-restricted-globals.js +2 -0
- package/lib/rules/no-restricted-imports.js +40 -22
- package/lib/rules/no-restricted-modules.js +2 -0
- package/lib/rules/no-restricted-properties.js +2 -0
- package/lib/rules/no-restricted-syntax.js +2 -0
- package/lib/rules/no-return-assign.js +2 -0
- package/lib/rules/no-return-await.js +4 -0
- package/lib/rules/no-script-url.js +2 -0
- package/lib/rules/no-self-assign.js +2 -0
- package/lib/rules/no-self-compare.js +2 -0
- package/lib/rules/no-sequences.js +2 -0
- package/lib/rules/no-shadow-restricted-names.js +2 -0
- package/lib/rules/no-shadow.js +2 -0
- package/lib/rules/no-spaced-func.js +4 -1
- package/lib/rules/no-sparse-arrays.js +2 -0
- package/lib/rules/no-sync.js +2 -0
- package/lib/rules/no-tabs.js +25 -6
- package/lib/rules/no-template-curly-in-string.js +2 -0
- package/lib/rules/no-ternary.js +2 -0
- package/lib/rules/no-this-before-super.js +2 -0
- package/lib/rules/no-throw-literal.js +2 -0
- package/lib/rules/no-trailing-spaces.js +2 -0
- package/lib/rules/no-undef-init.js +2 -1
- package/lib/rules/no-undef.js +2 -0
- package/lib/rules/no-undefined.js +2 -0
- package/lib/rules/no-underscore-dangle.js +2 -0
- package/lib/rules/no-unexpected-multiline.js +2 -0
- package/lib/rules/no-unmodified-loop-condition.js +2 -0
- package/lib/rules/no-unneeded-ternary.js +2 -0
- package/lib/rules/no-unreachable.js +2 -1
- package/lib/rules/no-unsafe-finally.js +2 -0
- package/lib/rules/no-unsafe-negation.js +3 -0
- package/lib/rules/no-unused-expressions.js +2 -0
- package/lib/rules/no-unused-labels.js +2 -1
- package/lib/rules/no-unused-vars.js +37 -13
- package/lib/rules/no-use-before-define.js +2 -0
- package/lib/rules/no-useless-call.js +2 -0
- package/lib/rules/no-useless-computed-key.js +2 -1
- package/lib/rules/no-useless-concat.js +2 -0
- package/lib/rules/no-useless-constructor.js +2 -0
- package/lib/rules/no-useless-escape.js +2 -0
- package/lib/rules/no-useless-rename.js +4 -0
- package/lib/rules/no-useless-return.js +3 -0
- package/lib/rules/no-var.js +2 -0
- package/lib/rules/no-void.js +2 -0
- package/lib/rules/no-warning-comments.js +2 -0
- package/lib/rules/no-whitespace-before-property.js +2 -0
- package/lib/rules/no-with.js +2 -0
- package/lib/rules/nonblock-statement-body-position.js +4 -0
- package/lib/rules/object-curly-newline.js +4 -0
- package/lib/rules/object-curly-spacing.js +2 -0
- package/lib/rules/object-property-newline.js +3 -2
- package/lib/rules/object-shorthand.js +2 -0
- package/lib/rules/one-var-declaration-per-line.js +2 -0
- package/lib/rules/one-var.js +13 -1
- package/lib/rules/operator-assignment.js +2 -0
- package/lib/rules/operator-linebreak.js +2 -0
- package/lib/rules/padded-blocks.js +2 -0
- package/lib/rules/padding-line-between-statements.js +7 -0
- package/lib/rules/prefer-arrow-callback.js +2 -0
- package/lib/rules/prefer-const.js +116 -11
- package/lib/rules/prefer-destructuring.js +3 -0
- package/lib/rules/prefer-numeric-literals.js +2 -1
- package/lib/rules/prefer-object-spread.js +4 -0
- package/lib/rules/prefer-promise-reject-errors.js +4 -0
- package/lib/rules/prefer-reflect.js +4 -1
- package/lib/rules/prefer-rest-params.js +2 -0
- package/lib/rules/prefer-spread.js +2 -1
- package/lib/rules/prefer-template.js +2 -1
- package/lib/rules/quote-props.js +2 -0
- package/lib/rules/quotes.js +2 -0
- package/lib/rules/radix.js +2 -0
- package/lib/rules/require-atomic-updates.js +91 -30
- package/lib/rules/require-await.js +3 -0
- package/lib/rules/require-jsdoc.js +2 -0
- package/lib/rules/require-unicode-regexp.js +4 -0
- package/lib/rules/require-yield.js +2 -0
- package/lib/rules/rest-spread-spacing.js +4 -0
- package/lib/rules/semi-spacing.js +2 -0
- package/lib/rules/semi-style.js +3 -0
- package/lib/rules/semi.js +2 -0
- package/lib/rules/sort-imports.js +2 -0
- package/lib/rules/sort-keys.js +3 -0
- package/lib/rules/sort-vars.js +2 -0
- package/lib/rules/space-before-blocks.js +46 -35
- package/lib/rules/space-before-function-paren.js +2 -0
- package/lib/rules/space-in-parens.js +2 -0
- package/lib/rules/space-infix-ops.js +18 -25
- package/lib/rules/space-unary-ops.js +2 -0
- package/lib/rules/spaced-comment.js +2 -0
- package/lib/rules/strict.js +2 -0
- package/lib/rules/switch-colon-spacing.js +4 -0
- package/lib/rules/symbol-description.js +2 -0
- package/lib/rules/template-curly-spacing.js +2 -0
- package/lib/rules/template-tag-spacing.js +2 -0
- package/lib/rules/unicode-bom.js +2 -0
- package/lib/rules/use-isnan.js +2 -0
- package/lib/rules/valid-jsdoc.js +2 -0
- package/lib/rules/valid-typeof.js +2 -0
- package/lib/rules/vars-on-top.js +2 -0
- package/lib/rules/wrap-iife.js +2 -0
- package/lib/rules/wrap-regex.js +3 -1
- package/lib/rules/yield-star-spacing.js +2 -0
- package/lib/rules/yoda.js +2 -0
- package/lib/testers/rule-tester.js +2 -2
- package/lib/util/source-code-fixer.js +1 -1
- package/package.json +12 -12
package/lib/rules/no-bitwise.js
CHANGED
@@ -10,13 +10,17 @@
|
|
10
10
|
|
11
11
|
module.exports = {
|
12
12
|
meta: {
|
13
|
+
type: "problem",
|
14
|
+
|
13
15
|
docs: {
|
14
16
|
description: "disallow use of the `Buffer()` constructor",
|
15
17
|
category: "Node.js and CommonJS",
|
16
18
|
recommended: false,
|
17
19
|
url: "https://eslint.org/docs/rules/no-buffer-constructor"
|
18
20
|
},
|
21
|
+
|
19
22
|
schema: [],
|
23
|
+
|
20
24
|
messages: {
|
21
25
|
deprecated: "{{expr}} is deprecated. Use Buffer.from(), Buffer.alloc(), or Buffer.allocUnsafe() instead."
|
22
26
|
}
|
package/lib/rules/no-caller.js
CHANGED
@@ -18,15 +18,18 @@ const astUtils = require("../util/ast-utils");
|
|
18
18
|
|
19
19
|
module.exports = {
|
20
20
|
meta: {
|
21
|
+
type: "suggestion",
|
22
|
+
|
21
23
|
docs: {
|
22
24
|
description: "disallow `catch` clause parameters from shadowing variables in the outer scope",
|
23
25
|
category: "Variables",
|
24
26
|
recommended: false,
|
25
|
-
url: "https://eslint.org/docs/rules/no-catch-shadow"
|
26
|
-
replacedBy: ["no-shadow"]
|
27
|
+
url: "https://eslint.org/docs/rules/no-catch-shadow"
|
27
28
|
},
|
28
|
-
deprecated: true,
|
29
29
|
|
30
|
+
replacedBy: ["no-shadow"],
|
31
|
+
|
32
|
+
deprecated: true,
|
30
33
|
schema: [],
|
31
34
|
|
32
35
|
messages: {
|
@@ -10,14 +10,18 @@
|
|
10
10
|
|
11
11
|
module.exports = {
|
12
12
|
meta: {
|
13
|
+
type: "problem",
|
14
|
+
|
13
15
|
docs: {
|
14
16
|
description: "disallow comparing against -0",
|
15
17
|
category: "Possible Errors",
|
16
18
|
recommended: true,
|
17
19
|
url: "https://eslint.org/docs/rules/no-compare-neg-zero"
|
18
20
|
},
|
21
|
+
|
19
22
|
fixable: null,
|
20
23
|
schema: [],
|
24
|
+
|
21
25
|
messages: {
|
22
26
|
unexpected: "Do not use the '{{operator}}' operator to compare against -0."
|
23
27
|
}
|
package/lib/rules/no-console.js
CHANGED
package/lib/rules/no-continue.js
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
"use strict";
|
7
7
|
|
8
8
|
const RegExpValidator = require("regexpp").RegExpValidator;
|
9
|
-
const collector = new class {
|
9
|
+
const collector = new (class {
|
10
10
|
constructor() {
|
11
11
|
this.ecmaVersion = 2018;
|
12
12
|
this._source = "";
|
@@ -41,7 +41,7 @@ const collector = new class {
|
|
41
41
|
}
|
42
42
|
return this._controlChars;
|
43
43
|
}
|
44
|
-
}();
|
44
|
+
})();
|
45
45
|
|
46
46
|
//------------------------------------------------------------------------------
|
47
47
|
// Rule Definition
|
@@ -49,6 +49,8 @@ const collector = new class {
|
|
49
49
|
|
50
50
|
module.exports = {
|
51
51
|
meta: {
|
52
|
+
type: "problem",
|
53
|
+
|
52
54
|
docs: {
|
53
55
|
description: "disallow control characters in regular expressions",
|
54
56
|
category: "Possible Errors",
|
package/lib/rules/no-debugger.js
CHANGED
@@ -11,14 +11,18 @@
|
|
11
11
|
|
12
12
|
module.exports = {
|
13
13
|
meta: {
|
14
|
+
type: "problem",
|
15
|
+
|
14
16
|
docs: {
|
15
17
|
description: "disallow the use of `debugger`",
|
16
18
|
category: "Possible Errors",
|
17
19
|
recommended: true,
|
18
20
|
url: "https://eslint.org/docs/rules/no-debugger"
|
19
21
|
},
|
22
|
+
|
20
23
|
fixable: null,
|
21
24
|
schema: [],
|
25
|
+
|
22
26
|
messages: {
|
23
27
|
unexpected: "Unexpected 'debugger' statement."
|
24
28
|
}
|
package/lib/rules/no-empty.js
CHANGED
package/lib/rules/no-eq-null.js
CHANGED
package/lib/rules/no-eval.js
CHANGED
@@ -10,12 +10,20 @@
|
|
10
10
|
|
11
11
|
const astUtils = require("../util/ast-utils");
|
12
12
|
|
13
|
+
//------------------------------------------------------------------------------
|
14
|
+
// Helpers
|
15
|
+
//------------------------------------------------------------------------------
|
16
|
+
|
17
|
+
const SIDE_EFFECT_FREE_NODE_TYPES = new Set(["Literal", "Identifier", "ThisExpression", "FunctionExpression"]);
|
18
|
+
|
13
19
|
//------------------------------------------------------------------------------
|
14
20
|
// Rule Definition
|
15
21
|
//------------------------------------------------------------------------------
|
16
22
|
|
17
23
|
module.exports = {
|
18
24
|
meta: {
|
25
|
+
type: "suggestion",
|
26
|
+
|
19
27
|
docs: {
|
20
28
|
description: "disallow unnecessary calls to `.bind()`",
|
21
29
|
category: "Best Practices",
|
@@ -24,7 +32,6 @@ module.exports = {
|
|
24
32
|
},
|
25
33
|
|
26
34
|
schema: [],
|
27
|
-
|
28
35
|
fixable: "code",
|
29
36
|
|
30
37
|
messages: {
|
@@ -35,6 +42,18 @@ module.exports = {
|
|
35
42
|
create(context) {
|
36
43
|
let scopeInfo = null;
|
37
44
|
|
45
|
+
/**
|
46
|
+
* Checks if a node is free of side effects.
|
47
|
+
*
|
48
|
+
* This check is stricter than it needs to be, in order to keep the implementation simple.
|
49
|
+
*
|
50
|
+
* @param {ASTNode} node A node to check.
|
51
|
+
* @returns {boolean} True if the node is known to be side-effect free, false otherwise.
|
52
|
+
*/
|
53
|
+
function isSideEffectFree(node) {
|
54
|
+
return SIDE_EFFECT_FREE_NODE_TYPES.has(node.type);
|
55
|
+
}
|
56
|
+
|
38
57
|
/**
|
39
58
|
* Reports a given function node.
|
40
59
|
*
|
@@ -48,6 +67,10 @@ module.exports = {
|
|
48
67
|
messageId: "unexpected",
|
49
68
|
loc: node.parent.property.loc.start,
|
50
69
|
fix(fixer) {
|
70
|
+
if (node.parent.parent.arguments.length && !isSideEffectFree(node.parent.parent.arguments[0])) {
|
71
|
+
return null;
|
72
|
+
}
|
73
|
+
|
51
74
|
const firstTokenToRemove = context.getSourceCode()
|
52
75
|
.getFirstTokenBetween(node.parent.object, node.parent.property, astUtils.isNotClosingParenToken);
|
53
76
|
|
@@ -17,6 +17,8 @@ const astUtils = require("../util/ast-utils");
|
|
17
17
|
|
18
18
|
module.exports = {
|
19
19
|
meta: {
|
20
|
+
type: "suggestion",
|
21
|
+
|
20
22
|
docs: {
|
21
23
|
description: "disallow unnecessary boolean casts",
|
22
24
|
category: "Possible Errors",
|
@@ -25,7 +27,6 @@ module.exports = {
|
|
25
27
|
},
|
26
28
|
|
27
29
|
schema: [],
|
28
|
-
|
29
30
|
fixable: "code",
|
30
31
|
|
31
32
|
messages: {
|
@@ -17,6 +17,8 @@ const astUtils = require("../util/ast-utils");
|
|
17
17
|
|
18
18
|
module.exports = {
|
19
19
|
meta: {
|
20
|
+
type: "suggestion",
|
21
|
+
|
20
22
|
docs: {
|
21
23
|
description: "disallow unnecessary labels",
|
22
24
|
category: "Best Practices",
|
@@ -25,7 +27,6 @@ module.exports = {
|
|
25
27
|
},
|
26
28
|
|
27
29
|
schema: [],
|
28
|
-
|
29
30
|
fixable: "code",
|
30
31
|
|
31
32
|
messages: {
|
@@ -12,6 +12,8 @@ const astUtils = require("../util/ast-utils.js");
|
|
12
12
|
|
13
13
|
module.exports = {
|
14
14
|
meta: {
|
15
|
+
type: "layout",
|
16
|
+
|
15
17
|
docs: {
|
16
18
|
description: "disallow unnecessary parentheses",
|
17
19
|
category: "Possible Errors",
|
@@ -382,8 +384,7 @@ module.exports = {
|
|
382
384
|
* Allow extra parens around a new expression if
|
383
385
|
* there are intervening parentheses.
|
384
386
|
*/
|
385
|
-
callee.type === "MemberExpression" &&
|
386
|
-
doesMemberExpressionContainCallExpression(callee)
|
387
|
+
(callee.type === "MemberExpression" && doesMemberExpressionContainCallExpression(callee))
|
387
388
|
)
|
388
389
|
) {
|
389
390
|
report(node.callee);
|
@@ -574,15 +575,13 @@ module.exports = {
|
|
574
575
|
* If `let` is the only thing on the left side of the loop, it's the loop variable: `for ((let) of foo);`
|
575
576
|
* Removing it will cause a syntax error, because it will be parsed as the start of a VariableDeclarator.
|
576
577
|
*/
|
577
|
-
firstLeftToken.range[1] === node.left.range[1] ||
|
578
|
-
|
579
|
-
/*
|
578
|
+
(firstLeftToken.range[1] === node.left.range[1] || /*
|
580
579
|
* If `let` is followed by a `[` token, it's a property access on the `let` value: `for ((let[foo]) of bar);`
|
581
580
|
* Removing it will cause the property access to be parsed as a destructuring declaration of `foo` instead.
|
582
581
|
*/
|
583
582
|
astUtils.isOpeningBracketToken(
|
584
583
|
sourceCode.getTokenAfter(firstLeftToken, astUtils.isNotClosingParenToken)
|
585
|
-
)
|
584
|
+
))
|
586
585
|
)
|
587
586
|
) {
|
588
587
|
tokensToIgnore.add(firstLeftToken);
|
@@ -17,6 +17,8 @@ const astUtils = require("../util/ast-utils");
|
|
17
17
|
|
18
18
|
module.exports = {
|
19
19
|
meta: {
|
20
|
+
type: "suggestion",
|
21
|
+
|
20
22
|
docs: {
|
21
23
|
description: "disallow leading or trailing decimal points in numeric literals",
|
22
24
|
category: "Best Practices",
|
@@ -25,7 +27,6 @@ module.exports = {
|
|
25
27
|
},
|
26
28
|
|
27
29
|
schema: [],
|
28
|
-
|
29
30
|
fixable: "code"
|
30
31
|
},
|
31
32
|
|
@@ -152,6 +152,8 @@ function getNonEmptyOperand(node) {
|
|
152
152
|
|
153
153
|
module.exports = {
|
154
154
|
meta: {
|
155
|
+
type: "suggestion",
|
156
|
+
|
155
157
|
docs: {
|
156
158
|
description: "disallow shorthand type conversions",
|
157
159
|
category: "Best Practices",
|
@@ -160,6 +162,7 @@ module.exports = {
|
|
160
162
|
},
|
161
163
|
|
162
164
|
fixable: "code",
|
165
|
+
|
163
166
|
schema: [{
|
164
167
|
type: "object",
|
165
168
|
properties: {
|