Revert "Fix #1771 and probably others (#2286)" (#2299)

4f68984f2f
This commit is contained in:
Isiah Meadows 2018-11-14 19:26:23 -05:00 committed by GitHub
parent 8f7d85b0c9
commit 4d579c50b6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 0 additions and 40 deletions

View file

@ -68,7 +68,6 @@
- docs: tweaks: ([#2104](https://github.com/MithrilJS/mithril.js/pull/2104) [@mikeyb](https://github.com/mikeyb), [#2205](https://github.com/MithrilJS/mithril.js/pull/2205), [@cavemansspa](https://github.com/cavemansspa), [#2265](https://github.com/MithrilJS/mithril.js/pull/2265), [@isiahmeadows](https://github.com/isiahmeadows))
- render/core: avoid touching `Object.prototype.__proto__` setter with `key: "__proto__"` in certain situations ([#2251](https://github.com/MithrilJS/mithril.js/pull/2251))
- render/core: Vnodes stored in the dom node supplied to `m.render()` are now normalized [#2266](https://github.com/MithrilJS/mithril.js/pull/2266)
- render/core: `blur` handlers are now removed before removing the DOM vnodes, but after firing hooks ([#2286](https://github.com/MithrilJS/mithril.js/pull/2286))
---

View file

@ -673,13 +673,6 @@ module.exports = function($window) {
if (child != null) onremove(child)
}
}
// Chrome emits a `blur` event on children when they are removed,
// but *before* they dereference their parent...
// https://stackoverflow.com/questions/21926083/failed-to-execute-removechild-on-node#22934552
// https://github.com/MithrilJS/mithril.js/issues/1771
if (vnode.events != null && vnode.events.onblur != null) {
vnode.dom.removeEventListener("blur", vnode.events, false)
}
}
}

View file

@ -324,16 +324,4 @@ o.spec("event", function() {
o(onevent.args[0].type).equals("transitionend")
o(onevent.args[0].target).equals(div.dom)
})
o("doesn't fire blur on removed nodes", function() {
var spy = o.spy()
var div = {tag: "div", attrs: {onblur: spy}}
render(root, [div])
div.dom.focus()
render(root, [])
o(spy.callCount).equals(0)
o(onevent.callCount).equals(0)
})
})

View file

@ -87,13 +87,6 @@ module.exports = function(options) {
var index = this.childNodes.indexOf(child)
if (index > -1) {
this.childNodes.splice(index, 1)
// Yes, *this* is the behavior Chrome has and what FF is considering in
// https://bugzilla.mozilla.org/show_bug.cgi?id=559561
if (activeElement === child) {
var blur = $window.document.createEvent()
blur.initEvent("blur")
child.dispatchEvent(blur)
}
child.parentNode = null
}
else throw new TypeError("Failed to execute 'removeChild'")

View file

@ -208,19 +208,6 @@ o.spec("domMock", function() {
try {parent.removeChild(child)}
catch (e) {done()}
})
o("invokes blur on child if focused", function() {
var parent = $document.createElement("div")
var child = $document.createElement("a")
var spy = o.spy()
parent.appendChild(child)
child.addEventListener("blur", spy, false)
child.focus()
parent.removeChild(child)
o(spy.callCount).equals(1)
o(spy.args[0].type).equals("blur")
o(spy.args[0].target).equals(child)
})
})
o.spec("insertBefore", function() {