From edbbd7931902ec0b1cc1941df4155e39acc06f31 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Fri, 6 Nov 2020 14:45:57 -0800 Subject: [PATCH] [Fix] `jsx-no-target-blank`: avoid a crash with a non-string literal Fixes #2851. --- CHANGELOG.md | 2 ++ lib/rules/jsx-no-target-blank.js | 2 +- tests/lib/rules/jsx-no-target-blank.js | 3 +++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f9f51a4e6d..561a9e2a6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,7 +13,9 @@ This change log adheres to standards from [Keep a CHANGELOG](http://keepachangel ### Fixed * [`display-name`]/component detection: avoid a crash on anonymous components ([#2840][] @ljharb) * [`prop-types`]: function in class that returns a component causes false warning in typescript ([#2843][] @SyMind) +* [`jsx-no-target-blank`]: avoid a crash with a non-string literal ([#2851][] @ljharb) +[#2851]: https://github.com/yannickcr/eslint-plugin-react/issues/2851 [#2843]: https://github.com/yannickcr/eslint-plugin-react/pull/2843 [#2840]: https://github.com/yannickcr/eslint-plugin-react/issues/2840 [#2835]: https://github.com/yannickcr/eslint-plugin-react/pull/2835 diff --git a/lib/rules/jsx-no-target-blank.js b/lib/rules/jsx-no-target-blank.js index 9b4794dcb2..5c0f5353d7 100644 --- a/lib/rules/jsx-no-target-blank.js +++ b/lib/rules/jsx-no-target-blank.js @@ -23,7 +23,7 @@ function isTargetBlank(attr) { attr.value.type === 'JSXExpressionContainer' && attr.value.expression && attr.value.expression.value - && attr.value.expression.value.toLowerCase() === '_blank' + && String(attr.value.expression.value).toLowerCase() === '_blank' )); } diff --git a/tests/lib/rules/jsx-no-target-blank.js b/tests/lib/rules/jsx-no-target-blank.js index 46735987f3..e4b813ade9 100644 --- a/tests/lib/rules/jsx-no-target-blank.js +++ b/tests/lib/rules/jsx-no-target-blank.js @@ -89,6 +89,9 @@ ruleTester.run('jsx-no-target-blank', rule, { { code: '', options: [{allowReferrer: true}] + }, + { + code: '' } ], invalid: [{