From 27f9a1cb2ae62754f18ad26dc6722ebe640c1025 Mon Sep 17 00:00:00 2001 From: jdecroock Date: Sat, 23 Mar 2024 15:12:56 +0100 Subject: [PATCH] test performance improvement (does increase bytes) --- src/diff/props.js | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/src/diff/props.js b/src/diff/props.js index 8b29a7ae4d..a0c36759f5 100644 --- a/src/diff/props.js +++ b/src/diff/props.js @@ -13,6 +13,21 @@ function setStyle(style, key, value) { } } +const reserved = [ + 'width', + 'height', + 'href', + 'list', + 'form', + // Default value in browsers is `-1` and an empty string is + // cast to `0` instead + 'tabIndex', + 'download', + 'rowSpan', + 'colSpan', + 'role' +]; + /** * Set a property value on a DOM node * @param {PreactElement} dom The DOM node to modify @@ -90,21 +105,7 @@ export function setProperty(dom, name, value, oldValue, isSvg) { // - xlink:href / xlinkHref --> href (xlink:href was removed from SVG and isn't needed) // - className --> class name = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's'); - } else if ( - name !== 'width' && - name !== 'height' && - name !== 'href' && - name !== 'list' && - name !== 'form' && - // Default value in browsers is `-1` and an empty string is - // cast to `0` instead - name !== 'tabIndex' && - name !== 'download' && - name !== 'rowSpan' && - name !== 'colSpan' && - name !== 'role' && - name in dom - ) { + } else if (!reserved.includes(name) && name in dom) { try { dom[name] = value == null ? '' : value; // labelled break is 1b smaller here than a return statement (sorry)