rem: result += (replacement(match) || '').toString(); 
add: result += String.interpret(replacement(match)); 
context:   gsub: function(pattern, replacement) {    var result = '', source = this, match;    replacement = arguments.callee.prepareReplacement(replacement);    while (source.length > 0) {      if (match = source.match(pattern)) {        result += source.slice(0, match.index);        result += (replacement(match) || '').toString();        source  = source.slice(match.index + match[0].length);      } else {        result += source, source = '';      }    }    return result;  },
meta: 3104	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/3104/53dfa93e53bccf5af1729cbdce88cb70e1ffcca5/prototype.js/buggy/public/javascripts/prototype.js