From ea499ef92869240c02ca2888ed6f4e9a866adfad Mon Sep 17 00:00:00 2001 From: Jan Kassens Date: Mon, 17 Apr 2023 16:24:38 -0400 Subject: [PATCH] Revert "Fix logic around attribute seralization (#26526)" This reverts commit 4a1cc2ddd035f5c269e82ab6f7686e2e60d3b3ea. --- .../src/server/ReactDOMServerFormatConfig.js | 84 +++++++++---------- 1 file changed, 38 insertions(+), 46 deletions(-) diff --git a/packages/react-dom-bindings/src/server/ReactDOMServerFormatConfig.js b/packages/react-dom-bindings/src/server/ReactDOMServerFormatConfig.js index 60d53197bd..4168b40cb7 100644 --- a/packages/react-dom-bindings/src/server/ReactDOMServerFormatConfig.js +++ b/packages/react-dom-bindings/src/server/ReactDOMServerFormatConfig.js @@ -3926,51 +3926,48 @@ function writeStyleResourceAttributeInJS( return; // Attribute renames - case 'className': { + case 'className': attributeName = 'class'; - if (__DEV__) { - checkAttributeStringCoercion(value, attributeName); - } - attributeValue = '' + (value: any); break; - } + // Booleans - case 'hidden': { + case 'hidden': if (value === false) { return; } attributeValue = ''; break; - } + // Santized URLs case 'src': case 'href': { - value = sanitizeURL(value); if (__DEV__) { checkAttributeStringCoercion(value, attributeName); } - attributeValue = '' + (value: any); + value = sanitizeURL(value); break; } default: { - if ( - // unrecognized event handlers are not SSR'd and we (apparently) - // use on* as hueristic for these handler props - name.length > 2 && - (name[0] === 'o' || name[0] === 'O') && - (name[1] === 'n' || name[1] === 'N') - ) { - return; - } if (!isAttributeNameSafe(name)) { return; } - if (__DEV__) { - checkAttributeStringCoercion(value, attributeName); - } - attributeValue = '' + (value: any); } } + + if ( + // shouldIgnoreAttribute + // We have already filtered out null/undefined and reserved words. + name.length > 2 && + (name[0] === 'o' || name[0] === 'O') && + (name[1] === 'n' || name[1] === 'N') + ) { + return; + } + + if (__DEV__) { + checkAttributeStringCoercion(value, attributeName); + } + attributeValue = '' + (value: any); writeChunk(destination, arrayInterstitial); writeChunk( destination, @@ -4122,53 +4119,48 @@ function writeStyleResourceAttributeInAttr( return; // Attribute renames - case 'className': { + case 'className': attributeName = 'class'; - if (__DEV__) { - checkAttributeStringCoercion(value, attributeName); - } - attributeValue = '' + (value: any); break; - } // Booleans - case 'hidden': { + case 'hidden': if (value === false) { return; } attributeValue = ''; break; - } // Santized URLs case 'src': case 'href': { - value = sanitizeURL(value); if (__DEV__) { checkAttributeStringCoercion(value, attributeName); } - attributeValue = '' + (value: any); + value = sanitizeURL(value); break; } default: { - if ( - // unrecognized event handlers are not SSR'd and we (apparently) - // use on* as hueristic for these handler props - name.length > 2 && - (name[0] === 'o' || name[0] === 'O') && - (name[1] === 'n' || name[1] === 'N') - ) { - return; - } if (!isAttributeNameSafe(name)) { return; } - if (__DEV__) { - checkAttributeStringCoercion(value, attributeName); - } - attributeValue = '' + (value: any); } } + + if ( + // shouldIgnoreAttribute + // We have already filtered out null/undefined and reserved words. + name.length > 2 && + (name[0] === 'o' || name[0] === 'O') && + (name[1] === 'n' || name[1] === 'N') + ) { + return; + } + + if (__DEV__) { + checkAttributeStringCoercion(value, attributeName); + } + attributeValue = '' + (value: any); writeChunk(destination, arrayInterstitial); writeChunk( destination,