Skip to content

Commit 99d8ad8

Browse files
authored
Merge pull request #1406 from jseminck/no-typos-bug
Fix crash for no-typos: Cannot read property 'name' of undefined
2 parents 0d6da79 + d64bcef commit 99d8ad8

File tree

3 files changed

+18
-2
lines changed

3 files changed

+18
-2
lines changed

lib/rules/no-typos.js

+9-1
Original file line numberDiff line numberDiff line change
@@ -117,13 +117,21 @@ module.exports = {
117117
},
118118

119119
MemberExpression: function(node) {
120+
const propertyName = node.property.name;
121+
122+
if (
123+
!propertyName ||
124+
STATIC_CLASS_PROPERTIES.map(prop => prop.toLocaleLowerCase()).indexOf(propertyName.toLowerCase()) === -1
125+
) {
126+
return;
127+
}
128+
120129
const relatedComponent = utils.getRelatedComponent(node);
121130

122131
if (
123132
relatedComponent &&
124133
(utils.isES6Component(relatedComponent.node) || utils.isReturningJSX(relatedComponent.node))
125134
) {
126-
const propertyName = node.property.name;
127135
reportErrorIfClassPropertyCasingTypo(node, propertyName);
128136
}
129137
},

lib/util/Components.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -537,7 +537,7 @@ function componentRule(rule, context) {
537537
continue;
538538
}
539539
for (k = 0, l = componentNode.properties.length; k < l; k++) {
540-
if (componentNode.properties[k].key.name === componentPath[i]) {
540+
if (componentNode.properties[k].key && componentNode.properties[k].key.name === componentPath[i]) {
541541
componentNode = componentNode.properties[k];
542542
break;
543543
}

tests/lib/rules/no-typos.js

+8
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,14 @@ ruleTester.run('no-typos', rule, {
336336
`,
337337
parser: 'babel-eslint',
338338
parserOptions: parserOptions
339+
}, {
340+
code: `
341+
const fn = (err, res) => {
342+
const { body: data = {} } = { ...res };
343+
data.time = data.time || {};
344+
};
345+
`,
346+
parser: 'babel-eslint'
339347
}],
340348

341349
invalid: [{

0 commit comments

Comments
 (0)