code: function removeStylesWhenDeletingAcrossBlockElements() {
          function getAttributeApplyFunction() {
            var template = dom.getAttribs(selection.getStart().cloneNode(false));
  
            return function () {
              var target = selection.getStart();
  
              if (target !== editor.getBody()) {
                dom.setAttrib(target, "style", null);
  
                each(template, function (attr) {
                  target.setAttributeNode(attr.cloneNode(true));
                });
              }
            };
          }
  
          function isSelectionAcrossElements() {
            return !selection.isCollapsed() &&
              dom.getParent(selection.getStart(), dom.isBlock) != dom.getParent(selection.getEnd(), dom.isBlock);
          }
  
          editor.on('keypress', function (e) {
            var applyAttributes;
  
            if (!isDefaultPrevented(e) && (e.keyCode == 8 || e.keyCode == 46) && isSelectionAcrossElements()) {
              applyAttributes = getAttributeApplyFunction();
              editor.getDoc().execCommand('delete', false, null);
              applyAttributes();
              e.preventDefault();
              return false;
            }
          });
  
          dom.bind(editor.getDoc(), 'cut', function (e) {
            var applyAttributes;
  
            if (!isDefaultPrevented(e) && isSelectionAcrossElements()) {
              applyAttributes = getAttributeApplyFunction();
  
              Delay.setEditorTimeout(editor, function () {
                applyAttributes();
              });
            }
          });
        }
docs: Fixes a Gecko bug where the style attribute gets added to the wrong element when deleting between two block elements.
  
  Fixes do backspace/delete on this:
  <p>bla[ck</p><p style="color:red">r]ed</p>
  
  Would become:
  <p>bla|ed</p>
  
  Instead of:
  <p style="color:red">bla|ed</p>