diff --git a/eslint/babel-eslint-parser/acorn-to-esprima.js b/eslint/babel-eslint-parser/acorn-to-esprima.js index d43e96494e..13451af130 100644 --- a/eslint/babel-eslint-parser/acorn-to-esprima.js +++ b/eslint/babel-eslint-parser/acorn-to-esprima.js @@ -34,6 +34,8 @@ exports.toToken = function (token) { token.value = ">"; } else if (type === tt.jsxName) { token.type = "JSXIdentifier"; + } else if (type === tt.jsxText) { + token.type = "JSXText"; } else if (type.keyword === "null") { token.type = "Null"; } else if (type.keyword === "false" || type.keyword === "true") { diff --git a/eslint/babel-eslint-parser/test/babel-eslint.js b/eslint/babel-eslint-parser/test/babel-eslint.js index 4c0d062d7e..40a9fc84e0 100644 --- a/eslint/babel-eslint-parser/test/babel-eslint.js +++ b/eslint/babel-eslint-parser/test/babel-eslint.js @@ -154,6 +154,22 @@ describe("acorn-to-esprima", function () { parseAndAssertSame(""); }); + it("jsx expression with spread", function () { + parseAndAssertSame("var myDivElement =
;"); + }); + + it("empty jsx text", function () { + parseAndAssertSame(""); + }); + + it("jsx text with content", function () { + parseAndAssertSame("Hello, world!"); + }); + + it("nested jsx", function () { + parseAndAssertSame("
\n

Wat

\n
"); + }); + it("default import", function () { parseAndAssertSame('import foo from "foo";'); });