fix: dispose performance (#6894)

* fix: improve dispose performance

* chore: cleanup dispose functions

* chore: split dispose into dispose and disposeInternal

* chore: remove unnecessary node removal

* fix: remove unnecessary unbinding of event listeners

* fix: readd skipping event construction

* chore: work on fixing tests

* chore: fix remaining test failures

* chore: format

* chore: typo

* fix: first pass of PR comments

* chore: remove TODO
This commit is contained in:
Beka Westberg
2023-03-16 15:28:25 -07:00
committed by GitHub
parent c2919c51bd
commit 670f7da802
10 changed files with 82 additions and 76 deletions

View File

@@ -489,14 +489,11 @@ export abstract class Field<T = any> implements IASTNodeLocationSvg,
dispose() {
dropDownDiv.hideIfOwner(this);
WidgetDiv.hideIfOwner(this);
Tooltip.unbindMouseEvents(this.getClickTarget_());
if (this.mouseDownWrapper_) {
browserEvents.unbind(this.mouseDownWrapper_);
if (!this.getSourceBlock()?.isDeadOrDying()) {
dom.removeNode(this.fieldGroup_);
}
dom.removeNode(this.fieldGroup_);
this.disposed = true;
}