Skip to content

Commit d3af335

Browse files
committed
Fix object access in jsx-no-undef (fixes #172)
1 parent 1258f32 commit d3af335

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

lib/rules/jsx-no-undef.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,20 @@ module.exports = function(context) {
5555

5656
return {
5757
JSXOpeningElement: function(node) {
58-
if (isTagName(node.name.name)) {
58+
switch (node.name.type) {
59+
case 'JSXIdentifier':
60+
node = node.name;
61+
break;
62+
case 'JSXMemberExpression':
63+
node = node.name.object;
64+
break;
65+
default:
66+
break;
67+
}
68+
if (isTagName(node.name)) {
5969
return;
6070
}
61-
checkIdentifierInJSX(node.name);
71+
checkIdentifierInJSX(node);
6272
}
6373
};
6474

tests/lib/rules/jsx-no-undef.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,5 +38,11 @@ eslintTester.addRuleTest('lib/rules/jsx-no-undef', {
3838
message: '\'App\' is not defined.'
3939
}],
4040
ecmaFeatures: {jsx: true}
41+
}, {
42+
code: '/*eslint no-undef:1*/ var React; React.render(<Appp.Foo />);',
43+
errors: [{
44+
message: '\'Appp\' is not defined.'
45+
}],
46+
ecmaFeatures: {jsx: true}
4147
}]
4248
});

0 commit comments

Comments
 (0)