diff --git a/src/toolbar/block/blocktoolbar.js b/src/toolbar/block/blocktoolbar.js index 6c241b52..4504f173 100644 --- a/src/toolbar/block/blocktoolbar.js +++ b/src/toolbar/block/blocktoolbar.js @@ -208,6 +208,10 @@ export default class BlockToolbar extends Plugin { this.panelView.destroy(); this.buttonView.destroy(); this.toolbarView.destroy(); + + if ( this._resizeObserver ) { + this._resizeObserver.destroy(); + } } /** diff --git a/tests/toolbar/block/blocktoolbar.js b/tests/toolbar/block/blocktoolbar.js index f96eaf87..6c323556 100644 --- a/tests/toolbar/block/blocktoolbar.js +++ b/tests/toolbar/block/blocktoolbar.js @@ -676,4 +676,18 @@ describe( 'BlockToolbar', () => { sinon.assert.notCalled( spy ); } ); } ); + + describe( 'destroy()', () => { + it( 'should destroy #resizeObserver if is available', () => { + const editable = editor.ui.getEditableElement(); + const resizeObserver = new ResizeObserver( editable, () => {} ); + const destroySpy = sinon.spy( resizeObserver, 'destroy' ); + + blockToolbar._resizeObserver = resizeObserver; + + blockToolbar.destroy(); + + sinon.assert.calledOnce( destroySpy ); + } ); + } ); } );