code: function(o, name, attr){
  		
  		defineGetter(o[PROTOTYPE], name, function(){
  			var tokenList,
  			THIS = this,
  			
  			/** Prevent this from firing twice for some reason. What the hell, IE. */
  			gibberishProperty           = DEFINE_GETTER + DEFINE_PROPERTY + name;
  			if(THIS[gibberishProperty]) return tokenList;
  			THIS[gibberishProperty]     = TRUE;
  			
  			
  			/**
  			 * IE8 can't define properties on native JavaScript objects, so we'll use a dumb hack instead.
  			 *
  			 * What this is doing is creating a dummy element ("reflection") inside a detached phantom node ("mirror")
  			 * that serves as the target of Object.defineProperty instead. While we could simply use the subject HTML
  			 * element instead, this would conflict with element types which use indexed properties (such as forms and
  			 * select lists).
  			 */
  			if(FALSE === dpSupport){
  				
  				var visage,
  				mirror      = addProp.mirror = addProp.mirror || DOC[ CREATE_ELEMENT ](DIV),
  				reflections = mirror.childNodes,
  				
  				/** Iterator variables */
  				l = reflections[ LENGTH ],
  				i = 0;
  				
  				for(; i < l; ++i)
  					if(reflections[i]._R === THIS){
  						visage = reflections[i];
  						break;
  					}
  				
  				/** Couldn't find an element's reflection inside the mirror. Materialise one. */
  				visage || (visage = mirror.appendChild(DOC[ CREATE_ELEMENT ](DIV)));
  				
  				tokenList = DOMTokenList.call(visage, THIS, attr);
  			}
  			
  			else tokenList = new DOMTokenList(THIS, attr);
  			
  			
  			defineGetter(THIS, name, function(){ return tokenList; });
  			delete THIS[gibberishProperty];
  			
  			return tokenList;
  		}, TRUE);
  	}
docs: /*<