Skip to content

Commit d229ae4

Browse files
committed
Escape quotes when emitting React
1 parent 0d95d04 commit d229ae4

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
@@ -6848,7 +6848,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
68486848
if (isLineBreak(c)) {
68496849
if (firstNonWhitespace !== -1 && (lastNonWhitespace - firstNonWhitespace + 1 > 0)) {
68506850
let part = text.substr(firstNonWhitespace, lastNonWhitespace - firstNonWhitespace + 1);
6851-
result = (result ? result + "\" + ' ' + \"" : "") + part;
6851+
result = (result ? result + "\" + ' ' + \"" : "") + escapeString(part);
68526852
}
68536853
firstNonWhitespace = -1;
68546854
}
@@ -6862,7 +6862,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
68626862

68636863
if (firstNonWhitespace !== -1) {
68646864
let part = text.substr(firstNonWhitespace);
6865-
result = (result ? result + "\" + ' ' + \"" : "") + part;
6865+
result = (result ? result + "\" + ' ' + \"" : "") + escapeString(part);
68666866
}
68676867

68686868
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)