code: function (element, deep) {
  		var
  		childNodes = element.childNodes || [],
  		index = -1,
  		key, value, childNode;
  
  		if (element.nodeType === 1 && element.constructor !== Element) {
  			element.constructor = Element;
  
  			for (key in cache) {
  				value = cache[key];
  				element[key] = value;
  			}
  		}
  
  		while (childNode = deep && childNodes[++index]) {
  			shiv(childNode, deep);
  		}
  
  		return element;
  	}
docs: polyfill Element.prototype on an element