diff --git a/lib/rules/jsx-no-target-blank.js b/lib/rules/jsx-no-target-blank.js
index 75e1805115..1e3cf20f81 100644
--- a/lib/rules/jsx-no-target-blank.js
+++ b/lib/rules/jsx-no-target-blank.js
@@ -26,8 +26,8 @@ function hasExternalLink(element) {
function hasSecureRel(element) {
return element.attributes.find(function (attr) {
if (attr.name.name === 'rel') {
- var tags = attr.value.type === 'Literal' && attr.value.value.toLowerCase().split(' ');
- return !tags || (tags.indexOf('noopener') >= 0 && tags.indexOf('noreferrer') >= 0);
+ var tags = attr.value && attr.value.type === 'Literal' && attr.value.value.toLowerCase().split(' ');
+ return tags && (tags.indexOf('noopener') >= 0 && tags.indexOf('noreferrer') >= 0);
}
return false;
});
diff --git a/tests/lib/rules/jsx-no-target-blank.js b/tests/lib/rules/jsx-no-target-blank.js
index d20084ba20..c8ee8f17a6 100644
--- a/tests/lib/rules/jsx-no-target-blank.js
+++ b/tests/lib/rules/jsx-no-target-blank.js
@@ -69,5 +69,29 @@ ruleTester.run('jsx-no-target-blank', rule, {
message: 'Using target="_blank" without rel="noopener noreferrer" is a security risk:' +
' see https://mathiasbynens.github.io/rel-noopener'
}]
+ }, {
+ code: '',
+ errors: [{
+ message: 'Using target="_blank" without rel="noopener noreferrer" is a security risk:' +
+ ' see https://mathiasbynens.github.io/rel-noopener'
+ }]
+ }, {
+ code: '',
+ errors: [{
+ message: 'Using target="_blank" without rel="noopener noreferrer" is a security risk:' +
+ ' see https://mathiasbynens.github.io/rel-noopener'
+ }]
+ }, {
+ code: '',
+ errors: [{
+ message: 'Using target="_blank" without rel="noopener noreferrer" is a security risk:' +
+ ' see https://mathiasbynens.github.io/rel-noopener'
+ }]
+ }, {
+ code: '',
+ errors: [{
+ message: 'Using target="_blank" without rel="noopener noreferrer" is a security risk:' +
+ ' see https://mathiasbynens.github.io/rel-noopener'
+ }]
}]
});