From d0588cd812de3706e5fe193ab1d71c00f41deb67 Mon Sep 17 00:00:00 2001 From: Ryan Leckey Date: Thu, 13 Jul 2017 02:32:43 -0700 Subject: [PATCH 1/2] Check if incoming element is non-null before attempting to append to it --- src/text-editor-component.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/text-editor-component.js b/src/text-editor-component.js index 037e45462..dd11884cc 100644 --- a/src/text-editor-component.js +++ b/src/text-editor-component.js @@ -3271,7 +3271,7 @@ class CustomGutterDecorationComponent { if (newProps.className !== oldProps.className) this.element.className = newProps.className || '' if (newProps.element !== oldProps.element) { if (this.element.firstChild) this.element.firstChild.remove() - this.element.appendChild(newProps.element) + if (newProps.element != null) this.element.appendChild(newProps.element) } } } From dc73841673cfdd1a4314775b34f7df6879e33a3b Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Thu, 13 Jul 2017 14:37:58 -0600 Subject: [PATCH 2/2] Add test for null-guarding element during gutter decoration update --- spec/text-editor-component-spec.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/text-editor-component-spec.js b/spec/text-editor-component-spec.js index 2028ae8bd..7a4608872 100644 --- a/spec/text-editor-component-spec.js +++ b/spec/text-editor-component-spec.js @@ -1762,13 +1762,13 @@ describe('TextEditorComponent', () => { expect(decorationNode3.firstChild).toBe(decorationElement2) decoration1.setProperties({type: 'gutter', gutterName: 'a', class: 'c', item: decorationElement1}) - decoration2.setProperties({type: 'gutter', gutterName: 'a', item: decorationElement2}) + decoration2.setProperties({type: 'gutter', gutterName: 'a'}) decoration3.destroy() await component.getNextUpdatePromise() expect(decorationNode1.className).toBe('decoration c') expect(decorationNode1.firstChild).toBe(decorationElement1) expect(decorationNode2.className).toBe('decoration') - expect(decorationNode2.firstChild).toBe(decorationElement2) + expect(decorationNode2.firstChild).toBeNull() expect(gutterB.getElement().firstChild.children.length).toBe(0) }) })