docs: function Filter(arg) {
    /* jshint maxcomplexity: 10 */
    if (typeof(arg) === 'object') {
      if (!arg.vData) {
        throw new TypeError('Data object should include filter data "vData"');
      }
      if (arg.vData.length > Filter.MAX_BLOOM_FILTER_SIZE * 8) {
        throw new TypeError('"vData" exceeded max size "' + Filter.MAX_BLOOM_FILTER_SIZE + '"');
      }
      this.vData = arg.vData;
      if (!arg.nHashFuncs) {
        throw new TypeError('Data object should include number of hash functions "nHashFuncs"');
      }
      if (arg.nHashFuncs > Filter.MAX_HASH_FUNCS) {
        throw new TypeError('"nHashFuncs" exceeded max size "' + Filter.MAX_HASH_FUNCS + '"');
      }
      this.nHashFuncs = arg.nHashFuncs;
      this.nTweak = arg.nTweak || 0;
      this.nFlags = arg.nFlags || Filter.BLOOM_UPDATE_NONE;
    } else {
      throw new TypeError('Unrecognized argument');
    }
  }