[compiler][ez] Patch for JSX escape sequences in @babel/generator (#32131)
Fall back to using JSXExpressionContainer for strings potentially containing escape sequences (a single backslash) to fix https://github.com/facebook/react/issues/32123. This is an extension of https://github.com/facebook/react/pull/29079
mofeiZ committed
Jan 22, 2025 at 14:22 UTC
7c864c98342e6e92a992ac32c1846f13eb1a314c
3 files changed
+13
-5
compiler/packages/babel-plugin-react-compiler/src/ReactiveScopes/CodegenReactiveFunction.ts
+1
-1
@@ -2269,7 +2269,7 @@ function codegenInstructionValue(
2269
* https://en.wikipedia.org/wiki/List_of_Unicode_characters#Control_codes
2270
*/
2271
const STRING_REQUIRES_EXPR_CONTAINER_PATTERN =
2272
- /[\u{0000}-\u{001F}\u{007F}\u{0080}-\u{FFFF}]|"/u;
2272
+ /[\u{0000}-\u{001F}\u{007F}\u{0080}-\u{FFFF}]|"|\\/u;
2273
function codegenJsxAttribute(
2274
cx: Context,
2275
attribute: JsxAttribute,
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/jsx-preserve-escape-character.expect.md
+1
-1
@@ -38,7 +38,7 @@ function MyApp() {
38
const $ = _c(1);
39
let t0;
40
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
41
- t0 = <input pattern="\\w" />;
41
+ t0 = <input pattern={"\\w"} />;
42
$[0] = t0;
43
} else {
44
t0 = $[0];
compiler/packages/babel-plugin-react-compiler/src/__tests__/fixtures/compiler/repro-propagate-type-of-ternary-nested.expect.md
+11
-3
@@ -42,15 +42,23 @@ function V0(t0) {
42
<ComponentC cd="TxqUy" ce="oh`]uc" cf="Bdbo" c10={!V9.va && v11.v12}>
43
gmhubcw
44
{v1 === V3.V13 ? (
45
- <c14 c15="L^]w\\\\T\\\\qrGmqrlQyrvBgf\\\\inuRdkEqwVPwixiriYGSZmKJf]E]RdT{N[WyVPiEJIbdFzvDohJV[BV`H[[K^xoy[HOGKDqVzUJ^h">
45
+ <c14
46
+ c15={
47
+ "L^]w\\\\T\\\\qrGmqrlQyrvBgf\\\\inuRdkEqwVPwixiriYGSZmKJf]E]RdT{N[WyVPiEJIbdFzvDohJV[BV`H[[K^xoy[HOGKDqVzUJ^h"
48
+ }
49
+ >
50
iawyneijcgamsfgrrjyvhjrrqvzexxwenxqoknnilmfloafyvnvkqbssqnxnexqvtcpvjysaiovjxyqrorqskfph
51
</c14>
52
) : v16.v17("pyorztRC]EJzVuP^e") ? (
49
- <c14 c15="CRinMqvmOknWRAKERI]RBzB_LXGKQe{SUpoN[\\\\gL[`bLMOhvFqDVVMNOdY">
53
+ <c14
54
+ c15={
55
+ "CRinMqvmOknWRAKERI]RBzB_LXGKQe{SUpoN[\\\\gL[`bLMOhvFqDVVMNOdY"
56
+ }
57
+ >
58
goprinbjmmjhfserfuqyluxcewpyjihektogc
59
</c14>
60
) : (
53
- <c14 c15="H\\\\\\\\GAcTc\\\\lfGMW[yHriCpvW`w]niSIKj\\\\kdgFI">
61
+ <c14 c15={"H\\\\\\\\GAcTc\\\\lfGMW[yHriCpvW`w]niSIKj\\\\kdgFI"}>
62
yejarlvudihqdrdgpvahovggdnmgnueedxpbwbkdvvkdhqwrtoiual
63
</c14>
64
)}