anchor.diff:  _new(path) native 'New';
   _close(handle) native 'Close';
   _version() native 'Version';
  -
  
positive.code:     }
    }
  
    /// Returns the values in this row as a [List].
    List<Object> asList() => new List<Object>.from(_data);
  
    /// Returns the values in this row as a [Map] keyed by column name.
    /// The Map iterates in column order.
    Map<String, Object> asMap() {
      var result = new LinkedHashMap<String, Object>();
      for (int i = 0; i < _data.length; i++) {
  
negative.code:     if (_statement == null) throw new SqliteException._internal("Statement is closed");
    }
  
    /**
     * Closes this statement, and releases associated resources.
     *
     * This should be called exactly once for each instance created. After calling
     * this method, attempting to [execute] the statement will throw a
     * [SqliteException]. 
     */
    void close() {
      _checkOpen();
      _closeStatement(_statement);
      _statement = null;
    }
  
    /**
     * Executes the statement.
     *
     * If this statement contains placeholders, their values must be specified in
     * [params]. If [callback] is given, it will be invoked for each [Row] that
     * this statement produces. [callback] may return [:true:] to stop fetching
     * further rows. 
     *
     * Returns the number of rows fetched (for statements which produce rows), or
     * the number of rows affected (for statements which alter data).
     */
    int execute([params = const [], bool callback(Row)]) {
      _checkOpen();
      _reset(_statement);
  