     @isBound = false
 
   destroySubviews: ->
+    if @dead
+      Batman.developer.warn "Tried to destroy the subviews of a dead view."
+      return
     subview.die() for subview in @subviews.toArray()
     @subviews.clear()
 

    Batman.Property.forBaseAndKey(target, keypath)?.setValue(value)

  die: ->
    @fire('destroy')

    @removeFromSuperview()

    @node = null
    @parentNode = null
    @subviews = null
    @dead = true

Batman.container.$context ?= (node) ->
  while node
