From f7cacb7a0bcd4f2c508173244ede4fd81ce94488 Mon Sep 17 00:00:00 2001 From: Leo Horie Date: Thu, 26 Mar 2015 21:14:30 -0400 Subject: [PATCH] #507 fix diff regression when mixing elements and text nodes --- mithril.js | 2 +- tests/mithril-tests.js | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/mithril.js b/mithril.js index de3c06e7..9c385395 100644 --- a/mithril.js +++ b/mithril.js @@ -174,7 +174,7 @@ var m = (function app(window, undefined) { for (var prop in existing) actions.push(existing[prop]) var changes = actions.sort(sortChanges); var newCached = new Array(cached.length) - newCached.nodes = [] + newCached.nodes = cached.nodes.slice() for (var i = 0, change; change = changes[i]; i++) { if (change.action === DELETION) { diff --git a/tests/mithril-tests.js b/tests/mithril-tests.js index f339f554..e3dca1e5 100644 --- a/tests/mithril-tests.js +++ b/tests/mithril-tests.js @@ -917,6 +917,12 @@ function testMithril(mock) { m.render(root, m("div", function() {})) return root.childNodes[0].childNodes.length == 0 }) + test(function() { + var root = mock.document.createElement("div") + m.render(root, m("div", "foo", m("a"))) + m.render(root, m("div", "test")) + return root.childNodes[0].childNodes.length == 1 + }) //end m.render //m.redraw