add: searchTerm.matchAll = matchAll; 
context: function saveSearchTerms(searchTerms, termOwner){    var i;    for (i = 0; i<gSearchTerms.length; i++) {        try {            var searchTerm = gSearchTerms[i].obj.searchTerm;            // the term might be an offscreen one we haven't initialized yet            // if so, don't bother saving it.            if (!searchTerm && !gSearchTerms[i].initialized) {                // is an existing term, but not initialize, so skip saving                continue;            }            if (searchTerm)                gSearchTerms[i].obj.save();            else {                // need to create a new searchTerm, and somehow save it to that                searchTerm = termOwner.createTerm();                gSearchTerms[i].obj.saveTo(searchTerm);                termOwner.appendTerm(searchTerm);            }        } catch (ex) {            dump("** Error saving element " + i + ": " + ex + "\n");        }    }    // now remove the queued elements    for (i=0; i<gSearchRemovedTerms.length; i++) {        // this is so nasty, we have to iterate through        // because GetIndexOf is acting funny        var searchTermSupports =            gSearchRemovedTerms[i].QueryInterface(Components.interfaces.nsISupports);        searchTerms.RemoveElement(searchTermSupports);    }}
meta: 9421	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9421/28402a32478f945d7ec89423c631f9cf802df8da/searchTermOverlay.js/clean/mailnews/base/search/resources/content/searchTermOverlay.js