UNPKG

@evan/wasm

Version:
65 lines (51 loc) 31.9 kB
let wasm; { const module = new WebAssembly.Module(((r,n)=>{var a=Uint8Array,e=Uint16Array,f=Uint32Array,o=a.of(16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15),i=a.of(0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0),t=a.of(0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0),v=function(r,n){for(var a=new e(31),o=0;o<31;++o)a[o]=n+=1<<r[o-1];var i=new f(a[30]);for(o=1;o<30;++o)for(var t=a[o];t<a[o+1];++t)i[t]=t-a[o]<<5|o;return[a,i]},u=v(i,2),l=u[0],s=u[1];l[28]=258,s[258]=28;for(var w,b=v(t,0)[0],c=new e(32768),y=0;y<32768;++y)w=(61680&(w=(52428&(w=(43690&y)>>>1|(21845&y)<<1))>>>2|(13107&w)<<2))>>>4|(3855&w)<<4,c[y]=((65280&w)>>>8|(255&w)<<8)>>>1;var g=function(r,n,a){for(var f=r.length,o=0,i=new e(n);o<f;++o)++i[r[o]-1];var t,v=new e(n);for(o=0;o<n;++o)v[o]=v[o-1]+i[o-1]<<1;if(a){t=new e(1<<n);var u=15-n;for(o=0;o<f;++o)if(r[o])for(var l=o<<4|r[o],s=n-r[o],w=v[r[o]-1]++<<s,b=w|(1<<s)-1;w<=b;++w)t[c[w]>>>u]=l}else for(t=new e(f),o=0;o<f;++o)r[o]&&(t[o]=c[v[r[o]-1]++]>>>15-r[o]);return t},h=new a(288);for(y=0;y<144;++y)h[y]=8;for(y=144;y<256;++y)h[y]=9;for(y=256;y<280;++y)h[y]=7;for(y=280;y<288;++y)h[y]=8;var k=new a(32);for(y=0;y<32;++y)k[y]=5;var A=g(h,9,1),U=g(k,5,1),d=function(r){for(var n=r[0],a=1;a<r.length;++a)r[a]>n&&(n=r[a]);return n},p=function(r,n,a){var e=n>>3|0;return(r[e]|r[e+1]<<8)>>(7&n)&a},m=function(r,n){var a=n>>3|0;return(r[a]|r[a+1]<<8|r[a+2]<<16)>>(7&n)};const z=new Uint8Array(r);return function(r,n,v){var u=r.length;if(!u||v&&!v.l&&u<5)return n||new a(0);v||(v={}),n||(n=new a(3*u));var s,w=v.f||0,c=v.p||0,y=v.b||0,h=v.l,k=v.d,z=v.m,j=v.n,q=8*u;do{if(!h){v.f=w=p(r,c,1);var x=p(r,c+1,3);if(c+=3,!x){var B=r[(M=((s=c)>>3|0)+(7&s&&1)+4)-4]|r[M-3]<<8,C=M+B;if(C>u)break;n.set(r.subarray(M,C),y),v.b=y+=B,v.p=c=8*C;continue}if(1===x)h=A,k=U,z=9,j=5;else if(2===x){var D=p(r,c,31)+257,E=p(r,c+10,15)+4,F=D+p(r,c+5,31)+1;c+=14;for(var G=new a(F),H=new a(19),I=0;I<E;++I)H[o[I]]=p(r,c+3*I,7);c+=3*E;var J=d(H),K=(1<<J)-1,L=g(H,J,1);for(I=0;I<F;){var M,N=L[p(r,c,K)];if(c+=15&N,(M=N>>>4)<16)G[I++]=M;else{var O=0,P=0;for(16===M?(P=3+p(r,c,3),c+=2,O=G[I-1]):17===M?(P=3+p(r,c,7),c+=3):18===M&&(P=11+p(r,c,127),c+=7);P--;)G[I++]=O}}var Q=G.subarray(0,D),R=G.subarray(D);z=d(Q),j=d(R),h=g(Q,z,1),k=g(R,j,1)}if(c>q)break}for(var S=(1<<z)-1,T=(1<<j)-1,V=c;;V=c){var W=(O=h[m(r,c)&S])>>>4;if((c+=15&O)>q)break;if(W<256)n[y++]=W;else{if(256===W){V=c,h=null;break}var X=W-254;if(W>264){var Y=i[I=W-257];X=p(r,c,(1<<Y)-1)+l[I],c+=Y}var Z=k[m(r,c)&T],$=Z>>>4;c+=15&Z;R=b[$];if($>3){Y=t[$];R+=m(r,c)&(1<<Y)-1,c+=Y}if(c>q)break;for(var _=y+X;y<_;y+=4)n[y]=n[y-R],n[y+1]=n[y+1-R],n[y+2]=n[y+2-R],n[y+3]=n[y+3-R];y=_}}v.l=h,v.p=V,v.b=y,h&&(w=1,v.m=z,v.d=k,v.n=j)}while(!w);y===n.length||function(r,n,o){(null==n||n<0)&&(n=0),(null==o||o>r.length)&&(o=r.length);var i=new(r instanceof e?e:r instanceof f?f:a)(o-n);i.set(r.subarray(n,o))}(n,0,y)}(n.subarray(2,-4),z),z})(49119,Uint8Array.from(atob('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'), char => char.codePointAt(0)))); const instance = new WebAssembly.Instance(module); wasm = instance.exports; } class mem { static length() { return wasm.wlen(); } static alloc(size) { return wasm.walloc(size); } static free(ptr, size) { return wasm.wfree(ptr, size); } static u8(ptr, size) { return new Uint8Array(wasm.memory.buffer, ptr, size); } static u32(ptr, size) { return new Uint32Array(wasm.memory.buffer, ptr, size); } static copy_and_free(ptr, size) { let slice = mem.u8(ptr, size).slice(); return (wasm.wfree(ptr, size), slice); } } export function decompress(buffer) { return decompress_with(buffer, x => x.slice()); } export function decompress_raw(size, buffer) { return decompress_raw_with(size, buffer, x => x.slice()); } export function compress(buffer) { const ptr = mem.alloc(buffer.length); mem.u8(ptr, buffer.length).set(buffer); return mem.copy_and_free(wasm.compress(ptr, buffer.length), mem.length()); } export function compress_raw(buffer) { const ptr = mem.alloc(buffer.length); mem.u8(ptr, buffer.length).set(buffer); return mem.copy_and_free(wasm.compress_raw(ptr, buffer.length), mem.length()); } export function decompress_with(buffer, transform) { const ptr = mem.alloc(buffer.length); mem.u8(ptr, buffer.length).set(buffer); const x = wasm.decompress(ptr, buffer.length); if (0 === x) throw new Error('lz4: failed to decompress'); const u8 = mem.u8(x, mem.length()); const value = transform(u8); return (mem.free(x, u8.length), value); } export function decompress_raw_with(size, buffer, transform) { const ptr = mem.alloc(buffer.length); mem.u8(ptr, buffer.length).set(buffer); const x = wasm.decompress_raw(size, ptr, buffer.length); if (0 === x) throw new Error('lz4: failed to decompress (raw)'); const u8 = mem.u8(x, mem.length()); const value = transform(u8); return (mem.free(x, u8.length), value); }