package merge code lengths logic

calculate package merge code lengths from array/typedarray.
no redundant tree traversal.

define Number.prototype

1. declare values
const vs=new Uint8Array(v.length)

2. set value, declare length
,l=(v=reduce(false,v,(a,v,i)=>{
    if(v)a.push([v,i])
    return a
},[])).length

3. return
if(0===l)return vs

4. return
if(1===l)return(vs[v[0][1]]=1)&&vs

5. sort value
v=sort(false,v,(a,b)=>a[0]-b[0])

6. declare call
let c=(a,c)=>map(false,l+a.length>>>1,()=>((v0,v1)=>[v0[0]+v1[0],v0,v1])(c(),c()))

7. set value
v=reduce(false,this,a=>((i0,i1)=>c(a,()=>(v[i0]||[1/0])[0]<(a[i1]||[1/0])[0]?v[i0++]:a[i1++]))(0,0),[])

8. set call
c=v=>v[2]?c(v[1])||c(v[2]):!++vs[v[1]]

9. set values, return
return forEach(false,l-1,(_,i)=>c(v[i]))||vs