Skip to content

Commit 6be0206

Browse files
committed
Merge pull request #6287 from RyanCavanaugh/fix6241
Escape quotes when they appear as HTML entities in JSX text
2 parents 3765349 + 3288f5b commit 6be0206

File tree

5 files changed

+15
-1
lines changed

5 files changed

+15
-1
lines changed

src/compiler/emitter.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7221,7 +7221,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
72217221
// Replace entities like  
72227222
result = result.replace(/&(\w+);/g, function(s: any, m: string) {
72237223
if (entities[m] !== undefined) {
7224-
return String.fromCharCode(entities[m]);
7224+
const ch = String.fromCharCode(entities[m]);
7225+
// " needs to be escaped
7226+
return ch === "\"" ? "\\\"" : ch;
72257227
}
72267228
else {
72277229
return s;

tests/baselines/reference/tsxReactEmitEntities.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ declare module JSX {
88
declare var React: any;
99

1010
<div>Dot goes here: &middot; &notAnEntity; </div>;
11+
<div>Be careful of &quot;-ed strings!</div>;
1112

1213

1314
//// [file.js]
1415
React.createElement("div", null, "Dot goes here: · &notAnEntity; ");
16+
React.createElement("div", null, "Be careful of \"-ed strings!");

tests/baselines/reference/tsxReactEmitEntities.symbols

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,7 @@ declare var React: any;
1919
>div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
2020
>div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
2121

22+
<div>Be careful of &quot;-ed strings!</div>;
23+
>div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
24+
>div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
25+

tests/baselines/reference/tsxReactEmitEntities.types

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,8 @@ declare var React: any;
2020
>div : any
2121
>div : any
2222

23+
<div>Be careful of &quot;-ed strings!</div>;
24+
><div>Be careful of &quot;-ed strings!</div> : JSX.Element
25+
>div : any
26+
>div : any
27+

tests/cases/conformance/jsx/tsxReactEmitEntities.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ declare module JSX {
99
declare var React: any;
1010

1111
<div>Dot goes here: &middot; &notAnEntity; </div>;
12+
<div>Be careful of &quot;-ed strings!</div>;

0 commit comments

Comments
 (0)