rem: case undefined: conditions.push(value + ' != null'); break; 
add: case undefined: conditions.push('element.hasAttribute(' + attribute.name.inspect() + ')'); break; 
context:   buildMatchExpression: function() {    var params = this.params, conditions = [], clause;    if (params.wildcard)      conditions.push('true');    if (clause = params.id)      conditions.push('element.id == ' + clause.inspect());    if (clause = params.tagName)      conditions.push('element.tagName.toUpperCase() == ' + clause.inspect());    if ((clause = params.classNames).length > 0)      for (var i = 0, length = clause.length; i < length; i++)        conditions.push('Element.hasClassName(element, ' + clause[i].inspect() + ')');    if (clause = params.attributes) {      clause.each(function(attribute) {        var value = 'element.getAttribute(' + attribute.name.inspect() + ')';        var splitValueBy = function(delimiter) {          return value + ' && ' + value + '.split(' + delimiter.inspect() + ')';        }        switch (attribute.operator) {          case '=':       conditions.push(value + ' == ' + attribute.value.inspect()); break;          case '~=':      conditions.push(splitValueBy(' ') + '.include(' + attribute.value.inspect() + ')'); break;          case '|=':      conditions.push(                            splitValueBy('-') + '.first().toUpperCase() == ' + attribute.value.toUpperCase().inspect()                          ); break;          case '!=':      conditions.push(value + ' != ' + attribute.value.inspect()); break;          case '':          case undefined: conditions.push(value + ' != null'); break;          default:        throw 'Unknown operator ' + attribute.operator + ' in selector';        }      });    }    return conditions.join(' && ');  },
meta: 1382	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/1382/53dfa93e53bccf5af1729cbdce88cb70e1ffcca5/prototype.js/buggy/public/javascripts/prototype.js