code: function removeHrOnBackspace() {
          editor.on('keydown', function (e) {
            if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) {
              // Check if there is any HR elements this is faster since getRng on IE 7 & 8 is slow
              if (!editor.getBody().getElementsByTagName('hr').length) {
                return;
              }
  
              if (selection.isCollapsed() && selection.getRng(true).startOffset === 0) {
                var node = selection.getNode();
                var previousSibling = node.previousSibling;
  
                if (node.nodeName == 'HR') {
                  dom.remove(node);
                  e.preventDefault();
                  return;
                }
  
                if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === "hr") {
                  dom.remove(previousSibling);
                  e.preventDefault();
                }
              }
            }
          });
        }
docs: Backspacing in FireFox/IE from a paragraph into a horizontal rule results in a floating text node because the
  browser just deletes the paragraph - the browser fails to merge the text node with a horizontal rule so it is
  left there. TinyMCE sees a floating text node and wraps it in a paragraph on the key up event (ForceBlocks.js
  addRootBlocks), meaning the action does nothing. With this code, FireFox/IE matche the behaviour of other
  browsers.
  
  It also fixes a bug on Firefox where it's impossible to delete HR elements.