code: function (shapefile, buffer) {
              if (!shapefile) {
                  throw new ArgumentError(
                      Logger.logMessage(Logger.LEVEL_SEVERE, "ShapefileRecord", "constructor",
                          "The specified shapefile is null or undefined"));
              }
  
              if (!buffer) {
                  throw new ArgumentError(
                      Logger.logMessage(Logger.LEVEL_SEVERE, "ShapefileRecord", "constructor",
                          "The specified buffer is null or undefined"));
              }
  
              // All these are documented in their property definition below. All but the shapefile and point buffer
              // are determined when the record is read by this class.
              this._shapefile = shapefile;
              this._recordNumber = -1;
              this._attributes = {};
              this._numberOfParts = 0;
              this._firstPartNumber = 0;
              this._lastPartNumber = 0;
              this._numberOfPoints = 0;
              this._boundingRectangle = [];
              this._zRange = null;
              this._zValues = null;
              this._mRange = null;
              this._mValues = null;
  
              // Internal use only. Intentionally not documented.
              this._contentLengthInBytes = -1;
  
              // Internal use only. Intentionally not documented.
              this._buffer = buffer;
  
              // Internal use only. Intentionally not documented.
              this._isNormalized = false;
  
              // Internal use only. Intentionally not documented.
              this._parts = [];
  
              // Prime the input pump.
              this.readRecord();
          }
docs: Constructs a shapefile record. Applications typically do not call this constructor. It is called by
  {@link Shapefile} as shapefile records are read.
  @alias ShapefileRecord
  @constructor
  @classdesc Contains the data associated with a shapefile record.
  @param {Shapefile} shapefile The shapefile containing this record.
  @param {ByteBuffer} buffer The buffer descriptor of the shapefile record's contents.
  @throws {ArgumentError} If either the specified shapefile or buffer are null or undefined.