anchor.diff:    };
   
     parseFields(list) {
  -    var h = {}, len = list.length, i = 5, fieldDesc, key,
  +    var h = {}, len = list.length, i = 5, fieldDesc, key, c,
         listAddress = list.buffer.getForeign().value, strStart, strLen;
       while (i + 2 < len) {
  -      key = new String.fromCharCode(list[i]);
  +      c = list[i];
  +      if (c == 0) {
  +        break;
  +      }
  +      key = new String.fromCharCode(c);
         strStart = listAddress + i + 1;
         strLen = MoreSys.memchr(strStart, 0, len) - strStart;
         if (strLen > 0) {
  
positive.code:       i += strLen + 2;
      }
      if (i < len) {
        if (i + 1 == len && list[i] == 0) {
          // OK. End of fields. So just ignore it.
        } else {
          throw "Could not parse the response fields.";
  
negative.code:     }
    }
  
    parseRowDescription(list) {
  
    }
  
    parseQueryResponse(list) {
      var len = list.length;
      if (len == 0) {
        throw "The query response is empty.";
      }
      var c = list[0];
      if (c == 84) { // T for RowDescription.
        parseRowDescription(list);
      } else if (c == 69) { // E for ErrorResponse.
        throw "ErrorResponse: ${inspect(parseFields(list))}";
      } else {
        throw "Unsupported for now.";
      }
    }
  
    /* End of Query section */
  