Cache the childrens of editable elements

This commit is contained in:
Igor Kurganov 2016-02-29 15:29:08 -08:00 committed by Pierre-Yves Gerardy
parent 6ab9570474
commit ec95de9908
2 changed files with 14 additions and 0 deletions

View file

@ -533,6 +533,7 @@
} else if (editable) {
// contenteditable nodes use `innerHTML` instead of `nodeValue`.
editable.innerHTML = data
nodes = [].slice.call(editable.childNodes)
} else {
// was a trusted string
if (nodes[0].nodeType === 1 || nodes.length > 1 ||

View file

@ -1577,5 +1577,18 @@ describe("m.render()", function () {
// This works only if select value is set after its options exist.
expect(root.childNodes[0].value).to.equal("b")
})
it("caches children of editable on update", function () {
var root = document.createElement("span")
var t1 = m.trust("<h1>fo</h1>o")
var t2 = "foo"
m.render(root, m("span", {contenteditable: false}, t1))
m.render(root, m("span", {contenteditable: true}, t2))
m.render(root, m("span", {contenteditable: false}, t1))
expect(root.childNodes[0].innerHTML).to.equal(t1.valueOf())
})
})
})