anchor.diff:  
         morphOptions = u.merge options,
           beforeStart: ->
  -          markElementAsDestroying($(oldElement))
  -          emitFragmentDestroy($(oldElement), log: false)
  +          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)
  +          emitFragmentDestroyed(oldElement, parent: parent, log: false)
   
         console.debug("-- morphOptions are %o", morphOptions)
   
  
positive.code:       $parent = $element.parent()
        up.syntax.clean($element[0])
        $element.remove()
        emitFragmentDestroyed($element, { $parent })
  
      animate().then(wipe)
  
    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')
  
    ###**
    Elements are assigned the `.up-destroying` class before they are [destroyed](/up.destroy)
  
negative.code:     if $element.length == 0
        return Promise.resolve()
  
      markElementAsDestroying($element[0])
      emitFragmentDestroy($element[0], options)
  
      updateHistoryAndTitle(options)
  
  