Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Commit 6251751

Browse files
committed
perf(jqLite): don't register DOM listener for $destroy event
This even is fired purely within jqLite/jQuery so it doesn't make sense to register DOM listener here. 6% improvement in large table benchmark for both creation and destruction
1 parent 8f10dca commit 6251751

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/jqLite.js

+6-2
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,9 @@ function jqLiteOff(element, type, fn, unsupported) {
274274
i = types.length;
275275
while (i--) {
276276
type = types[i];
277-
removeEventListenerFn(element, type, events[type]);
277+
if (type !== '$destroy') {
278+
removeEventListenerFn(element, type, events[type]);
279+
}
278280
delete events[type];
279281
}
280282
} else {
@@ -749,7 +751,9 @@ forEach({
749751
});
750752

751753
} else {
752-
addEventListenerFn(element, type, handle);
754+
if (type !== '$destroy') {
755+
addEventListenerFn(element, type, handle);
756+
}
753757
}
754758
eventFns = events[type];
755759
}

0 commit comments

Comments
 (0)