@webreflection/coincident
Version:
An Atomics based Proxy to simplify, and synchronize, Worker related tasks
2 lines (1 loc) • 1.84 kB
JavaScript
let e="coincident-";try{new SharedArrayBuffer(4,{maxByteLength:8}),e+=crypto.randomUUID()}catch(r){e+=Math.random().toString(36).substring(2)}const{fromCharCode:r}=String,{min:t}=Math;var n=0,s=1,c=2,o=3,a=4,u=5,l=6,i=7,f=8,y=9,h=10,w=11,d=12,p=13,g=14,b=15,m=16,S=17;const{defineProperty:v}=Object,x=e=>{switch(e[U++]){case s:{const r=e[U++],t=[];e[U-2]=t;for(let n=0;n<r;n++)t[n]=x(e);return t}case c:{const r=e[U++],t={};e[U-2]=t;for(let n=0;n<r;n++)t[x(e)]=x(e);return t}case a:{const r=e[U++];return e[U-2]=r,r}case n:return e[e[U++]];case o:return e[U++];case d:return BigInt(e[U++]);case u:return!0;case l:return!1;case i:return null;case p:return;case f:{const r=e[U++],t=e[U++],n=[r];t&&n.push({maxByteLength:t});const s=new ArrayBuffer(...n);e[U-3]=s;const c=new Uint8Array(s,0,r);for(let t=0;t<r;t++)c[t]=e[U++];return s}case y:{const r=e[U++],t=e[U++],n=e[U++],s=[x(e),t];n&&s.push(n);const c=new globalThis[r](...s);return e[U-4]=c,c}case h:return(r=e[U++]).startsWith("Symbol.")?Symbol[r.slice(r.indexOf(".")+1)]:Symbol.for(r);case w:{const r=new Date(e[U++]);return e[U-2]=r,r}case g:{const r=e[U++],t=new Map;e[U-2]=t;for(let n=0;n<r;n++){const r=x(e),n=x(e);void 0!==r&&t.set(r,n)}return t}case b:{const r=e[U++],t=new Set;e[U-2]=t;for(let n=0;n<r;n++){const r=x(e);void 0!==r&&t.add(r)}return t}case m:{const r=e[U++],t=e[U++],n=new RegExp(r,t);return e[U-3]=n,n}case S:{const r=globalThis[e[U++]]||Error,t=e[U++],n=e[U++],s=new r(t,{cause:e[U++]});return e[U-5]=v(s,"stack",{value:n}),s}default:throw new Error(`Unknown type: ${e[U-1]}`)}var r},{parse:B}=JSON;let U=0;const A=e=>{U=0;const r=B(e);return r.length?x(r):void 0},O=(e=>({byteOffset:n})=>(s,c)=>{const o=new Uint16Array(c,n,s);let a="",u=0;for(;u<s;){const e=t(u+65535,s);a+=r.apply(null,o.subarray(u,e)),u=e}return e(a)})(A);export{A as decode,O as decoder};