From 0943ac78eb27cdc283ad2f79f475860a9a94530e Mon Sep 17 00:00:00 2001 From: Jovi De Croock Date: Fri, 13 Sep 2024 12:05:06 +0200 Subject: [PATCH] Remove impossible branch (#4491) * Remove impossible branch * Bail a bit later * Leverage .some --- src/diff/index.js | 9 ++++----- src/util.js | 3 +-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/diff/index.js b/src/diff/index.js index 40f17aea14..50a18ec515 100644 --- a/src/diff/index.js +++ b/src/diff/index.js @@ -170,7 +170,7 @@ export function diff( newVNode._dom = oldVNode._dom; newVNode._children = oldVNode._children; - newVNode._children.forEach(vnode => { + newVNode._children.some(vnode => { if (vnode) vnode._parent = newVNode; }); @@ -455,7 +455,7 @@ function diffElementNodes( if (i == 'children') { } else if (i == 'dangerouslySetInnerHTML') { oldHtml = value; - } else if (i !== 'key' && !(i in newProps)) { + } else if (!(i in newProps)) { if ( (i == 'value' && 'defaultValue' in newProps) || (i == 'checked' && 'defaultChecked' in newProps) @@ -479,7 +479,6 @@ function diffElementNodes( } else if (i == 'checked') { checked = value; } else if ( - i !== 'key' && (!isHydrating || typeof value == 'function') && oldProps[i] !== value ) { @@ -524,7 +523,7 @@ function diffElementNodes( // Remove children that are not part of any vnode. if (excessDomChildren != null) { for (i = excessDomChildren.length; i--; ) { - if (excessDomChildren[i] != null) removeNode(excessDomChildren[i]); + removeNode(excessDomChildren[i]); } } } @@ -626,7 +625,7 @@ export function unmount(vnode, parentVNode, skipRemove) { } } - if (!skipRemove && vnode._dom != null) { + if (!skipRemove) { removeNode(vnode._dom); } diff --git a/src/util.js b/src/util.js index 1279b34d30..293c56e52a 100644 --- a/src/util.js +++ b/src/util.js @@ -22,8 +22,7 @@ export function assign(obj, props) { * @param {preact.ContainerNode} node The node to remove */ export function removeNode(node) { - let parentNode = node.parentNode; - if (parentNode) parentNode.removeChild(node); + if (node && node.parentNode) node.parentNode.removeChild(node); } export const slice = EMPTY_ARR.slice;