From e55d2401cdc1e4a41c244509d9ef032f3afd233a Mon Sep 17 00:00:00 2001 From: Ranmocy Sheng Date: Tue, 24 Sep 2019 08:35:50 -0700 Subject: [PATCH 1/3] Check observer existence in domobserver.stop() --- src/domobserver.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/domobserver.js b/src/domobserver.js index d52105db..8609739b 100644 --- a/src/domobserver.js +++ b/src/domobserver.js @@ -69,12 +69,14 @@ export class DOMObserver { } stop() { - let take = this.observer.takeRecords() - if (take.length) { - for (let i = 0; i < take.length; i++) this.queue.push(take[i]) - window.setTimeout(() => this.flush(), 20) + if (this.observer) { + let take = this.observer.takeRecords() + if (take.length) { + for (let i = 0; i < take.length; i++) this.queue.push(take[i]) + window.setTimeout(() => this.flush(), 20) + } + this.observer.disconnect() } - if (this.observer) this.observer.disconnect() if (useCharData) this.view.dom.removeEventListener("DOMCharacterDataModified", this.onCharData) this.disconnectSelection() } From e8229577751f64007ede539dd50449ca6d7b404a Mon Sep 17 00:00:00 2001 From: Ranmocy Sheng Date: Tue, 24 Sep 2019 19:30:21 -0700 Subject: [PATCH 2/3] Check observer existence in DomObserver#flush() --- src/domobserver.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/domobserver.js b/src/domobserver.js index 8609739b..79374178 100644 --- a/src/domobserver.js +++ b/src/domobserver.js @@ -121,7 +121,7 @@ export class DOMObserver { } flush() { - if (!this.view.docView || this.flushingSoon) return + if (!this.view.docView || this.flushingSoon || !this.observer) return let mutations = this.observer.takeRecords() if (this.queue.length) { mutations = this.queue.concat(mutations) From 0e4d0d0d7d120e758fe4b4449456bf2dee51d791 Mon Sep 17 00:00:00 2001 From: Ranmocy Sheng Date: Wed, 25 Sep 2019 07:35:44 -0700 Subject: [PATCH 3/3] Update domobserver.js --- src/domobserver.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/domobserver.js b/src/domobserver.js index 79374178..35d498a0 100644 --- a/src/domobserver.js +++ b/src/domobserver.js @@ -121,8 +121,8 @@ export class DOMObserver { } flush() { - if (!this.view.docView || this.flushingSoon || !this.observer) return - let mutations = this.observer.takeRecords() + if (!this.view.docView || this.flushingSoon) return + let mutations = this.observer ? this.observer.takeRecords() : []; if (this.queue.length) { mutations = this.queue.concat(mutations) this.queue.length = 0