torso-bundle.js
function hotswap(currentNode, newNode, ignoreElements) {
    var newNodeType = newNode.nodeType,
      currentNodeType = currentNode.nodeType,
      swapMethod;

    if(newNodeType !== currentNodeType) {
      $(currentNode).replaceWith(newNode);
    } else {
      swapMethod = swapMethods[newNodeType] || swapMethods['default'];
      swapMethod(currentNode, newNode, ignoreElements);
    }
  }
function hotswap(currentNode, newNode, ignoreElements) {
    var newNodeType = newNode.nodeType,
      currentNodeType = currentNode.nodeType,
      swapMethod;

    if(newNodeType !== currentNodeType) {
      $(currentNode).replaceWith(newNode);
    } else {
      swapMethod = swapMethods[newNodeType] || swapMethods['default'];
      swapMethod(currentNode, newNode, ignoreElements);
    }
  }
function hotswap ( currentNode , newNode , ignoreElements ) { var newNodeType = newNode . nodeType , currentNodeType = currentNode . nodeType , swapMethod ; if ( newNodeType !== currentNodeType ) { $ ( currentNode ) . replaceWith ( newNode ) ; } else { swapMethod = swapMethods [ newNodeType ] || swapMethods [ 'default' ] ; swapMethod ( currentNode , newNode , ignoreElements ) ; } }
Changes DOM Nodes that are different, and leaves others untouched.

Algorithm:
Delegates to a particular swapMethod, depending on the Node type.
Recurses for nested Element Nodes only.
There is always room for optimizing this method.

@method hotswap
@param currentNode {Node} The DOM Node corresponding to the existing page content to update
@param newNode {Node} The detached DOM Node representing the desired DOM subtree
@param ignoreElements {Array} Array of jQuery selectors for DOM Elements to ignore during render. Can be an expensive check.
Changes DOM Nodes that are different and leaves others untouched .