Merge remote-tracking branch 'origin/rewrite' into rewrite

This commit is contained in:
Leo Horie 2016-07-29 22:04:20 -04:00
commit a548290dda
2 changed files with 7 additions and 3 deletions

View file

@ -337,11 +337,11 @@ module.exports = function($window) {
} }
if (vnode.attrs && vnode.attrs.onbeforeremove) { if (vnode.attrs && vnode.attrs.onbeforeremove) {
expected++ expected++
vnode.attrs.onbeforeremove.call(vnode, vnode, callback) vnode.attrs.onbeforeremove.call(vnode.state, vnode, callback)
} }
if (typeof vnode.tag !== "string" && vnode.tag.onbeforeremove) { if (typeof vnode.tag !== "string" && vnode.tag.onbeforeremove) {
expected++ expected++
vnode.tag.onbeforeremove.call(vnode, vnode, callback) vnode.tag.onbeforeremove.call(vnode.state, vnode, callback)
} }
if (expected > 0) return if (expected > 0) return
} }

View file

@ -35,13 +35,17 @@ o.spec("onbeforeremove", function() {
o(update.callCount).equals(0) o(update.callCount).equals(0)
}) })
o("calls onbeforeremove when removing element", function(done) { o("calls onbeforeremove when removing element", function(done) {
var vnode = {tag: "div", attrs: {onbeforeremove: remove}} var vnode = {tag: "div", attrs: {
oninit: function(){vnode.state = {}},
onbeforeremove: remove
}}
render(root, [vnode]) render(root, [vnode])
render(root, []) render(root, [])
function remove(node, complete) { function remove(node, complete) {
o(node).equals(vnode) o(node).equals(vnode)
o(this).equals(vnode.state)
o(root.childNodes.length).equals(1) o(root.childNodes.length).equals(1)
o(root.firstChild).equals(vnode.dom) o(root.firstChild).equals(vnode.dom)