diff --git a/rules/ast/is-member-expression.js b/rules/ast/is-member-expression.js index ba3eac4dd0..d56beff687 100644 --- a/rules/ast/is-member-expression.js +++ b/rules/ast/is-member-expression.js @@ -49,13 +49,7 @@ function isMemberExpression(node, options) { } if ( - (computed === true && (node.computed !== computed)) - || ( - computed === false - // `node.computed` can be `undefined` in some parsers - && node.computed - ) - || (optional === true && (node.optional !== optional)) + (optional === true && (node.optional !== optional)) || ( optional === false // `node.optional` can be `undefined` in some parsers @@ -68,9 +62,23 @@ function isMemberExpression(node, options) { if ( Array.isArray(properties) && properties.length > 0 - && ( + ) { + if ( node.property.type !== 'Identifier' || !properties.includes(node.property.name) + ) { + return false; + } + + computed ??= false; + } + + if ( + (computed === true && (node.computed !== computed)) + || ( + computed === false + // `node.computed` can be `undefined` in some parsers + && node.computed ) ) { return false; diff --git a/rules/explicit-length-check.js b/rules/explicit-length-check.js index 3aad2d5682..67872bd8c2 100644 --- a/rules/explicit-length-check.js +++ b/rules/explicit-length-check.js @@ -144,7 +144,6 @@ function create(context) { !isMemberExpression(memberExpression, { properties: ['length', 'size'], optional: false, - computed: false, }) || memberExpression.object.type === 'ThisExpression' ) { diff --git a/rules/no-array-for-each.js b/rules/no-array-for-each.js index 348d121664..41af1ffda1 100644 --- a/rules/no-array-for-each.js +++ b/rules/no-array-for-each.js @@ -405,7 +405,6 @@ const create = context => { if ( !isMethodCall(node, { method: 'forEach', - computed: false, }) || isNodeMatches(node.callee.object, ignoredObjects) ) { diff --git a/rules/no-array-method-this-argument.js b/rules/no-array-method-this-argument.js index 591634f407..b646a292e4 100644 --- a/rules/no-array-method-this-argument.js +++ b/rules/no-array-method-this-argument.js @@ -122,7 +122,6 @@ const create = context => { argumentsLength: 2, optionalCall: false, optionalMember: false, - computed: false, }) || isNodeMatches(callExpression.callee, ignored) || isNodeValueNotFunction(callExpression.arguments[0]) diff --git a/rules/no-array-push-push.js b/rules/no-array-push-push.js index 0ef3c7c7e5..6d356f8e62 100644 --- a/rules/no-array-push-push.js +++ b/rules/no-array-push-push.js @@ -21,7 +21,6 @@ const isArrayPushCall = node => method: 'push', optionalCall: false, optionalMember: false, - computed: false, }); function getFirstArrayPushCall(secondCall, sourceCode) { diff --git a/rules/no-console-spaces.js b/rules/no-console-spaces.js index ceb16933ac..d0650273a8 100644 --- a/rules/no-console-spaces.js +++ b/rules/no-console-spaces.js @@ -45,7 +45,6 @@ const create = context => { minimumArguments: 1, optionalCall: false, optionalMember: false, - computed: false, }) ) { return; diff --git a/rules/prefer-dom-node-append.js b/rules/prefer-dom-node-append.js index 77719fab08..43526b7b33 100644 --- a/rules/prefer-dom-node-append.js +++ b/rules/prefer-dom-node-append.js @@ -15,7 +15,6 @@ const create = () => ({ method: 'appendChild', argumentsLength: 1, optionalCall: false, - computed: false, }) || isNodeValueNotDomNode(node.callee.object) || isNodeValueNotDomNode(node.arguments[0]) diff --git a/rules/prefer-dom-node-remove.js b/rules/prefer-dom-node-remove.js index 7bf0a15a6e..1411ec51a0 100644 --- a/rules/prefer-dom-node-remove.js +++ b/rules/prefer-dom-node-remove.js @@ -36,7 +36,6 @@ const create = context => { method: 'removeChild', argumentsLength: 1, optionalCall: false, - computed: false, }) || isNodeValueNotDomNode(node.callee.object) || isNodeValueNotDomNode(node.arguments[0]) diff --git a/rules/prefer-dom-node-text-content.js b/rules/prefer-dom-node-text-content.js index 236e7b419e..bc6df9eb06 100644 --- a/rules/prefer-dom-node-text-content.js +++ b/rules/prefer-dom-node-text-content.js @@ -25,7 +25,6 @@ const create = () => ({ if ( !isMemberExpression(memberExpression, { property: 'innerText', - computed: false, }) ) { return; diff --git a/rules/prefer-query-selector.js b/rules/prefer-query-selector.js index 0d7925e73d..321ba963cd 100644 --- a/rules/prefer-query-selector.js +++ b/rules/prefer-query-selector.js @@ -95,7 +95,6 @@ const create = () => ({ argumentsLength: 1, optionalCall: false, optionalMember: false, - computed: false, }) || isNodeValueNotDomNode(node.callee.object) ) { diff --git a/rules/prefer-set-size.js b/rules/prefer-set-size.js index 200b81c161..ebb6562994 100644 --- a/rules/prefer-set-size.js +++ b/rules/prefer-set-size.js @@ -67,7 +67,6 @@ const create = context => { !isMemberExpression(node, { property: 'length', optional: false, - computed: false, }) || node.object.type !== 'ArrayExpression' || node.object.elements.length !== 1 diff --git a/rules/utils/is-node-value-not-function.js b/rules/utils/is-node-value-not-function.js index a00ec4a118..36c8359a57 100644 --- a/rules/utils/is-node-value-not-function.js +++ b/rules/utils/is-node-value-not-function.js @@ -35,7 +35,6 @@ const isNodeValueNotFunction = node => ( method: 'bind', optionalCall: false, optionalMember: false, - computed: false, })) ) );