code: function (dataSource) {
              if (!dataSource) {
                  throw new ArgumentError(
                      Logger.logMessage(Logger.LEVEL_SEVERE, "AAIGridReader", "constructor", "missingDataSource")
                  );
              }
  
              if (typeof dataSource !== 'string' && !(dataSource instanceof ArrayBuffer)) {
                  throw new ArgumentError(
                      Logger.logMessage(Logger.LEVEL_SEVERE, "AAIGridReader", "constructor", "invalidDataSource")
                  );
              }
  
              //Internal. Contains the numerical values of the AAIGrid.
              this._values = null;
  
              //Documented in defineProperties below.
              this._metadata = new AAIGridMetadata();
  
              var dataString = this.decodeData(dataSource);
              this.parse(dataString);
          }
docs: Constructs an AAIGrid reader object for the specified data source.
  Call [getImageData]{@link AAIGridReader#getImageData} to retrieve the data as a typed array.
  Use [metadata]{@link AAIGridReader#metadata} to access the metadata of this AAIGrid.
  @alias AAIGridReader
  @constructor
  @classdesc Parses an AAIGrid and creates a typed array with its values.
  @param {String|ArrayBuffer} dataSource The data source for the AAIGrid.
  @throws {ArgumentError} If the specified data source is not a string or an array buffer.