Skip to content

Commit 792b249

Browse files
Added extra eager cleanup of event listeners and targets to prevent retaining memory during app lifetime.
1 parent 79466c1 commit 792b249

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

src/Registry/index.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,16 @@ export default {
130130
handler.toString()
131131
)
132132
target.removeEventListener(event, handler)
133+
// remove key from event listeners object when no events are registered for that event
134+
Object.keys(registry.eventListeners[targetIndex]).forEach(event => {
135+
if (registry.eventListeners[targetIndex][event].length === 0) {
136+
delete registry.eventListeners[targetIndex][event]
137+
}
138+
})
139+
// remove reference to the target when target has no event listeners registered
140+
if (Object.keys(registry.eventListeners[targetIndex]).length === 0) {
141+
registry.targets.splice(targetIndex)
142+
}
133143
} else {
134144
Log.error(
135145
'Remove eventListener',

0 commit comments

Comments
 (0)