rem: for (i = pseudos.length; i--; i){ var pseudo = pseudos[i]; 
add: for (i = params.pseudos.length; i--; i){ var pseudo = params.pseudos[i]; 
context: 	getParam: function(items, separator, context, tag, id, classNames, attributes, pseudos){		var temp = context.namespaceURI ? 'xhtml:' : '';		switch (separator){			case '~': case '+': temp += '/following-sibling::'; break;			case '>': temp += '/'; break;			case ' ': temp += '//';		}		temp += tag;		if (separator == '+') temp += '[1]';		var i;		for (i = pseudos.length; i--; i){			var pseudo = pseudos[i];			if (pseudo.parser && pseudo.parser.xpath) temp += pseudo.parser.xpath(pseudo.argument);			else temp += ($chk(pseudo.argument)) ? '[@' + pseudo.name + '="' + pseudo.argument + '"]' : '[@' + pseudo.name + ']';		}		if (id) temp += '[@id="' + id + '"]';		for (i = classNames.length; i--; i) temp += '[contains(concat(" ", @class, " "), " ' + classNames[i] + ' ")]';		for (i = attributes.length; i--; i){			var bits = attributes[i];			switch (bits[1]){				case '=': temp += '[@' + bits[0] + '="' + bits[2] + '"]'; break;				case '*=': temp += '[contains(@' + bits[0] + ', "' + bits[2] + '")]'; break;				case '^=': temp += '[starts-with(@' + bits[0] + ', "' + bits[2] + '")]'; break;				case '$=': temp += '[substring(@' + bits[0] + ', string-length(@' + bits[0] + ') - ' + bits[2].length + ' + 1) = "' + bits[2] + '"]'; break;				case '!=': temp += '[@' + bits[0] + '!="' + bits[2] + '"]'; break;				case '~=': temp += '[contains(concat(" ", @' + bits[0] + ', " "), " ' + bits[2] + ' ")]'; break;				case '|=': temp += '[contains(concat("-", @' + bits[0] + ', "-"), "-' + bits[2] + '-")]'; break;				default: temp += '[@' + bits[0] + ']';			}		}		items.push(temp);		return items;	},
meta: 8516	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/8516/bd09ba56a81671b52500b5528a170125860d15ce/Selectors.js/buggy/Source/Selectors/Selectors.js