Skip to content

Commit e635964

Browse files
committed
[Fix] display-name: avoid crash on for..of
Fixes #2137.
1 parent 433cc3f commit e635964

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

lib/util/Components.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -567,7 +567,12 @@ function componentRule(rule, context) {
567567
}
568568
if (refId.type === 'MemberExpression') {
569569
componentNode = refId.parent.right;
570-
} else if (refId.parent && refId.parent.type === 'VariableDeclarator' && refId.parent.init.type !== 'Identifier') {
570+
} else if (
571+
refId.parent
572+
&& refId.parent.type === 'VariableDeclarator'
573+
&& refId.parent.init
574+
&& refId.parent.init.type !== 'Identifier'
575+
) {
571576
componentNode = refId.parent.init;
572577
}
573578
break;

tests/lib/rules/display-name.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -452,6 +452,17 @@ ruleTester.run('display-name', rule, {
452452
453453
export default React.memo(Component)
454454
`
455+
}, {
456+
code: `
457+
function F() {
458+
let items = [];
459+
let testData = [{a: "test1", displayName: "test2"}, {a: "test1", displayName: "test2"}];
460+
for (let item of testData) {
461+
items.push({a: item.a, b: item.displayName});
462+
}
463+
return <div>{items}</div>;
464+
}
465+
`
455466
}],
456467

457468
invalid: [{

0 commit comments

Comments
 (0)