code: function(nodes, val, teardown) {
  		// #### replace
  		// Replaces one element with some content while keeping nodeLists data
  		// correct.
  		//
  		// Take a copy of old nodeList
  		var oldNodes = nodes.slice(0),
  			frag = makeFrag(val);
  		// Register a teardown callback
  		nodeLists.register(nodes, teardown);
  		// Mark each node as belonging to the node list.
  		nodeLists.update(nodes, childNodes(frag));
  		// Replace old nodes with new on the DOM
  		nodeLists.replace(oldNodes, frag);
  		return nodes;
  	}
docs: @function can.view.live.replace
  @parent can.view.live
  @release 2.0.4
  @hide
  
  Replaces one element with some content while keeping [can.view.live.nodeLists nodeLists] data
  correct.
  
  @param {Array.<HTMLElement>} nodes An array of elements.  There should typically be one element.
  @param {String|HTMLElement|DocumentFragment} val The content that should replace
  `nodes`.  If a string is passed, it will be [can.view.hookup hookedup].
  
  @param {function} [teardown] A callback if these elements are torn down.