Skip to content

Commit c05297c

Browse files
committed
Merge pull request #5178 from RyanCavanaugh/fix5132
Escape quotes when emitting React
2 parents 5605c8a + d229ae4 commit c05297c

File tree

5 files changed

+27
-2
lines changed

5 files changed

+27
-2
lines changed

src/compiler/emitter.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -6859,7 +6859,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
68596859
if (isLineBreak(c)) {
68606860
if (firstNonWhitespace !== -1 && (lastNonWhitespace - firstNonWhitespace + 1 > 0)) {
68616861
let part = text.substr(firstNonWhitespace, lastNonWhitespace - firstNonWhitespace + 1);
6862-
result = (result ? result + "\" + ' ' + \"" : "") + part;
6862+
result = (result ? result + "\" + ' ' + \"" : "") + escapeString(part);
68636863
}
68646864
firstNonWhitespace = -1;
68656865
}
@@ -6873,7 +6873,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
68736873

68746874
if (firstNonWhitespace !== -1) {
68756875
let part = text.substr(firstNonWhitespace);
6876-
result = (result ? result + "\" + ' ' + \"" : "") + part;
6876+
result = (result ? result + "\" + ' ' + \"" : "") + escapeString(part);
68776877
}
68786878

68796879
if (result) {

tests/baselines/reference/tsxReactEmit6.js

+6
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,11 @@ namespace M {
1919
// and M.React.__spread
2020
var foo;
2121
var spread1 = <div x='' {...foo} y='' />;
22+
23+
// Quotes
24+
var x = <div>This "quote" thing</div>;
2225
}
26+
2327

2428

2529
//// [file.js]
@@ -33,4 +37,6 @@ var M;
3337
// and M.React.__spread
3438
var foo;
3539
var spread1 = M.React.createElement("div", M.React.__spread({x: ''}, foo, {y: ''}));
40+
// Quotes
41+
var x = M.React.createElement("div", null, "This \"quote\" thing");
3642
})(M || (M = {}));

tests/baselines/reference/tsxReactEmit6.symbols

+7
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,12 @@ namespace M {
3636
>x : Symbol(unknown)
3737
>foo : Symbol(foo, Decl(react-consumer.tsx, 7, 4))
3838
>y : Symbol(unknown)
39+
40+
// Quotes
41+
var x = <div>This "quote" thing</div>;
42+
>x : Symbol(x, Decl(react-consumer.tsx, 11, 4))
43+
>div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 2, 22))
44+
>div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 2, 22))
3945
}
4046

47+

tests/baselines/reference/tsxReactEmit6.types

+8
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,13 @@ namespace M {
3737
>x : any
3838
>foo : any
3939
>y : any
40+
41+
// Quotes
42+
var x = <div>This "quote" thing</div>;
43+
>x : JSX.Element
44+
><div>This "quote" thing</div> : JSX.Element
45+
>div : any
46+
>div : any
4047
}
4148

49+

tests/cases/conformance/jsx/tsxReactEmit6.tsx

+4
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,8 @@ namespace M {
1919
// and M.React.__spread
2020
var foo;
2121
var spread1 = <div x='' {...foo} y='' />;
22+
23+
// Quotes
24+
var x = <div>This "quote" thing</div>;
2225
}
26+

0 commit comments

Comments
 (0)