canonical codes logic
callbackを経由してcanonical codesを計算。冗長なツリー探索なし。
generator
define Uint8Array.prototype
1. declare value, valuesconst v=reduce(false,this,(a,v)=>a.limit(false,v),0),vs=new Uint16Array(2+v)2. set values
forEach(false,this,(v,i)=>0<v&&vs[1+v]++)
forEach(false,v,(_,i)=>vs[1+i]=vs[i]+vs[1+i]<<1)3. return
return map(false,new Uint32Array(this),v=>v?c(vs[v]++,v)<<8|v:0)