fix(core): DebugElement.listeners not cleared on destroy (#31820)
Currently the `DebugElement.listeners` array are retained after the node is destroyed. This means that they'll continue to fire through `triggerEventHandler` and can cause memory leaks. This has already been fixed in Ivy, but these changes fix it in ViewEngine for consistency. PR Close #31820
This commit is contained in:

committed by
Andrew Kushnir

parent
5f0d5e9ccf
commit
14dba72aee
@ -688,7 +688,11 @@ export class DebugRenderer2 implements Renderer2 {
|
||||
constructor(private delegate: Renderer2) { this.data = this.delegate.data; }
|
||||
|
||||
destroyNode(node: any) {
|
||||
removeDebugNodeFromIndex(getDebugNode(node) !);
|
||||
const debugNode = getDebugNode(node) !;
|
||||
removeDebugNodeFromIndex(debugNode);
|
||||
if (debugNode instanceof DebugNode__PRE_R3__) {
|
||||
debugNode.listeners.length = 0;
|
||||
}
|
||||
if (this.delegate.destroyNode) {
|
||||
this.delegate.destroyNode(node);
|
||||
}
|
||||
|
Reference in New Issue
Block a user