diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 13c00867372..137d250300c 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -4182,8 +4182,9 @@ namespace ts { parseExpected(SyntaxKind.LessThanToken); if (token() === SyntaxKind.GreaterThanToken) { - parseExpected(SyntaxKind.GreaterThanToken); + // See below for explanation of scanJsxText const node: JsxOpeningFragment = createNode(SyntaxKind.JsxOpeningFragment, fullStart); + scanJsxText(); return finishNode(node); } diff --git a/tests/baselines/reference/tsxFragmentPreserveEmit.js b/tests/baselines/reference/tsxFragmentPreserveEmit.js index 5b3328a842d..436a7f2cc6c 100644 --- a/tests/baselines/reference/tsxFragmentPreserveEmit.js +++ b/tests/baselines/reference/tsxFragmentPreserveEmit.js @@ -12,7 +12,8 @@ declare var React: any; < /*starting wrap*/ >; // comments in the tags <>hi; // text inside <>hi
bye
; // children -<>1<>2.12.23; // nested fragments +<>1<>2.12.23; // nested fragments +<>#; // # would cause scanning error if not in jsxtext //// [file.jsx] <>; // no whitespace @@ -21,3 +22,4 @@ declare var React: any; <>hi; // text inside <>hi
bye
; // children <>1<>2.12.23; // nested fragments +<>#; // # would cause scanning error if not in jsxtext diff --git a/tests/baselines/reference/tsxFragmentPreserveEmit.symbols b/tests/baselines/reference/tsxFragmentPreserveEmit.symbols index c75d812480c..66405f8d081 100644 --- a/tests/baselines/reference/tsxFragmentPreserveEmit.symbols +++ b/tests/baselines/reference/tsxFragmentPreserveEmit.symbols @@ -35,3 +35,4 @@ declare var React: any; >span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22)) >span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22)) +<>#; // # would cause scanning error if not in jsxtext diff --git a/tests/baselines/reference/tsxFragmentPreserveEmit.types b/tests/baselines/reference/tsxFragmentPreserveEmit.types index 4eea3d72cff..9c474fe98a8 100644 --- a/tests/baselines/reference/tsxFragmentPreserveEmit.types +++ b/tests/baselines/reference/tsxFragmentPreserveEmit.types @@ -52,3 +52,6 @@ declare var React: any; >span : any >span : any +<>#; // # would cause scanning error if not in jsxtext +><># : JSX.Element + diff --git a/tests/baselines/reference/tsxFragmentReactEmit.js b/tests/baselines/reference/tsxFragmentReactEmit.js index 137d07db33c..8dc88c7f48d 100644 --- a/tests/baselines/reference/tsxFragmentReactEmit.js +++ b/tests/baselines/reference/tsxFragmentReactEmit.js @@ -12,7 +12,8 @@ declare var React: any; < /*starting wrap*/ >; // comments in the tags <>hi; // text inside <>hi
bye
; // children -<>1<>2.12.23; // nested fragments +<>1<>2.12.23; // nested fragments +<>#; // # would cause scanning error if not in jsxtext //// [file.js] React.createElement(React.Fragment, null); // no whitespace @@ -28,3 +29,4 @@ React.createElement(React.Fragment, null, React.createElement("span", null, "2.1"), React.createElement("span", null, "2.2")), React.createElement("span", null, "3")); // nested fragments +React.createElement(React.Fragment, null, "#"); // # would cause scanning error if not in jsxtext diff --git a/tests/baselines/reference/tsxFragmentReactEmit.symbols b/tests/baselines/reference/tsxFragmentReactEmit.symbols index c75d812480c..66405f8d081 100644 --- a/tests/baselines/reference/tsxFragmentReactEmit.symbols +++ b/tests/baselines/reference/tsxFragmentReactEmit.symbols @@ -35,3 +35,4 @@ declare var React: any; >span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22)) >span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22)) +<>#; // # would cause scanning error if not in jsxtext diff --git a/tests/baselines/reference/tsxFragmentReactEmit.types b/tests/baselines/reference/tsxFragmentReactEmit.types index 4eea3d72cff..9c474fe98a8 100644 --- a/tests/baselines/reference/tsxFragmentReactEmit.types +++ b/tests/baselines/reference/tsxFragmentReactEmit.types @@ -52,3 +52,6 @@ declare var React: any; >span : any >span : any +<>#; // # would cause scanning error if not in jsxtext +><># : JSX.Element + diff --git a/tests/cases/conformance/jsx/tsxFragmentPreserveEmit.tsx b/tests/cases/conformance/jsx/tsxFragmentPreserveEmit.tsx index 5f4da955c36..97818d7fc63 100644 --- a/tests/cases/conformance/jsx/tsxFragmentPreserveEmit.tsx +++ b/tests/cases/conformance/jsx/tsxFragmentPreserveEmit.tsx @@ -14,4 +14,5 @@ declare var React: any; < /*starting wrap*/ >; // comments in the tags <>hi; // text inside <>hi
bye
; // children -<>1<>2.12.23; // nested fragments \ No newline at end of file +<>1<>2.12.23; // nested fragments +<>#; // # would cause scanning error if not in jsxtext \ No newline at end of file diff --git a/tests/cases/conformance/jsx/tsxFragmentReactEmit.tsx b/tests/cases/conformance/jsx/tsxFragmentReactEmit.tsx index 15f4d290cbd..da1d0bfca08 100644 --- a/tests/cases/conformance/jsx/tsxFragmentReactEmit.tsx +++ b/tests/cases/conformance/jsx/tsxFragmentReactEmit.tsx @@ -14,4 +14,5 @@ declare var React: any; < /*starting wrap*/ >; // comments in the tags <>hi; // text inside <>hi
bye
; // children -<>1<>2.12.23; // nested fragments \ No newline at end of file +<>1<>2.12.23; // nested fragments +<>#; // # would cause scanning error if not in jsxtext \ No newline at end of file