@evan/wasm
Version:
set of wasm modules
125 lines (101 loc) • 48.5 kB
JavaScript
let wasm;
let pool = 0;
const streams = new Map;
{
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})(60531,Uint8Array.from(atob('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'), char => char.codePointAt(0))));
const instance = new WebAssembly.Instance(module, {
env: {
push_to_stream(id, ptr) {
streams.get(id).cb(mem.u8(ptr, mem.length()).slice());
},
},
});
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 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(buffer) {
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('snappy: failed to decompress');
return mem.copy_and_free(x, mem.length());
}
export function decompress_raw(buffer) {
const ptr = mem.alloc(buffer.length);
mem.u8(ptr, buffer.length).set(buffer);
const x = wasm.decompress_raw(ptr, buffer.length);
if (0 === x) throw new Error('snappy: failed to decompress (raw)');
return mem.copy_and_free(x, 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('snappy: 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(buffer, transform) {
const ptr = mem.alloc(buffer.length);
mem.u8(ptr, buffer.length).set(buffer);
const x = wasm.decompress_raw(ptr, buffer.length);
if (0 === x) throw new Error('snappy: failed to decompress (raw)');
const u8 = mem.u8(x, mem.length());
const value = transform(u8);
return (mem.free(x, u8.length), value);
}
export class CompressionStream {
constructor() {
const t = new TransformStream();
const writer = t.writable.getWriter();
const c = new Compressor(x => writer.write(x));
return {
readable: t.readable,
writable: new WritableStream({
write(chunk) { c.write(chunk) },
abort(r) { c.free(); return writer.abort(r) },
close() { c.flush(); c.free(); return writer.close() },
}),
};
}
}
export class Compressor {
constructor(callback) {
this.id = pool++;
this.cb = callback;
streams.set(this.id, this);
this.ptr = wasm.compressor_new(this.id);
}
flush() {
wasm.compressor_flush(this.ptr);
}
free() {
wasm.compressor_free(this.ptr); streams.delete(this.id);
}
write(buffer) {
const ptr = mem.alloc(buffer.length);
mem.u8(ptr, buffer.length).set(buffer);
wasm.compressor_write(this.ptr, ptr, buffer.length);
}
}