Skip to content

Commit ccc10bc

Browse files
Merge pull request #392 from rdkcentral/feature/eventlistener-target-cleanup-registry-plugin
Added extra eager cleanup of event listeners and targets to prevent r…
2 parents 7b26d58 + bb9649f commit ccc10bc

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

src/Registry/index.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,17 @@ 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+
registry.eventListeners.splice(targetIndex)
143+
}
133144
} else {
134145
Log.error(
135146
'Remove eventListener',

0 commit comments

Comments
 (0)