code: function lm_init() {
  		var j;
  
  		// Initialize the hash table. */
  		for (j = 0; j < HASH_SIZE; j++) {
  			// head2(j, NIL);
  			prev[WSIZE + j] = 0;
  		}
  		// prev will be initialized on the fly */
  
  		// Set the default configuration parameters:
  		max_lazy_match = configuration_table[compr_level].max_lazy;
  		good_match = configuration_table[compr_level].good_length;
  		if (!FULL_SEARCH) {
  			nice_match = configuration_table[compr_level].nice_length;
  		}
  		max_chain_length = configuration_table[compr_level].max_chain;
  
  		strstart = 0;
  		block_start = 0;
  
  		lookahead = read_buff(window, 0, 2 * WSIZE);
  		if (lookahead <= 0) {
  			eofile = true;
  			lookahead = 0;
  			return;
  		}
  		eofile = false;
  		// Make sure that we always have enough lookahead. This is important
  		// if input comes from a device such as a tty.
  		while (lookahead < MIN_LOOKAHEAD && !eofile) {
  			fill_window();
  		}
  
  		// If lookahead < MIN_MATCH, ins_h is garbage, but this is
  		// not important since only literal bytes will be emitted.
  		ins_h = 0;
  		for (j = 0; j < MIN_MATCH - 1; j++) {
  			// UPDATE_HASH(ins_h, window[j]);
  			ins_h = ((ins_h << H_SHIFT) ^ (window[j] & 0xff)) & HASH_MASK;
  		}
  	}
docs: /* ==========================================================================
  Initialize the "longest match" routines for a new file