Skip to content

Commit 5d6a2c4

Browse files
authored
Merge pull request preactjs#697 from bmeurer/Load_VNode_nodeName_only_once
Load vnode.nodeName only once.
2 parents c9e331b + aaf3425 commit 5d6a2c4

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

src/vdom/diff.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,18 +94,20 @@ function idiff(dom, vnode, context, mountAll, componentRoot) {
9494

9595

9696
// If the VNode represents a Component, perform a component diff:
97-
if (typeof vnode.nodeName==='function') {
97+
let vnodeName = vnode.nodeName;
98+
if (typeof vnodeName==='function') {
9899
return buildComponentFromVNode(dom, vnode, context, mountAll);
99100
}
100101

101102

102103
// Tracks entering and exiting SVG namespace when descending through the tree.
103-
isSvgMode = vnode.nodeName==='svg' ? true : vnode.nodeName==='foreignObject' ? false : isSvgMode;
104+
isSvgMode = vnodeName==='svg' ? true : vnodeName==='foreignObject' ? false : isSvgMode;
104105

105106

106107
// If there's no existing element or it's the wrong type, create a new one:
107-
if (!dom || !isNamedNode(dom, String(vnode.nodeName))) {
108-
out = createNode(String(vnode.nodeName), isSvgMode);
108+
vnodeName = String(vnodeName);
109+
if (!dom || !isNamedNode(dom, vnodeName)) {
110+
out = createNode(vnodeName, isSvgMode);
109111

110112
if (dom) {
111113
// move children into the replacement node

0 commit comments

Comments
 (0)