Skip to content

Commit d3d57db

Browse files
authored
Some byte improvements (#4321)
* save bytes during event registration * test performance improvement (does increase bytes) * optimize undefined setting * minor saving * undo perf to see byte impact
1 parent 8759dad commit d3d57db

File tree

3 files changed

+25
-22
lines changed

3 files changed

+25
-22
lines changed

src/component.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,21 +123,20 @@ export function getDomSibling(vnode, childIndex) {
123123
function renderComponent(component) {
124124
let oldVNode = component._vnode,
125125
oldDom = oldVNode._dom,
126-
parentDom = component._parentDom,
127126
commitQueue = [],
128127
refQueue = [];
129128

130-
if (parentDom) {
129+
if (component._parentDom) {
131130
const newVNode = assign({}, oldVNode);
132131
newVNode._original = oldVNode._original + 1;
133132
if (options.vnode) options.vnode(newVNode);
134133

135134
diff(
136-
parentDom,
135+
component._parentDom,
137136
newVNode,
138137
oldVNode,
139138
component._globalContext,
140-
parentDom.ownerSVGElement !== undefined,
139+
component._parentDom.ownerSVGElement !== undefined,
141140
oldVNode._flags & MODE_HYDRATE ? [oldDom] : null,
142141
commitQueue,
143142
oldDom == null ? getDomSibling(oldVNode) : oldDom,

src/diff/index.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -579,7 +579,6 @@ export function unmount(vnode, parentVNode, skipRemove) {
579579
}
580580

581581
r.base = r._parentDom = null;
582-
vnode._component = undefined;
583582
}
584583

585584
if ((r = vnode._children)) {
@@ -588,7 +587,7 @@ export function unmount(vnode, parentVNode, skipRemove) {
588587
unmount(
589588
r[i],
590589
parentVNode,
591-
skipRemove || typeof vnode.type !== 'function'
590+
skipRemove || typeof vnode.type != 'function'
592591
);
593592
}
594593
}
@@ -600,7 +599,7 @@ export function unmount(vnode, parentVNode, skipRemove) {
600599

601600
// Must be set to `undefined` to properly clean up `_nextDom`
602601
// for which `null` is a valid value. See comment in `create-element.js`
603-
vnode._parent = vnode._dom = vnode._nextDom = undefined;
602+
vnode._component = vnode._parent = vnode._dom = vnode._nextDom = undefined;
604603
}
605604

606605
/** The `.render()` method for a PFC backing instance. */

src/diff/props.js

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -82,15 +82,20 @@ export function setProperty(dom, name, value, oldValue, isSvg) {
8282
if (value) {
8383
if (!oldValue) {
8484
value._attached = eventClock;
85-
86-
const handler = useCapture ? eventProxyCapture : eventProxy;
87-
dom.addEventListener(name, handler, useCapture);
85+
dom.addEventListener(
86+
name,
87+
useCapture ? eventProxyCapture : eventProxy,
88+
useCapture
89+
);
8890
} else {
8991
value._attached = oldValue._attached;
9092
}
9193
} else {
92-
const handler = useCapture ? eventProxyCapture : eventProxy;
93-
dom.removeEventListener(name, handler, useCapture);
94+
dom.removeEventListener(
95+
name,
96+
useCapture ? eventProxyCapture : eventProxy,
97+
useCapture
98+
);
9499
}
95100
} else {
96101
if (isSvg) {
@@ -99,18 +104,18 @@ export function setProperty(dom, name, value, oldValue, isSvg) {
99104
// - className --> class
100105
name = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's');
101106
} else if (
102-
name !== 'width' &&
103-
name !== 'height' &&
104-
name !== 'href' &&
105-
name !== 'list' &&
106-
name !== 'form' &&
107+
name != 'width' &&
108+
name != 'height' &&
109+
name != 'href' &&
110+
name != 'list' &&
111+
name != 'form' &&
107112
// Default value in browsers is `-1` and an empty string is
108113
// cast to `0` instead
109-
name !== 'tabIndex' &&
110-
name !== 'download' &&
111-
name !== 'rowSpan' &&
112-
name !== 'colSpan' &&
113-
name !== 'role' &&
114+
name != 'tabIndex' &&
115+
name != 'download' &&
116+
name != 'rowSpan' &&
117+
name != 'colSpan' &&
118+
name != 'role' &&
114119
name in dom
115120
) {
116121
try {

0 commit comments

Comments
 (0)