docs: function() {
      var j;
  
      /* Initialize the hash table. */
      for(j = 0; j < zip_HASH_SIZE; j++)
  //	zip_head2(j, zip_NIL);
  	zip_prev[zip_WSIZE + j] = 0;
      /* prev will be initialized on the fly */
  
      /* Set the default configuration parameters:
       */
      zip_max_lazy_match = zip_configuration_table[zip_compr_level].max_lazy;
      zip_good_match     = zip_configuration_table[zip_compr_level].good_length;
      if(!zip_FULL_SEARCH)
  	zip_nice_match = zip_configuration_table[zip_compr_level].nice_length;
      zip_max_chain_length = zip_configuration_table[zip_compr_level].max_chain;
  
      zip_strstart = 0;
      zip_block_start = 0;
  
      zip_lookahead = zip_read_buff(zip_window, 0, 2 * zip_WSIZE);
      if(zip_lookahead <= 0) {
  	zip_eofile = true;
  	zip_lookahead = 0;
  	return;
      }
      zip_eofile = false;
      /* Make sure that we always have enough lookahead. This is important
       * if input comes from a device such as a tty.
       */
      while(zip_lookahead < zip_MIN_LOOKAHEAD && !zip_eofile)
  	zip_fill_window();
  
      /* If lookahead < MIN_MATCH, ins_h is garbage, but this is
       * not important since only literal bytes will be emitted.
       */
      zip_ins_h = 0;
      for(j = 0; j < zip_MIN_MATCH - 1; j++) {
  //      UPDATE_HASH(ins_h, window[j]);
  	zip_ins_h = ((zip_ins_h << zip_H_SHIFT) ^ (zip_window[j] & 0xff)) & zip_HASH_MASK;
      }
  }