static/tinymce/tiny_mce_src.js
function createNewBlock(name) {
				var node = container, block, clonedNode, caretNode;

				block = name || parentBlockName == "TABLE" ? dom.create(name || newBlockName) : parentBlock.cloneNode(false);
				caretNode = block;

				// Clone any parent styles
				if (settings.keep_styles !== false) {
					do {
						if (/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(node.nodeName)) {
							// Never clone a caret containers
							if (node.id == '_mce_caret') {
								continue;
							}

							clonedNode = node.cloneNode(false);
							dom.setAttrib(clonedNode, 'id', ''); // Remove ID since it needs to be document unique

							if (block.hasChildNodes()) {
								clonedNode.appendChild(block.firstChild);
								block.appendChild(clonedNode);
							} else {
								caretNode = clonedNode;
								block.appendChild(clonedNode);
							}
						}
					} while (node = node.parentNode);
				}

				// BR is needed in empty blocks on non IE browsers
				if (!tinymce.isIE) {
					caretNode.innerHTML = '<br data-mce-bogus="1">';
				}

				return block;
			}
function createNewBlock(name) {
				var node = container, block, clonedNode, caretNode;

				block = name || parentBlockName == "TABLE" ? dom.create(name || newBlockName) : parentBlock.cloneNode(false);
				caretNode = block;

				// Clone any parent styles
				if (settings.keep_styles !== false) {
					do {
						if (/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(node.nodeName)) {
							// Never clone a caret containers
							if (node.id == '_mce_caret') {
								continue;
							}

							clonedNode = node.cloneNode(false);
							dom.setAttrib(clonedNode, 'id', ''); // Remove ID since it needs to be document unique

							if (block.hasChildNodes()) {
								clonedNode.appendChild(block.firstChild);
								block.appendChild(clonedNode);
							} else {
								caretNode = clonedNode;
								block.appendChild(clonedNode);
							}
						}
					} while (node = node.parentNode);
				}

				// BR is needed in empty blocks on non IE browsers
				if (!tinymce.isIE) {
					caretNode.innerHTML = '<br data-mce-bogus="1">';
				}

				return block;
			}
function createNewBlock ( name ) { var node = container , block , clonedNode , caretNode ; block = name || parentBlockName == "TABLE" ? dom . create ( name || newBlockName ) : parentBlock . cloneNode ( false ) ; caretNode = block ; // Clone any parent styles
 if ( settings . keep_styles !== false ) { do { if ( / ^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$ / . test ( node . nodeName ) ) { // Never clone a caret containers
 if ( node . id == '_mce_caret' ) { continue ; } clonedNode = node . cloneNode ( false ) ; dom . setAttrib ( clonedNode , 'id' , '' ) ; // Remove ID since it needs to be document unique
 if ( block . hasChildNodes ( ) ) { clonedNode . appendChild ( block . firstChild ) ; block . appendChild ( clonedNode ) ; } else { caretNode = clonedNode ; block . appendChild ( clonedNode ) ; } } } while ( node = node . parentNode ) ; } // BR is needed in empty blocks on non IE browsers
 if ( ! tinymce . isIE ) { caretNode . innerHTML = '<br data-mce-bogus="1">' ; } return block ; }
Creates a new block element by cloning the current one or creating a new one if the name is specified This function will also copy any text formatting from the parent block and add it to the new one
Creates a new block element by cloning the current one or creating a new one if the name is specified This function will also copy any text formatting from the parent block and add it to the new one