@samitouri / QOS-React / commits / 7c864c9834

[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 )}