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

Commit 3173d86

Browse files
committed
fix(jqLite): fix memory leaking in IE8 (remove monkey patched methods on Event)
These methods cause IE8 holds the whole jqLite in the memory, even when page is reloaded. jqLite's cache keeps element's data (event handlers, attached scopes, injector, etc…), so almost all used memory is never released in IE8. jQuery creates its own Event object (wrapper around native Event) instead.
1 parent 6c4f139 commit 3173d86

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

src/jqLite.js

+7
Original file line numberDiff line numberDiff line change
@@ -514,6 +514,13 @@ forEach({
514514
forEach(eventHandler.fns, function(fn){
515515
fn.call(element, event);
516516
});
517+
518+
// Remove monkey-patched methods (IE),
519+
// as they would cause memory leaks in IE8.
520+
// It shouldn't affect normal browsers, as their native methods are defined on prototype.
521+
delete event.preventDefault
522+
delete event.stopPropagation
523+
delete event.isDefaultPrevented
517524
};
518525
eventHandler.fns = [];
519526
addEventListenerFn(element, type, eventHandler);

0 commit comments

Comments
 (0)