rem: if (child._mark) continue; if (child.nodeType == 1){ Selectors.garbage.push(child); child._mark = {position: ++count}; } 
add: if (child.nodeType != 1) continue; child.uid = child.uid || [Element.UID++]; Local.Positions[child.uid] = count++; 
context: 	filter: function(argument, index, all){		var count = 0, el = this;		switch (argument.special){			case 'n':				Selectors.garbage = Selectors.garbage || [];				if (!this._mark){					var children = this.parentNode.childNodes;					for (var i = 0, l = children.length; i < l; i++){						var child = children[i];						if (child._mark) continue;						if (child.nodeType == 1){							Selectors.garbage.push(child);							child._mark = {position: ++count};						}					}				}				return ((this._mark.position + 1) % argument.a == argument.b);			case 'last':				while ((el = el.nextSibling)){					if (el.nodeType == 1) return false;				}				return true;			case 'only':				var prev = el;				while((prev = prev.previousSibling)){					if (prev.nodeType == 1) return false;				}				var next = el;				while ((next = next.nextSibling)){					if (next.nodeType == 1) return false;				}				return true;			case 'index':				while ((el = el.previousSibling)){					if (el.nodeType == 1 && ++count > argument.a) return false;				}				return true;		}		return false;	}
meta: 8516	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/8516/f67d2cfd8151d50a3aa3df00f8b5677b49b0ece3/Selectors.Pseudo.js/clean/Source/Selectors/Selectors.Pseudo.js