Skip to content

Commit

Permalink
Fix: Add support for escape char in JSX. (#7461)
Browse files Browse the repository at this point in the history
  • Loading branch information
sstern6 authored and nzakas committed Nov 3, 2016
1 parent ea0970d commit 4613ba0
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/rules/no-useless-escape.js
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ module.exports = {
* JSXAttribute doesn't have any escape sequence: https://facebook.github.io/jsx/.
* In addition, backticks are not supported by JSX yet: https://github.com/facebook/jsx/issues/25.
*/
if (node.parent.type === "JSXAttribute") {
if (node.parent.type === "JSXAttribute" || node.parent.type === "JSXElement") {
return;
}

Expand Down
12 changes: 12 additions & 0 deletions tests/lib/rules/no-useless-escape.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ ruleTester.run("no-useless-escape", rule, {
"var foo = '\\\n';",
"var foo = '\\\r\n';",
{code: "<foo attr=\"\\d\"/>", parserOptions: {ecmaFeatures: {jsx: true}}},
{code: "<div> Testing: \\ </div>", parserOptions: {ecmaFeatures: {jsx: true}}},
{code: "<div> Testing: &#x5C </div>", parserOptions: {ecmaFeatures: {jsx: true}}},
{code: "<foo attr='\\d'></foo>", parserOptions: {ecmaFeatures: {jsx: true}}},
{code: "var foo = `\\x123`", parserOptions: {ecmaVersion: 6}},
{code: "var foo = `\\u00a9`", parserOptions: {ecmaVersion: 6}},
Expand Down Expand Up @@ -161,6 +163,16 @@ ruleTester.run("no-useless-escape", rule, {
parserOptions: {ecmaVersion: 6},
errors: [{ line: 1, column: 11, message: "Unnecessary escape character: \\#.", type: "TemplateElement"}]
},
{
code: "let foo = '\\ ';",
parserOptions: {ecmaVersion: 6},
errors: [{ line: 1, column: 12, message: "Unnecessary escape character: \\ .", type: "Literal"}]
},
{
code: "let foo = /\\ /;",
parserOptions: {ecmaVersion: 6},
errors: [{ line: 1, column: 12, message: "Unnecessary escape character: \\ .", type: "Literal"}]
},
{
code: "var foo = `\\$\\{{${foo}`;",
parserOptions: {ecmaVersion: 6},
Expand Down

0 comments on commit 4613ba0

Please sign in to comment.