var rels = {} for each (var relValue in erel.split(/\s/)) { rels[relValue] = true; 
var rels = {};  if (erel) { for each (var relValue in erel.split(/\s+/)) rels[relValue] = true; 
  onLinkAdded: function(event) {    // XXX this event listener can/should probably be combined with the onLinkAdded    // listener in tabbrowser.xml, which only listens for favicons and then passes    // them to onLinkIconAvailable in the ProgressListener.  We could extend the    // progress listener to have a generic onLinkAvailable and have tabbrowser pass    // along all events.  It should give us the browser for the tab, as well as    // the actual event.    var erel = event.target.rel;    var etype = event.target.type;    var etitle = event.target.title;    const rssTitleRegex = /(^|\s)rss($|\s)/i;    var rels = {}    for each (var relValue in erel.split(/\s/)) {      rels[relValue] = true;    }    var isFeed = rels["feed"];        if (!isFeed &&        (!rels["alternate"] || rels["stylesheet"] || !etype))      return;    if (!isFeed) {      // Use type value      etype = etype.replace(/^\s+/, "");      etype = etype.replace(/\s+$/, "");      etype = etype.replace(/\s*;.*/, "");      etype = etype.toLowerCase();      isFeed = (etype == "application/rss+xml" ||                etype == "application/atom+xml");    }        if (!isFeed) {      // really slimy: general XML types with magic letters in the title      isFeed = ((etype == "text/xml" || etype == "application/xml" ||                 etype == "application/rdf+xml") && rssTitleRegex.test(etitle));    }        if (isFeed) {      const targetDoc = event.target.ownerDocument;      // find which tab this is for, and set the attribute on the browser      var browserForLink = gBrowser.getBrowserForDocument(targetDoc);      if (!browserForLink) {        // ??? this really shouldn't happen..        return;      }      var feeds = [];      if (browserForLink.feeds != null)        feeds = browserForLink.feeds;      var wrapper = event.target;      try {         urlSecurityCheck(wrapper.href, gBrowser.currentURI.spec,                         Ci.nsIScriptSecurityManager.DISALLOW_SCRIPT_OR_DATA);      }      catch (ex) {        dump(ex.message);        return; // doesn't pass security check      }      feeds.push({ href: wrapper.href,                   type: etype,                   title: wrapper.title});      browserForLink.feeds = feeds;      if (browserForLink == gBrowser || browserForLink == gBrowser.mCurrentBrowser) {        var feedButton = document.getElementById("feed-button");        if (feedButton) {          feedButton.setAttribute("feeds", "true");          feedButton.setAttribute("tooltiptext",                                   gNavigatorBundle.getString("feedHasFeedsNew"));        }      }    }  }
5872	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/5872/0ebc140fc8d87d01abb172193f1fb823bbf67c03/browser.js/clean/browser/base/content/browser.js