nl_tokens: @private @description Updates a specific htmlNode and does whatever it takes to convert it to another one .
pl_tokens: function setNode ( oldNode , newNode ) { if ( oldNode . nodeType === newNode . nodeType ) { // Handle regular element node updates. if ( oldNode . nodeType === ELEMENT_TYPE ) { // Checks if nodes are equal before diffing. if ( isEqualNode ( oldNode , newNode ) ) return // Update all children (and subchildren). setChildNodes ( oldNode , newNode ) // Update the elements attributes / tagName. if ( oldNode . nodeName === newNode . nodeName ) { // If we have the same nodename then we can directly update the attributes. setAttributes ( oldNode . attributes , newNode . attributes ) } else { // Otherwise clone the new node to use as the existing node. var newPrev = newNode . cloneNode ( ) // Copy over all existing children from the original node. while ( oldNode . firstChild ) newPrev . appendChild ( oldNode . firstChild ) // Replace the original node with the new one with the right tag. oldNode . parentNode . replaceChild ( newPrev , oldNode ) } } else { // Handle other types of node updates (text/comments/etc). // If both are the same type of node we can update directly. if ( oldNode . nodeValue !== newNode . nodeValue ) { oldNode . nodeValue = newNode . nodeValue } } } else { // we have to replace the node. oldNode . parentNode . replaceChild ( newNode , dismount ( oldNode ) ) <mask> ( newNode ) } }