rem: comments = parts[2] ? parts[2].split(",") : []; 
context:   onReadyStateChange: function() {    // xxx use the real const here    if (this._request && this._request.readyState == 4) {      try {        var status = this._request.status;      }      catch (e) {        // The XML HttpRequest can throw NS_ERROR_NOT_AVAILABLE.        return;      }      var responseText = this._request.responseText;      if (status == 200 && responseText != "") {        var searchString, results, comments, queryURLs;        var searchService =           Components.classes["@mozilla.org/browser/search-service;1"]                    .getService(Components.interfaces.nsIBrowserSearchService);        var sandboxHost = "http://" + searchService.currentEngine.suggestionURI.host;        var sandbox = new Components.utils.Sandbox(sandboxHost);        var results2 = Components.utils.evalInSandbox(responseText, sandbox);                if (results2[0]) {          searchString = results2[0] ? results2[0] : "";          results = results2[1] ? results2[1] : [];          comments = results2[2] ? results2[2] : [];        }        else {           // this is backwards compat code for Google Suggest, to be removed          // once they shift to the new format          // The responseText is formatted like so:          // searchString\n"r1","r2","r3"\n"c1","c2","c3"\n"p1","p2","p3"          // ... where all values are escaped:          //  rX = result  (search term or URL)          //  cX = comment (number of results or page title)          //  pX = prefix          var parts = responseText.split("\n");          results = parts[1] ? parts[1].split(",") : [];          comments = parts[2] ? parts[2].split(",") : [];          for (var i = 0; i < results.length; ++i) {            results[i] = unescape(results[i]);            results[i] = results[i].substr(1, results[i].length - 2);            comments[i] = unescape(comments[i]);            comments[i] = comments[i].substr(1, comments[i].length - 2);          }        }        // Notify the FE of our new results        this.onResultsReady(searchString, results, comments);        // Reset our state for next time.         this._request = null;        this._listener = null;      }    }  },
meta: 10234	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/10234/4a48353761e0b8b3eefa3e987999d2ded1dfaae8/nsSearchSuggestions.js/buggy/browser/components/search/nsSearchSuggestions.js