code: function build_bl_tree() {
  		var max_blindex; // index of last bit length code of non zero freq
  
  		// Determine the bit length frequencies for literal and distance trees
  		scan_tree(dyn_ltree, l_desc.max_code);
  		scan_tree(dyn_dtree, d_desc.max_code);
  
  		// Build the bit length tree:
  		build_tree(bl_desc);
  		// opt_len now includes the length of the tree representations, except
  		// the lengths of the bit lengths codes and the 5+5+4 bits for the counts.
  
  		// Determine the number of bit length codes to send. The pkzip format
  		// requires that at least 4 bit length codes be sent. (appnote.txt says
  		// 3 but the actual value used is 4.)
  		for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {
  			if (bl_tree[bl_order[max_blindex]].dl !== 0) {
  				break;
  			}
  		}
  		// Update opt_len to include the bit length tree and counts */
  		opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;
  		// Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld",
  		// encoder->opt_len, encoder->static_len));
  
  		return max_blindex;
  	}
docs: /* ==========================================================================
  Construct the Huffman tree for the bit lengths and return the index in
  bl_order of the last bit length code to send.