From 2bf5eba7247a58aeb7ba23b3b5630d8bf6c2c4da Mon Sep 17 00:00:00 2001 From: Josh Story Date: Sat, 16 Apr 2022 14:29:12 -0700 Subject: [PATCH] explain the rationale for the chosen escaping implemenation in a comment (#24389) --- .../src/server/ReactDOMServerFormatConfig.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/react-dom/src/server/ReactDOMServerFormatConfig.js b/packages/react-dom/src/server/ReactDOMServerFormatConfig.js index f41abe26cfff..4814bd0aa333 100644 --- a/packages/react-dom/src/server/ReactDOMServerFormatConfig.js +++ b/packages/react-dom/src/server/ReactDOMServerFormatConfig.js @@ -83,16 +83,25 @@ const startScriptSrc = stringToPrecomputedChunk(''); -const scriptRegex = /(<\/|<)(s)(cript)/gi; -const scriptReplacer = (match, prefix, s, suffix) => - `${prefix}${s === 's' ? '\\u0073' : '\\u0053'}${suffix}`; - +/** + * This escaping function is designed to work with bootstrapScriptContent only. + * because we know we are escaping the entire script. We can avoid for instance + * escaping html comment string sequences that are valid javascript as well because + * if there are no sebsequent