anchor.diff:        $parent = $element.parent()
         up.syntax.clean($element[0])
         $element.remove()
  -      emitFragmentDestroyed($element, { $parent })
  +      emitFragmentDestroyed($element[0], { parent: $parent[0] })
   
       animate().then(wipe)
   
  -  shouldLogDestruction = ($element, options) ->
  +  shouldLogDestruction = (element, options) ->
       # Don't log destruction for elements that are either Unpoly internals or frequently destroyed
  -    options.log != false && !$element.is('.up-placeholder, .up-tooltip, .up-modal, .up-popup')
  +    options.log != false && !e.matches(element, '.up-placeholder, .up-tooltip, .up-modal, .up-popup')
   
     ###**
     Elements are assigned the `.up-destroying` class before they are [destroyed](/up.destroy)
  
positive.code: 
        morphOptions = u.merge options,
          beforeStart: ->
            markElementAsDestroying($(oldElement))
            emitFragmentDestroy($(oldElement), log: false)
          afterInsert: ->
            up.hello(newElement, options)
          beforeDetach: ->
            up.syntax.clean(oldElement)
          afterDetach: ->
            e.remove(oldElement) # clean up jQuery data
            emitFragmentDestroyed($(oldElement), $parent: $(parent), log: false)
  
        console.debug("-- morphOptions are %o", morphOptions)
  
  
negative.code:   @selector .up-destroying
    @stable
    ###
    markElementAsDestroying = (element) ->
      element.classList.add('up-destroying')
  
    ###**
    Before a page fragment is being [destroyed](/up.destroy), this
  