From ea01ad4cbdd84f3ccdf79e3843722c9d544211b5 Mon Sep 17 00:00:00 2001 From: Kanchalai Tanglertsampan Date: Thu, 16 Feb 2017 14:03:41 -0800 Subject: [PATCH] Check for conflict marker when trying to parse JSX child --- src/compiler/parser.ts | 3 +++ src/compiler/scanner.ts | 11 ++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index ebd4208832c..2aaf1cb4124 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -3862,6 +3862,9 @@ namespace ts { parseErrorAtPosition(openingTagName.pos, openingTagName.end - openingTagName.pos, Diagnostics.JSX_element_0_has_no_corresponding_closing_tag, getTextOfNodeFromSourceText(sourceText, openingTagName)); break; } + else if (token() === SyntaxKind.ConflictMarkerTrivia) { + break; + } result.push(parseJsxChild()); } diff --git a/src/compiler/scanner.ts b/src/compiler/scanner.ts index 52c75a37005..54cd191b43d 100644 --- a/src/compiler/scanner.ts +++ b/src/compiler/scanner.ts @@ -1716,9 +1716,18 @@ namespace ts { while (pos < end) { pos++; char = text.charCodeAt(pos); - if ((char === CharacterCodes.openBrace) || (char === CharacterCodes.lessThan)) { + if (char === CharacterCodes.openBrace) { break; } + if (char === CharacterCodes.lessThan) { + if (isConflictMarkerTrivia(text, pos)) { + pos = scanConflictMarkerTrivia(text, pos, error); + return token = SyntaxKind.ConflictMarkerTrivia; + } + else { + break; + } + } } return token = SyntaxKind.JsxText; }