From d0dff80d6db0d34f4ea9b5080fd45a5e100a792e Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Sat, 24 Aug 2013 23:28:17 +0100 Subject: [PATCH] Fix problem with insertBefore() on Win7/IE10 The problem is that insertBefore() on Win7/IE10 crashes if the second parameter is undefined, rather than behaving as if the parameter is missing, as all other browsers do. Aaargh. --- core/modules/widgets/list/list.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/modules/widgets/list/list.js b/core/modules/widgets/list/list.js index a2b5746ba..a565e8865 100644 --- a/core/modules/widgets/list/list.js +++ b/core/modules/widgets/list/list.js @@ -354,7 +354,13 @@ ListWidget.prototype.handleListChanges = function(changedTiddlers) { if(index === undefined) { // The list element isn't there, so we need to insert it this.children.splice(t,0,this.renderer.renderTree.createRenderer(this.renderer,this.createListElement(this.list[t]))); - this.renderer.domNode.insertBefore(this.children[t].renderInDom(),this.renderer.domNode.childNodes[t]); + var before = this.renderer.domNode.childNodes[t], + newNode = this.children[t].renderInDom(); + if(before) { + this.renderer.domNode.insertBefore(newNode,before); + } else { + this.renderer.domNode.appendChild(newNode); + } // Ask the listview to animate the insertion if(this.listview && this.listview.insert) { this.listview.insert(t);