rem: NS_ASSERT((lastVal === undefined && lastName === undefined) || (lastVal !== undefined && lastName !== undefined), 
add: NS_ASSERT(!((lastVal === undefined) ^ (lastName === undefined)), 
context:   _parseHeaders: function(lis)  {    var headers = this._headers;    var lastName, lastVal;    var line = {};    while (true)    {      NS_ASSERT((lastVal === undefined && lastName === undefined) ||                (lastVal !== undefined && lastName !== undefined),                lastName === undefined ?                  "lastVal without lastName?  lastVal: '" + lastVal + "'" :                  "lastName without lastVal?  lastName: '" + lastName + "'");      lis.readLine(line);      var lineText = line.value;      var firstChar = lineText.charAt(0);      // blank line means end of headers      if (lineText == "")      {        // we're finished with the previous header        if (lastName)        {          try          {            headers.setHeader(lastName, lastVal, true);          }          catch (e)          {            dumpn("*** e == " + e);            this.errorCode = 400;            return;          }        }        else        {          // no headers in request -- valid for HTTP/1.0 requests        }        // either way, we're done processing headers        break;      }      else if (firstChar == " " || firstChar == "\t")      {        // multi-line header if we've seen a header line        if (!lastName)        {          // we don't have a header to continue!          this.errorCode = 400;          return;        }        // append this line's text to the value; starts with SP/HT, so no need        // for separating whitespace        lastVal += lineText;      }      else      {        // we have a new header, so set the old one (if one existed)        if (lastName)        {          try          {            headers.setHeader(lastName, lastVal, true);          }          catch (e)          {            dumpn("*** e == " + e);            this.errorCode = 400;            return;          }        }        var colon = lineText.indexOf(":"); // first colon must be splitter        if (colon < 1)        {          // no colon or missing header field-name          this.errorCode = 400;          return;        }        // set header name, value (to be set in the next loop, usually)        lastName = lineText.substring(0, colon);        lastVal = lineText.substring(colon + 1);      } // empty, continuation, start of header    } // while (true)  }
meta: 10234	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/10234/83ffd0f377352f73cd8d129e6518b12639a482e4/httpd.js/clean/netwerk/test/httpserver/httpd.js