code: function pasteHtml(html, internalFlag) {
          var args, dom = editor.dom, internal;
  
          internal = internalFlag || InternalHtml.isMarked(html);
          html = InternalHtml.unmark(html);
  
          args = editor.fire('BeforePastePreProcess', { content: html, internal: internal }); // Internal event used by Quirks
          args = editor.fire('PastePreProcess', args);
          html = args.content;
  
          if (!args.isDefaultPrevented()) {
            // User has bound PastePostProcess events then we need to pass it through a DOM node
            // This is not ideal but we don't want to let the browser mess up the HTML for example
            // some browsers add &nbsp; to P tags etc
            if (editor.hasEventListeners('PastePostProcess') && !args.isDefaultPrevented()) {
              // We need to attach the element to the DOM so Sizzle selectors work on the contents
              var tempBody = dom.add(editor.getBody(), 'div', { style: 'display:none' }, html);
              args = editor.fire('PastePostProcess', { node: tempBody, internal: internal });
              dom.remove(tempBody);
              html = args.node.innerHTML;
            }
  
            if (!args.isDefaultPrevented()) {
              SmartPaste.insertContent(editor, html);
            }
          }
        }
docs: Pastes the specified HTML. This means that the HTML is filtered and then
  inserted at the current selection in the editor. It will also fire paste events
  for custom user filtering.
  
  @param {String} html HTML code to paste into the current selection.
  @param {Boolean?} internalFlag Optional true/false flag if the contents is internal or external.