subscript 10.0.1 → 10.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/feature/block.js CHANGED
@@ -35,7 +35,4 @@ export const block = () =>
35
35
 
36
36
  // body() - parse { body } or single statement
37
37
  export const body = () =>
38
- space() !== OBRACE ? expr(STATEMENT + .5) : (skip(), ['block', expr(STATEMENT - .5, CBRACE) || null]);
39
-
40
- // Compile
41
- operator('block', body => body === undefined ? () => {} : (body = compile(body), ctx => body(ctx)));
38
+ space() !== OBRACE ? expr(STATEMENT + .5) : (skip(), expr(STATEMENT - .5, CBRACE) || null);
@@ -5,20 +5,29 @@
5
5
  */
6
6
  import { compile } from '../parse.js';
7
7
 
8
+ // Flatten comma into array: [',', a, b, c] → [a, b, c]
9
+ const flatten = items => items[0]?.[0] === ',' ? items[0].slice(1) : items;
10
+
8
11
  // Destructure value into context
9
12
  export const destructure = (pattern, value, ctx) => {
10
13
  if (typeof pattern === 'string') { ctx[pattern] = value; return; }
11
- const [op, ...items] = pattern;
14
+ const [op, ...raw] = pattern;
15
+ const items = flatten(raw);
12
16
  if (op === '{}') {
13
17
  for (const item of items) {
14
18
  let key, binding, def;
15
- if (item[0] === '=') [, [, key, binding], def] = item;
16
- else [, key, binding] = item;
19
+ // Shorthand: {x} → item is 'x'
20
+ // With default: {x = 1} → ['=', 'x', default]
21
+ // Rename: {x: y} → [':', 'x', 'y']
22
+ if (typeof item === 'string') { key = binding = item }
23
+ else if (item[0] === '=') { typeof item[1] === 'string' ? (key = binding = item[1]) : ([, key, binding] = item[1]); def = item[2] }
24
+ else { [, key, binding] = item }
17
25
  let val = value[key];
18
26
  if (val === undefined && def) val = compile(def)(ctx);
19
27
  destructure(binding, val, ctx);
20
28
  }
21
- } else if (op === '[]') {
29
+ }
30
+ else if (op === '[]') {
22
31
  let i = 0;
23
32
  for (const item of items) {
24
33
  if (item === null) { i++; continue; }
package/feature/module.js CHANGED
@@ -30,8 +30,8 @@ keyword('import', STATEMENT, () => (space(), ['import', expr(SEQ)]));
30
30
  // export: prefix for declarations or re-exports (use STATEMENT to capture const/let/function)
31
31
  keyword('export', STATEMENT, () => (space(), ['export', expr(STATEMENT)]));
32
32
 
33
- // default: prefix for export default
34
- keyword('default', SEQ + 1, () => (space(), ['default', expr(SEQ)]));
33
+ // default: prefix for export default (NOT switch default: which has colon)
34
+ keyword('default', SEQ + 1, () => space() !== 58 && (space(), ['default', expr(SEQ)]));
35
35
 
36
36
  // Compile stubs - import/export are parse-only (no runtime semantics)
37
37
  import { operator, compile } from '../parse.js';
package/feature/switch.js CHANGED
@@ -1,48 +1,71 @@
1
1
  // Switch/case/default
2
- // AST: ['switch', val, [';', ['case', test], stmts..., ['default'], stmts...]]
3
- import { expr, skip, space, parens, operator, compile } from '../parse.js';
4
- import { keyword, block } from './block.js';
2
+ // AST: ['switch', val, ['case', test, body], ['default', body], ...]
3
+ import { expr, skip, space, parens, operator, compile, idx, err, seek, parse, lookup, word } from '../parse.js';
4
+ import { keyword } from './block.js';
5
5
  import { BREAK } from './control.js';
6
6
 
7
- const STATEMENT = 5, ASSIGN = 20, COLON = 58;
7
+ const STATEMENT = 5, ASSIGN = 20, COLON = 58, SEMI = 59, CBRACE = 125;
8
8
 
9
- keyword('switch', STATEMENT + 1, () => (space(), ['switch', parens(), block()]));
10
- keyword('case', STATEMENT + 1, () => (space(), (c => (space() === COLON && skip(), ['case', c]))(expr(ASSIGN))));
11
- keyword('default', STATEMENT + 1, () => (space() === COLON && skip(), ['default']));
9
+ // Reserve 'case' and 'default' as keywords that fail outside switch body
10
+ // This prevents them becoming identifiers for colon operator
11
+ const reserve = (w, c = w.charCodeAt(0), prev = lookup[c]) =>
12
+ lookup[c] = (a, prec, op) => (word(w) && !a && (parse.reserved = 1)) || prev?.(a, prec, op);
13
+ reserve('case');
14
+ reserve('default');
15
+
16
+ // caseBody() - parse statements until next case/default/}
17
+ const caseBody = (c) => {
18
+ const stmts = [];
19
+ while ((c = space()) !== CBRACE && !word('case') && !word('default')) {
20
+ if (c === SEMI) { skip(); continue; }
21
+ stmts.push(expr(STATEMENT - .5)) || err();
22
+ }
23
+ return stmts.length > 1 ? [';', ...stmts] : stmts[0] || null;
24
+ };
25
+
26
+ // switchBody() - parse case/default statements
27
+ const switchBody = () => {
28
+ space() === 123 || err('Expected {'); skip();
29
+ const cases = [];
30
+ while (space() !== CBRACE) {
31
+ if (word('case')) {
32
+ seek(idx + 4); space();
33
+ const test = expr(ASSIGN - .5);
34
+ space() === COLON && skip();
35
+ cases.push(['case', test, caseBody()]);
36
+ } else if (word('default')) {
37
+ seek(idx + 7); space() === COLON && skip();
38
+ cases.push(['default', caseBody()]);
39
+ } else err('Expected case or default');
40
+ }
41
+ skip();
42
+ return cases;
43
+ };
44
+
45
+ // switch (x) { ... }
46
+ keyword('switch', STATEMENT + 1, () => (space(), ['switch', parens(), ...switchBody()]));
12
47
 
13
48
  // Compile
14
- operator('switch', (val, cases) => {
49
+ operator('switch', (val, ...cases) => {
15
50
  val = compile(val);
16
- // Parse cases body: [';', ['case', test], stmts..., ['default'], stmts...]
17
- if (!cases) return ctx => val(ctx);
18
- const parsed = [];
19
- const items = cases[0] === ';' ? cases.slice(1) : [cases];
20
- let current = null;
21
- for (const item of items) {
22
- if (Array.isArray(item) && (item[0] === 'case' || item[0] === 'default')) {
23
- if (current) parsed.push(current);
24
- current = [item[0] === 'case' ? compile(item[1]) : null, []];
25
- } else if (current) {
26
- current[1].push(compile(item));
27
- }
28
- }
29
- if (current) parsed.push(current);
51
+ if (!cases.length) return ctx => val(ctx);
52
+
53
+ cases = cases.map(c => [
54
+ c[0] === 'case' ? compile(c[1]) : null,
55
+ (c[0] === 'case' ? c[2] : c[1])?.[0] === ';'
56
+ ? (c[0] === 'case' ? c[2] : c[1]).slice(1).map(compile)
57
+ : (c[0] === 'case' ? c[2] : c[1]) ? [compile(c[0] === 'case' ? c[2] : c[1])] : []
58
+ ]);
30
59
 
31
60
  return ctx => {
32
61
  const v = val(ctx);
33
- let matched = false, result;
34
- for (const [test, stmts] of parsed) {
35
- if (matched || test === null || test(ctx) === v) {
36
- matched = true;
37
- for (const stmt of stmts) {
38
- try { result = stmt(ctx); }
39
- catch (e) {
40
- if (e?.type === BREAK) return e.value !== undefined ? e.value : result;
41
- throw e;
42
- }
43
- }
44
- }
45
- }
46
- return result;
62
+ let matched = false, r;
63
+ for (const [test, stmts] of cases)
64
+ if (matched || test === null || test(ctx) === v)
65
+ for (matched = true, i = 0; i < stmts.length; i++)
66
+ try { r = stmts[i](ctx); }
67
+ catch (e) { if (e?.type === BREAK) return e.value ?? r; throw e; }
68
+ var i;
69
+ return r;
47
70
  };
48
71
  });
package/jessie.min.js CHANGED
@@ -1,8 +1,8 @@
1
- var u,c,m=r=>(u=0,c=r,m.newline=!1,r=A(),c[u]?I():r||""),I=(r="Unexpected token",e=u,t=c.slice(0,e).split(`
2
- `),o=t.pop(),n=c.slice(Math.max(0,e-40),e),s="\u032D",f=(c[e]||"\u2205")+s,l=c.slice(e+1,e+20))=>{throw SyntaxError(`${r} at ${t.length+1}:${o.length+1}
1
+ var u,c,m=r=>(u=0,c=r,m.newline=!1,r=h(),c[u]?v():r||""),v=(r="Unexpected token",e=u,t=c.slice(0,e).split(`
2
+ `),o=t.pop(),i=c.slice(Math.max(0,e-40),e),s="\u032D",f=(c[e]||"\u2205")+s,l=c.slice(e+1,e+20))=>{throw SyntaxError(`${r} at ${t.length+1}:${o.length+1}
3
3
  ${(c[e-41]!==`
4
- `?"...":"")+n}${f}${l}`)},V=(r,e=u)=>(Array.isArray(r)&&(r.loc=e),r),k=(r,e=u,t)=>{for(;t=r(c.charCodeAt(u));)u+=t;return c.slice(e,u)},g=(r=1)=>c[u+=r],G=r=>u=r,A=(r=0,e)=>{let t,o,n,s,f=m.reserved,l;for(e&&m.asi&&(m.newline=!1),m.reserved=0;(t=m.space())&&(l=m.newline,1)&&t!==e&&(n=((s=w[t])&&s(o,r))??(m.asi&&o&&l&&(n=m.asi(o,r,A)))??(!o&&!m.reserved&&k(m.id)));)o=n,m.reserved=0;return m.reserved=f,e&&(t==e?u++:I("Unclosed "+String.fromCharCode(e-(e>42?2:1)))),o},h=m.space=(r,e=u)=>{for(;(r=c.charCodeAt(u))<=32;)m.asi&&r===10&&(m.newline=!0),u++;return r},mt=m.id=r=>r>=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122||r==36||r==95||r>=192&&r!=215&&r!=247,X=(r,e=r.length)=>c.substr(u,e)===r&&!m.id(c.charCodeAt(u+e)),N=()=>(g(),A(0,41)),w=[],S=(r,e=32,t,o=r.charCodeAt(0),n=r.length,s=w[o],f=r.toUpperCase()!==r,l,y)=>w[o]=(E,T,F,C=u)=>(l=F,(F?r==F:(n<2||r.charCodeAt(1)===c.charCodeAt(u+1)&&(n<3||c.substr(u,n)==r))&&(!f||!m.id(c.charCodeAt(u+n)))&&(l=F=r))&&T<e&&(u+=n,(y=t(E))?V(y,C):(u=C,l=0,f&&y!==!1&&(m.reserved=1),!f&&!s&&I()),y)||s?.(E,T,l)),d=(r,e,t=!1)=>S(r,e,(o,n)=>o&&(n=A(e-(t?.5:0)))&&[r,o,n]),v=(r,e,t)=>S(r,e,o=>t?o&&[r,o]:!o&&(o=A(e-.5))&&[r,o]),P=(r,e)=>S(r,200,t=>!t&&[,e]),sr=(r,e,t)=>{S(r,e,(o,n)=>(n=A(e-(t?.5:0)),o?.[0]!==r&&(o=[r,o||null]),n?.[0]===r?o.push(...n.slice(1)):o.push(n||null),o))},H=(r,e)=>S(r[0],e,t=>!t&&[r,A(0,r.charCodeAt(1))||null]),pr=(r,e)=>S(r[0],e,t=>t&&[r,t,A(0,r.charCodeAt(1))||null]),ir={},p=(r,e,t=ir[r])=>ir[r]=(...o)=>e(...o)||t?.(...o),i=r=>Array.isArray(r)?r[0]===void 0?(e=>()=>e)(r[1]):ir[r[0]]?.(...r.slice(1))??I(`Unknown operator: ${r[0]}`,r?.loc):r===void 0?()=>{}:e=>e?.[r];var Y=46,j=48,Z=57,br=69,re=101,ee=43,te=45,oe=97,ne=102,ie=65,se=70,fr=r=>[,(r=+k(e=>e===Y&&c.charCodeAt(u+1)!==Y||e>=j&&e<=Z||((e===br||e===re)&&((e=c.charCodeAt(u+1))>=j&&e<=Z||e===ee||e===te)?2:0)))!=r?I():r],pe={2:r=>r===48||r===49,8:r=>r>=48&&r<=55,16:r=>r>=j&&r<=Z||r>=oe&&r<=ne||r>=ie&&r<=se};m.number=null;w[Y]=r=>!r&&c.charCodeAt(u+1)!==Y&&fr();for(let r=j;r<=Z;r++)w[r]=e=>e?void 0:fr();w[j]=r=>{if(r)return;let e=m.number;if(e){for(let[t,o]of Object.entries(e))if(t[0]==="0"&&c[u+1]?.toLowerCase()===t[1])return g(2),[,parseInt(k(pe[o]),o)]}return fr()};var fe=92,vr=34,Tr=39,le={n:`
5
- `,r:"\r",t:" ",b:"\b",f:"\f",v:"\v"},Ir=r=>(e,t,o="")=>{if(!(e||!m.string?.[String.fromCharCode(r)]))return g(),k(n=>n-r&&(n===fe?(o+=le[c[u+1]]||c[u+1],2):(o+=c[u],1))),c[u]===String.fromCharCode(r)?g():I("Bad string"),[,o]};w[vr]=Ir(vr);w[Tr]=Ir(Tr);m.string={'"':!0};var ue=20;"= += -= *= /= %= |= &= ^= >>= <<=".split(" ").map(r=>d(r,ue,!0));var Rr=(r,e,t,o)=>typeof r=="string"?n=>e(n,r,n):r[0]==="."?(t=i(r[1]),o=r[2],n=>e(t(n),o,n)):r[0]==="[]"&&r.length===3?(t=i(r[1]),o=i(r[2]),n=>e(t(n),o(n),n)):r[0]==="()"&&r.length===2?Rr(r[1],e):(()=>{throw Error("Invalid assignment target")})(),Nr={"=":(r,e,t)=>r[e]=t,"+=":(r,e,t)=>r[e]+=t,"-=":(r,e,t)=>r[e]-=t,"*=":(r,e,t)=>r[e]*=t,"/=":(r,e,t)=>r[e]/=t,"%=":(r,e,t)=>r[e]%=t,"|=":(r,e,t)=>r[e]|=t,"&=":(r,e,t)=>r[e]&=t,"^=":(r,e,t)=>r[e]^=t,">>=":(r,e,t)=>r[e]>>=t,"<<=":(r,e,t)=>r[e]<<=t};for(let r in Nr)p(r,(e,t)=>(t=i(t),Rr(e,(o,n,s)=>Nr[r](o,n,t(s)))));var me=30,ce=40,_r=140;d("!",_r);v("!",_r);d("||",me);d("&&",ce);p("!",r=>(r=i(r),e=>!r(e)));p("||",(r,e)=>(r=i(r),e=i(e),t=>r(t)||e(t)));p("&&",(r,e)=>(r=i(r),e=i(e),t=>r(t)&&e(t)));var de=50,Ae=60,he=70,Or=100,ye=140;d("|",de);d("&",he);d("^",Ae);d(">>",Or);d("<<",Or);v("~",ye);p("~",r=>(r=i(r),e=>~r(e)));p("|",(r,e)=>(r=i(r),e=i(e),t=>r(t)|e(t)));p("&",(r,e)=>(r=i(r),e=i(e),t=>r(t)&e(t)));p("^",(r,e)=>(r=i(r),e=i(e),t=>r(t)^e(t)));p(">>",(r,e)=>(r=i(r),e=i(e),t=>r(t)>>e(t)));p("<<",(r,e)=>(r=i(r),e=i(e),t=>r(t)<<e(t)));var q=90;d("<",q);d(">",q);d("<=",q);d(">=",q);p(">",(r,e)=>(r=i(r),e=i(e),t=>r(t)>e(t)));p("<",(r,e)=>(r=i(r),e=i(e),t=>r(t)<e(t)));p(">=",(r,e)=>(r=i(r),e=i(e),t=>r(t)>=e(t)));p("<=",(r,e)=>(r=i(r),e=i(e),t=>r(t)<=e(t)));var Pr=80;d("==",Pr);d("!=",Pr);p("==",(r,e)=>(r=i(r),e=i(e),t=>r(t)==e(t)));p("!=",(r,e)=>(r=i(r),e=i(e),t=>r(t)!=e(t)));var Mr=110,lr=120,Ur=140;d("+",Mr);d("-",Mr);d("*",lr);d("/",lr);d("%",lr);v("+",Ur);v("-",Ur);p("+",(r,e)=>e!==void 0?(r=i(r),e=i(e),t=>r(t)+e(t)):(r=i(r),t=>+r(t)));p("-",(r,e)=>e!==void 0?(r=i(r),e=i(e),t=>r(t)-e(t)):(r=i(r),t=>-r(t)));p("*",(r,e)=>(r=i(r),e=i(e),t=>r(t)*e(t)));p("/",(r,e)=>(r=i(r),e=i(e),t=>r(t)/e(t)));p("%",(r,e)=>(r=i(r),e=i(e),t=>r(t)%e(t)));var x=150;S("++",x,r=>r?["++",r,null]:["++",A(x-1)]);S("--",x,r=>r?["--",r,null]:["--",A(x-1)]);var ur=(r,e,t,o)=>typeof r=="string"?n=>e(n,r):r[0]==="."?(t=i(r[1]),o=r[2],n=>e(t(n),o)):r[0]==="[]"&&r.length===3?(t=i(r[1]),o=i(r[2]),n=>e(t(n),o(n))):r[0]==="()"&&r.length===2?ur(r[1],e):(()=>{throw Error("Invalid increment target")})();p("++",(r,e)=>ur(r,e===null?(t,o)=>t[o]++:(t,o)=>++t[o]));p("--",(r,e)=>ur(r,e===null?(t,o)=>t[o]--:(t,o)=>--t[o]));var ge=5,Ee=10,ae=170;H("()",ae);sr(",",Ee);sr(";",ge,!0);var Lr=(...r)=>(r=r.map(i),e=>{let t;for(let o of r)t=o(e);return t});p(",",Lr);p(";",Lr);var M=r=>r?.[0]==="_"&&r[1]==="_"||r==="constructor"||r==="prototype",mr=170;pr("[]",mr);d(".",mr);pr("()",mr);var b=r=>{throw Error(r)};p("[]",(r,e)=>e===void 0?(r=r?r[0]===","?r.slice(1):[r]:[],r=r.map(t=>t==null?(()=>{}):t[0]==="..."?(t=i(t[1]),o=>t(o)):(t=i(t),o=>[t(o)])),t=>r.flatMap(o=>o(t))):(e==null&&b("Missing index"),r=i(r),e=i(e),t=>{let o=e(t);return M(o)?void 0:r(t)[o]}));p(".",(r,e)=>(r=i(r),e=e[0]?e:e[1],M(e)?()=>{}:t=>r(t)[e]));p("()",(r,e)=>{if(e===void 0)return r==null?b("Empty ()"):i(r);let t=n=>n?.[0]===","&&n.slice(1).some(s=>s==null||t(s));t(e)&&b("Empty argument");let o=e?e[0]===","?(e=e.slice(1).map(i),n=>e.map(s=>s(n))):(e=i(e),n=>[e(n)]):()=>[];return cr(r,(n,s,f)=>n[s](...o(f)))});var O=r=>typeof r=="string"||Array.isArray(r)&&(r[0]==="."||r[0]==="?."||r[0]==="[]"&&r.length===3||r[0]==="?.[]"||r[0]==="()"&&r.length===2&&O(r[1])||r[0]==="{}"),cr=(r,e,t,o)=>r==null?b("Empty ()"):r[0]==="()"&&r.length==2?cr(r[1],e):typeof r=="string"?n=>e(n,r,n):r[0]==="."?(t=i(r[1]),o=r[2],n=>e(t(n),o,n)):r[0]==="?."?(t=i(r[1]),o=r[2],n=>{let s=t(n);return s==null?void 0:e(s,o,n)}):r[0]==="[]"&&r.length===3?(t=i(r[1]),o=i(r[2]),n=>e(t(n),o(n),n)):r[0]==="?.[]"?(t=i(r[1]),o=i(r[2]),n=>{let s=t(n);return s==null?void 0:e(s,o(n),n)}):(r=i(r),n=>e([r(n)],0,n)),U=cr;var Fr=new WeakMap,Se=(r,...e)=>typeof r=="string"?i(m(r)):Fr.get(r)||Fr.set(r,Ce(r,e)).get(r),Gr=57344,Ce=(r,e)=>{let t=r.reduce((s,f,l)=>s+(l?String.fromCharCode(Gr+l-1):"")+f,""),o=m(t),n=s=>{if(typeof s=="string"&&s.length===1){let f=s.charCodeAt(0)-Gr,l;if(f>=0&&f<e.length)return l=e[f],we(l)?l:[,l]}return Array.isArray(s)?s.map(n):s};return i(n(o))},we=r=>typeof r=="string"||Array.isArray(r)&&(typeof r[0]=="string"||r[0]===void 0),Xr=Se;var ke=32,ve=m.space;m.comment??={"//":`
6
- `,"/*":"*/"};var dr;m.space=()=>{dr||(dr=Object.entries(m.comment).map(([n,s])=>[n,s,n.charCodeAt(0)]));for(var r;r=ve();){for(var e=0,t;t=dr[e++];)if(r===t[2]&&c.substr(u,t[0].length)===t[0]){var o=u+t[0].length;if(t[1]===`
7
- `)for(;c.charCodeAt(o)>=ke;)o++;else{for(;c[o]&&c.substr(o,t[1].length)!==t[1];)o++;c[o]&&(o+=t[1].length)}G(o),r=0;break}if(r)return r}return r};var Kr=80;d("===",Kr);d("!==",Kr);p("===",(r,e)=>(r=i(r),e=i(e),t=>r(t)===e(t)));p("!==",(r,e)=>(r=i(r),e=i(e),t=>r(t)!==e(t)));var Te=30;d("??",Te);p("??",(r,e)=>(r=i(r),e=i(e),t=>r(t)??e(t)));var Ie=130,Ne=20;d("**",Ie,!0);d("**=",Ne,!0);p("**",(r,e)=>(r=i(r),e=i(e),t=>r(t)**e(t)));var Re=r=>{throw Error(r)};p("**=",(r,e)=>(O(r)||Re("Invalid assignment target"),e=i(e),U(r,(t,o,n)=>t[o]**=e(n))));var Dr=90;d("in",Dr);d("of",Dr);p("in",(r,e)=>(r=i(r),e=i(e),t=>r(t)in e(t)));var _e=20,Oe=100,Pe=r=>{throw Error(r)};d(">>>",Oe);d(">>>=",_e,!0);p(">>>",(r,e)=>(r=i(r),e=i(e),t=>r(t)>>>e(t)));p(">>>=",(r,e)=>(O(r)||Pe("Invalid assignment target"),e=i(e),U(r,(t,o,n)=>t[o]>>>=e(n))));var L=(r,e,t)=>{if(typeof r=="string"){t[r]=e;return}let[o,...n]=r;if(o==="{}")for(let s of n){let f,l,y;s[0]==="="?[,[,f,l],y]=s:[,f,l]=s;let E=e[f];E===void 0&&y&&(E=i(y)(t)),L(l,E,t)}else if(o==="[]"){let s=0;for(let f of n){if(f===null){s++;continue}if(Array.isArray(f)&&f[0]==="..."){t[f[1]]=e.slice(s);break}let l=f,y;Array.isArray(f)&&f[0]==="="&&([,l,y]=f);let E=e[s++];E===void 0&&y&&(E=i(y)(t)),L(l,E,t)}}};var Ar=20,rr=r=>{throw Error(r)};d("||=",Ar,!0);d("&&=",Ar,!0);d("??=",Ar,!0);p("=",(r,e)=>{if(Array.isArray(r)&&(r[0]==="let"||r[0]==="const"||r[0]==="var")){let t=r[1];return e=i(e),typeof t=="string"?o=>{o[t]=e(o)}:o=>L(t,e(o),o)}return O(r)||rr("Invalid assignment target"),e=i(e),U(r,(t,o,n)=>t[o]=e(n))});p("||=",(r,e)=>(O(r)||rr("Invalid assignment target"),e=i(e),U(r,(t,o,n)=>t[o]||=e(n))));p("&&=",(r,e)=>(O(r)||rr("Invalid assignment target"),e=i(e),U(r,(t,o,n)=>t[o]&&=e(n))));p("??=",(r,e)=>(O(r)||rr("Invalid assignment target"),e=i(e),U(r,(t,o,n)=>t[o]??=e(n))));P("true",!0);P("false",!1);P("null",null);P("undefined",void 0);P("NaN",NaN);P("Infinity",1/0);var hr=20;S("?",hr,(r,e,t)=>r&&(e=A(hr-1))&&k(o=>o===58)&&(t=A(hr-1),["?",r,e,t]));p("?",(r,e,t)=>(r=i(r),e=i(e),t=i(t),o=>r(o)?e(o):t(o)));var Me=20;d("=>",Me,!0);p("=>",(r,e)=>{r=r[0]==="()"?r[1]:r,r=r?r[0]===","?r.slice(1):[r]:[];let t=-1,o=null;return r.length&&Array.isArray(r[r.length-1])&&r[r.length-1][0]==="..."&&(t=r.length-1,o=r[t][1],r=r.slice(0,-1)),e=i(e[0]==="{}"?e[1]:e),(n=null)=>(n=Object.create(n),(...s)=>(r.forEach((f,l)=>n[f]=s[l]),o&&(n[o]=s.slice(t)),e(n)))});var Ue=140;v("...",Ue);p("...",r=>(r=i(r),e=>Object.entries(r(e))));var Br=170;S("?.",Br,(r,e)=>{if(!r)return;let t=h();return t===40?(g(),["?.()",r,A(0,41)||null]):t===91?(g(),["?.[]",r,A(0,93)]):(e=A(Br),e?["?.",r,e]:void 0)});p("?.",(r,e)=>(r=i(r),M(e)?()=>{}:t=>r(t)?.[e]));p("?.[]",(r,e)=>(r=i(r),e=i(e),t=>{let o=e(t);return M(o)?void 0:r(t)?.[o]}));p("?.()",(r,e)=>{let t=e?e[0]===","?(e=e.slice(1).map(i),n=>e.map(s=>s(n))):(e=i(e),n=>[e(n)]):()=>[];if(r[0]==="?."){let n=i(r[1]),s=r[2];return M(s)?()=>{}:f=>n(f)?.[s]?.(...t(f))}if(r[0]==="?.[]"){let n=i(r[1]),s=i(r[2]);return f=>{let l=n(f),y=s(f);return M(y)?void 0:l?.[y]?.(...t(f))}}if(r[0]==="."){let n=i(r[1]),s=r[2];return M(s)?()=>{}:f=>n(f)?.[s]?.(...t(f))}if(r[0]==="[]"&&r.length===3){let n=i(r[1]),s=i(r[2]);return f=>{let l=n(f),y=s(f);return M(y)?void 0:l?.[y]?.(...t(f))}}let o=i(r);return n=>o(n)?.(...t(n))});var er=140;v("typeof",er);v("void",er);v("delete",er);v("new",er);p("typeof",r=>(r=i(r),e=>typeof r(e)));p("void",r=>(r=i(r),e=>(r(e),void 0)));p("delete",r=>{if(r[0]==="."){let e=i(r[1]),t=r[2];return o=>delete e(o)[t]}if(r[0]==="[]"){let e=i(r[1]),t=i(r[2]);return o=>delete e(o)[t(o)]}return()=>!0});p("new",r=>{let e=i(r?.[0]==="()"?r[1]:r),t=r?.[0]==="()"?r[2]:null,o=t?t[0]===","?(n=>s=>n.map(f=>f(s)))(t.slice(1).map(i)):(n=>s=>[n(s)])(i(t)):()=>[];return n=>new(e(n))(...o(n))});var tr=Symbol("accessor"),Qr=20,Le=40,Fe=41,Ge=123,Xe=125,$r=r=>e=>{if(e)return;h();let t=k(m.id);if(!t||(h(),c.charCodeAt(u)!==Le))return!1;g();let o=A(0,Fe);return h(),c.charCodeAt(u)!==Ge?!1:(g(),[r,t,o,A(0,Xe)])};S("get",Qr-1,$r("get"));S("set",Qr-1,$r("set"));p("get",(r,e)=>(e=e?i(e):()=>{},t=>[[tr,r,{get:function(){let o=Object.create(t||{});return o.this=this,e(o)}}]]));p("set",(r,e,t)=>(t=t?i(t):()=>{},o=>[[tr,r,{set:function(n){let s=Object.create(o||{});s.this=this,s[e]=n,t(s)}}]]));var Ke=20,Hr=200;H("[]",Hr);H("{}",Hr);d(":",Ke-1,!0);p("{}",(r,e)=>{if(e!==void 0)return;r=r?r[0]!==","?[r]:r.slice(1):[];let t=r.map(o=>i(typeof o=="string"?[":",o,o]:o));return o=>{let n={},s={};for(let f of t.flatMap(l=>l(o)))if(f[0]===tr){let[,l,y]=f;s[l]={...s[l],...y,configurable:!0,enumerable:!0}}else n[f[0]]=f[1];for(let f in s)Object.defineProperty(n,f,s[f]);return n}});p(":",(r,e)=>(e=i(e),Array.isArray(r)?(r=i(r),t=>[[r(t),e(t)]]):t=>[[r,e(t)]]));var De=170,or=96,Be=36,Qe=123,$e=92,He={n:`
8
- `,r:"\r",t:" ",b:"\b",f:"\f",v:"\v"},jr=()=>{let r=[];for(let e="",t;(t=c.charCodeAt(u))!==or;)t?t===$e?(g(),e+=He[c[u]]||c[u],g()):t===Be&&c.charCodeAt(u+1)===Qe?(e&&r.push([,e]),e="",g(2),r.push(A(0,125))):(e+=c[u],g(),t=c.charCodeAt(u),t===or&&e&&r.push([,e])):I("Unterminated template");return g(),r},je=w[or];w[or]=(r,e)=>r&&e<De?m.asi&&m.newline?void 0:(g(),["``",r,...jr()]):r?je?.(r,e):(g(),(t=>t.length<2&&t[0]?.[0]===void 0?t[0]||[,""]:["`",...t])(jr()));p("`",(...r)=>(r=r.map(i),e=>r.map(t=>t(e)).join("")));p("``",(r,...e)=>{r=i(r);let t=[],o=[];for(let s of e)Array.isArray(s)&&s[0]===void 0?t.push(s[1]):o.push(i(s));let n=Object.assign([...t],{raw:t});return s=>r(s)(n,...o.map(f=>f(s)))});m.string["'"]=!0;m.number={"0x":16,"0b":2,"0o":8};var yr=5,Wr=123,zr=125,a=(r,e,t,o=r.charCodeAt(0),n=r.length,s=w[o],f)=>w[o]=(l,y,E,T=u)=>!l&&(E?r==E:(n<2||c.substr(u,n)==r)&&(E=r))&&y<e&&!m.id(c.charCodeAt(u+n))&&(G(u+n),(f=t())?V(f,T):(G(T),!s&&I()),f)||s?.(l,y,E),gr=(r,e,t,o=r.charCodeAt(0),n=r.length,s=w[o],f)=>w[o]=(l,y,E,T=u)=>l&&(E?r==E:(n<2||c.substr(u,n)==r)&&(E=r))&&y<e&&!m.id(c.charCodeAt(u+n))&&(G(u+n),V(f=t(l),T),f)||s?.(l,y,E),_=()=>(h()===Wr||I("Expected {"),g(),A(yr-.5,zr)||null),K=()=>h()!==Wr?A(yr+.5):(g(),["block",A(yr-.5,zr)||null]);p("block",r=>r===void 0?()=>{}:(r=i(r),e=>r(e)));var Er=5,We=10,ze=20,Jr=r=>{let e=A(We-1);return e?.[0]==="in"||e?.[0]==="of"?[e[0],[r,e[1]],e[2]]:e?.[0]===","?[r,...e.slice(1)]:[r,e]};S("let",Er+1,r=>!r&&Jr("let"));S("const",Er+1,r=>!r&&Jr("const"));a("var",Er,()=>(h(),["var",A(ze)]));var Vr=(...r)=>(r=r.map(e=>{if(typeof e=="string")return t=>{t[e]=void 0};if(e[0]==="="){let[,t,o]=e,n=i(o);return typeof t=="string"?s=>{s[t]=n(s)}:s=>L(t,n(s),s)}return i(e)}),e=>{for(let t of r)t(e)});p("let",Vr);p("const",Vr);p("var",r=>typeof r=="string"?e=>{e[r]=void 0}:()=>{});var D=Symbol("break"),W=Symbol("continue"),B=Symbol("return");var Je=200;a("function",Je,()=>{h();let r=k(m.id);return r&&h(),["function",r,N()||null,_()]});p("function",(r,e,t)=>{t=t?i(t):()=>{};let o=e?e[0]===","?e.slice(1):[e]:[],n=null,s=-1,f=o[o.length-1];return Array.isArray(f)&&f[0]==="..."&&(s=o.length-1,n=f[1],o.length--),l=>{let y=(...E)=>{let T={};o.forEach((C,R)=>T[C]=E[R]),n&&(T[n]=E.slice(s));let F=new Proxy(T,{get:(C,R)=>R in C?C[R]:l[R],set:(C,R,xr)=>((R in C?C:l)[R]=xr,!0),has:(C,R)=>R in C||R in l});try{return t(F)}catch(C){if(C?.type===B)return C.value;throw C}};return r&&(l[r]=y),y}});var nr=140,ar=20;v("await",nr);a("yield",nr,()=>(h(),c[u]==="*"?(g(),h(),["yield*",A(ar)]):["yield",A(ar)]));a("async",nr,()=>{if(h(),X("function"))return["async",A(nr)];let r=A(ar-.5);return r&&["async",r]});p("async",r=>{let e=i(r);return t=>{let o=e(t);return async function(...n){return o(...n)}}});p("await",r=>(r=i(r),async e=>await r(e)));p("yield",r=>(r=r?i(r):null,e=>{throw{__yield__:r?r(e):void 0}}));p("yield*",r=>(r=i(r),e=>{throw{__yield_all__:r(e)}}));var Sr=200,Ve=140,Ye=90,Ze=Symbol("static");P("super",Symbol.for("super"));v("static",Ve);d("instanceof",Ye);S("#",Sr,r=>{if(r)return;let e=k(m.id);return e?"#"+e:void 0});a("class",Sr,()=>{h();let r=k(m.id)||null;if(r==="extends")r=null;else if(h(),!X("extends"))return["class",r,null,_()];return h(),["class",r,A(Sr),_()]});var qe=r=>{throw Error(r)};p("instanceof",(r,e)=>(r=i(r),e=i(e),t=>r(t)instanceof e(t)));p("class",(r,e,t)=>(e=e?i(e):null,t=t?i(t):null,o=>{let n=e?e(o):Object,s=function(...f){if(!(this instanceof s))return qe("Class constructor must be called with new");let l=e?Reflect.construct(n,f,s):this;return s.prototype.__constructor__&&s.prototype.__constructor__.apply(l,f),l};if(Object.setPrototypeOf(s.prototype,n.prototype),Object.setPrototypeOf(s,n),t){let f=Object.create(o);f.super=n;let l=t(f),y=Array.isArray(l)&&typeof l[0]?.[0]=="string"?l:[];for(let[E,T]of y)E==="constructor"?s.prototype.__constructor__=T:s.prototype[E]=T}return r&&(o[r]=s),s}));p("static",r=>(r=i(r),e=>[[Ze,r(e)]]));var xe=140,Cr=47,be=92,rt=r=>r===be?2:r&&r!==Cr,et=r=>r===103||r===105||r===109||r===115||r===117||r===121;S("/",xe,r=>{if(r)return;let e=c.charCodeAt(u);if(e===Cr||e===42||e===43||e===63||e===61)return;let t=k(rt);c.charCodeAt(u)===Cr||I("Unterminated regex"),g();try{return[,new RegExp(t,k(et))]}catch(o){I("Invalid regex: "+o.message)}});var tt=5,ot=59,nt=()=>{let r=u;return h()===ot&&g(),h(),X("else")?(g(4),!0):(G(r),!1)};a("if",tt+1,()=>{h();let r=["if",N(),K()];return nt()&&r.push(K()),r});p("if",(r,e,t)=>(r=i(r),e=i(e),t=t!==void 0?i(t):null,o=>r(o)?e(o):t?.(o)));var z=(r,e)=>{try{return{v:r(e)}}catch(t){if(t?.type===D)return{b:1};if(t?.type===W)return{c:1};if(t?.type===B)return{r:1,v:t.value};throw t}},Q=5,it=125,st=59;a("while",Q+1,()=>(h(),["while",N(),K()]));a("do",Q+1,()=>(r=>(h(),g(5),h(),["do",r,N()]))(K()));a("for",Q+1,()=>(h(),X("await")?(g(5),h(),["for await",N(),K()]):["for",N(),K()]));a("break",Q+1,()=>["break"]);a("continue",Q+1,()=>["continue"]);a("return",Q+1,()=>{m.asi&&(m.newline=!1),h();let r=c.charCodeAt(u);return!r||r===it||r===st||m.newline?["return"]:["return",A(Q)]});p("while",(r,e)=>(r=i(r),e=i(e),t=>{let o,n;for(;r(t)&&!(o=z(e,t)).b;){if(o.r)return o.v;o.c||(n=o.v)}return n}));p("do",(r,e)=>(r=i(r),e=i(e),t=>{let o,n;do{if((o=z(r,t)).b)break;if(o.r)return o.v;o.c||(n=o.v)}while(e(t));return n}));p("for",(r,e)=>{if(Array.isArray(r)&&r[0]===";"){let[,t,o,n]=r;return t=t?i(t):null,o=o?i(o):()=>!0,n=n?i(n):null,e=i(e),s=>{let f,l;for(t?.(s);o(s)&&!(f=z(e,s)).b;n?.(s)){if(f.r)return f.v;f.c||(l=f.v)}return l}}if(Array.isArray(r)&&(r[0]==="in"||r[0]==="of")){let[t,o,n]=r;if(Array.isArray(o)&&(o[0]==="let"||o[0]==="const"||o[0]==="var")&&(o=o[1]),t==="in")return ft(o,n,e);if(t==="of")return pt(o,n,e)}});var pt=(r,e,t)=>{e=i(e),t=i(t);let o=Array.isArray(r);return n=>{let s,f,l=o?null:n[r];for(let y of e(n)){if(o?L(r,y,n):n[r]=y,(s=z(t,n)).b)break;if(s.r)return s.v;s.c||(f=s.v)}return o||(n[r]=l),f}},ft=(r,e,t)=>{e=i(e),t=i(t);let o=Array.isArray(r);return n=>{let s,f,l=o?null:n[r];for(let y in e(n)){if(o?L(r,y,n):n[r]=y,(s=z(t,n)).b)break;if(s.r)return s.v;s.c||(f=s.v)}return o||(n[r]=l),f}};p("break",()=>()=>{throw{type:D}});p("continue",()=>()=>{throw{type:W}});p("return",r=>(r=r!==void 0?i(r):null,e=>{throw{type:B,value:r?.(e)}}));var J=5;a("try",J+1,()=>["try",_()]);gr("catch",J+1,r=>(h(),["catch",r,N(),_()]));gr("finally",J+1,r=>["finally",r,_()]);a("throw",J+1,()=>{if(m.asi&&(m.newline=!1),h(),m.newline)throw SyntaxError("Unexpected newline after throw");return["throw",A(J)]});p("try",r=>(r=r?i(r):null,e=>r?.(e)));p("catch",(r,e,t)=>{let o=r?.[1]?i(r[1]):null;return t=t?i(t):null,n=>{let s;try{s=o?.(n)}catch(f){if(f?.type===D||f?.type===W||f?.type===B)throw f;if(e!==null&&t){let l=e in n,y=n[e];n[e]=f;try{s=t(n)}finally{l?n[e]=y:delete n[e]}}else if(e===null)throw f}return s}});p("finally",(r,e)=>(r=r?i(r):null,e=e?i(e):null,t=>{let o;try{o=r?.(t)}finally{e?.(t)}return o}));p("throw",r=>(r=i(r),e=>{throw r(e)}));var wr=5,lt=20,Yr=58;a("switch",wr+1,()=>(h(),["switch",N(),_()]));a("case",wr+1,()=>(h(),(r=>(h()===Yr&&g(),["case",r]))(A(lt))));a("default",wr+1,()=>(h()===Yr&&g(),["default"]));p("switch",(r,e)=>{if(r=i(r),!e)return s=>r(s);let t=[],o=e[0]===";"?e.slice(1):[e],n=null;for(let s of o)Array.isArray(s)&&(s[0]==="case"||s[0]==="default")?(n&&t.push(n),n=[s[0]==="case"?i(s[1]):null,[]]):n&&n[1].push(i(s));return n&&t.push(n),s=>{let f=r(s),l=!1,y;for(let[E,T]of t)if(l||E===null||E(s)===f){l=!0;for(let F of T)try{y=F(s)}catch(C){if(C?.type===D)return C.value!==void 0?C.value:y;throw C}}return y}});var kr=5,$=10,Zr=42,ut=w[Zr];w[Zr]=(r,e)=>r?ut?.(r,e):(g(),"*");S("from",$+1,r=>r?r[0]!=="="&&r[0]!==","&&(h(),["from",r,A($+1)]):!1);S("as",$+2,r=>r?(h(),["as",r,A($+2)]):!1);a("import",kr,()=>(h(),["import",A($)]));a("export",kr,()=>(h(),["export",A(kr)]));a("default",$+1,()=>(h(),["default",A($)]));p("import",()=>()=>{});p("export",()=>()=>{});p("from",(r,e)=>()=>{});p("as",(r,e)=>()=>{});p("default",r=>i(r));var qr=5;m.asi=(r,e,t)=>{if(e>=qr)return;let o=t(qr-.5);if(o)return r?.[0]!==";"?[";",r,o]:(r.push(o),r)};export{pr as access,d as binary,i as compile,c as cur,Xr as default,I as err,A as expr,H as group,mt as id,u as idx,P as literal,V as loc,w as lookup,sr as nary,k as next,p as operator,ir as operators,N as parens,m as parse,G as seek,g as skip,h as space,S as token,v as unary,X as word};
4
+ `?"...":"")+i}${f}${l}`)},V=(r,e=u)=>(Array.isArray(r)&&(r.loc=e),r),k=(r,e=u,t)=>{for(;t=r(c.charCodeAt(u));)u+=t;return c.slice(e,u)},a=(r=1)=>c[u+=r],O=r=>u=r,h=(r=0,e)=>{let t,o,i,s,f=m.reserved,l;for(e&&m.asi&&(m.newline=!1),m.reserved=0;(t=m.space())&&(l=m.newline,1)&&t!==e&&(i=((s=C[t])&&s(o,r))??(m.asi&&o&&l&&(i=m.asi(o,r,h)))??(!o&&!m.reserved&&k(m.id)));)o=i,m.reserved=0;return m.reserved=f,e&&(t==e?u++:v("Unclosed "+String.fromCharCode(e-(e>42?2:1)))),o},A=m.space=(r,e=u)=>{for(;(r=c.charCodeAt(u))<=32;)m.asi&&r===10&&(m.newline=!0),u++;return r},at=m.id=r=>r>=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122||r==36||r==95||r>=192&&r!=215&&r!=247,N=(r,e=r.length)=>c.substr(u,e)===r&&!m.id(c.charCodeAt(u+e)),R=()=>(a(),h(0,41)),C=[],S=(r,e=32,t,o=r.charCodeAt(0),i=r.length,s=C[o],f=r.toUpperCase()!==r,l,y)=>C[o]=(g,w,$,I=u)=>(l=$,($?r==$:(i<2||r.charCodeAt(1)===c.charCodeAt(u+1)&&(i<3||c.substr(u,i)==r))&&(!f||!m.id(c.charCodeAt(u+i)))&&(l=$=r))&&w<e&&(u+=i,(y=t(g))?V(y,I):(u=I,l=0,f&&y!==!1&&(m.reserved=1),!f&&!s&&v()),y)||s?.(g,w,l)),d=(r,e,t=!1)=>S(r,e,(o,i)=>o&&(i=h(e-(t?.5:0)))&&[r,o,i]),T=(r,e,t)=>S(r,e,o=>t?o&&[r,o]:!o&&(o=h(e-.5))&&[r,o]),M=(r,e)=>S(r,200,t=>!t&&[,e]),sr=(r,e,t)=>{S(r,e,(o,i)=>(i=h(e-(t?.5:0)),o?.[0]!==r&&(o=[r,o||null]),i?.[0]===r?o.push(...i.slice(1)):o.push(i||null),o))},H=(r,e)=>S(r[0],e,t=>!t&&[r,h(0,r.charCodeAt(1))||null]),pr=(r,e)=>S(r[0],e,t=>t&&[r,t,h(0,r.charCodeAt(1))||null]),ir={},p=(r,e,t=ir[r])=>ir[r]=(...o)=>e(...o)||t?.(...o),n=r=>Array.isArray(r)?r[0]===void 0?(e=>()=>e)(r[1]):ir[r[0]]?.(...r.slice(1))??v(`Unknown operator: ${r[0]}`,r?.loc):r===void 0?()=>{}:e=>e?.[r];var Y=46,j=48,Z=57,te=69,oe=101,ne=43,ie=45,se=97,pe=102,fe=65,le=70,fr=r=>[,(r=+k(e=>e===Y&&c.charCodeAt(u+1)!==Y||e>=j&&e<=Z||((e===te||e===oe)&&((e=c.charCodeAt(u+1))>=j&&e<=Z||e===ne||e===ie)?2:0)))!=r?v():r],ue={2:r=>r===48||r===49,8:r=>r>=48&&r<=55,16:r=>r>=j&&r<=Z||r>=se&&r<=pe||r>=fe&&r<=le};m.number=null;C[Y]=r=>!r&&c.charCodeAt(u+1)!==Y&&fr();for(let r=j;r<=Z;r++)C[r]=e=>e?void 0:fr();C[j]=r=>{if(r)return;let e=m.number;if(e){for(let[t,o]of Object.entries(e))if(t[0]==="0"&&c[u+1]?.toLowerCase()===t[1])return a(2),[,parseInt(k(ue[o]),o)]}return fr()};var me=92,vr=34,kr=39,ce={n:`
5
+ `,r:"\r",t:" ",b:"\b",f:"\f",v:"\v"},Tr=r=>(e,t,o="")=>{if(!(e||!m.string?.[String.fromCharCode(r)]))return a(),k(i=>i-r&&(i===me?(o+=ce[c[u+1]]||c[u+1],2):(o+=c[u],1))),c[u]===String.fromCharCode(r)?a():v("Bad string"),[,o]};C[vr]=Tr(vr);C[kr]=Tr(kr);m.string={'"':!0};var de=20;"= += -= *= /= %= |= &= ^= >>= <<=".split(" ").map(r=>d(r,de,!0));var Nr=(r,e,t,o)=>typeof r=="string"?i=>e(i,r,i):r[0]==="."?(t=n(r[1]),o=r[2],i=>e(t(i),o,i)):r[0]==="[]"&&r.length===3?(t=n(r[1]),o=n(r[2]),i=>e(t(i),o(i),i)):r[0]==="()"&&r.length===2?Nr(r[1],e):(()=>{throw Error("Invalid assignment target")})(),Ir={"=":(r,e,t)=>r[e]=t,"+=":(r,e,t)=>r[e]+=t,"-=":(r,e,t)=>r[e]-=t,"*=":(r,e,t)=>r[e]*=t,"/=":(r,e,t)=>r[e]/=t,"%=":(r,e,t)=>r[e]%=t,"|=":(r,e,t)=>r[e]|=t,"&=":(r,e,t)=>r[e]&=t,"^=":(r,e,t)=>r[e]^=t,">>=":(r,e,t)=>r[e]>>=t,"<<=":(r,e,t)=>r[e]<<=t};for(let r in Ir)p(r,(e,t)=>(t=n(t),Nr(e,(o,i,s)=>Ir[r](o,i,t(s)))));var Ae=30,he=40,Rr=140;d("!",Rr);T("!",Rr);d("||",Ae);d("&&",he);p("!",r=>(r=n(r),e=>!r(e)));p("||",(r,e)=>(r=n(r),e=n(e),t=>r(t)||e(t)));p("&&",(r,e)=>(r=n(r),e=n(e),t=>r(t)&&e(t)));var ye=50,ae=60,ge=70,_r=100,Ee=140;d("|",ye);d("&",ge);d("^",ae);d(">>",_r);d("<<",_r);T("~",Ee);p("~",r=>(r=n(r),e=>~r(e)));p("|",(r,e)=>(r=n(r),e=n(e),t=>r(t)|e(t)));p("&",(r,e)=>(r=n(r),e=n(e),t=>r(t)&e(t)));p("^",(r,e)=>(r=n(r),e=n(e),t=>r(t)^e(t)));p(">>",(r,e)=>(r=n(r),e=n(e),t=>r(t)>>e(t)));p("<<",(r,e)=>(r=n(r),e=n(e),t=>r(t)<<e(t)));var q=90;d("<",q);d(">",q);d("<=",q);d(">=",q);p(">",(r,e)=>(r=n(r),e=n(e),t=>r(t)>e(t)));p("<",(r,e)=>(r=n(r),e=n(e),t=>r(t)<e(t)));p(">=",(r,e)=>(r=n(r),e=n(e),t=>r(t)>=e(t)));p("<=",(r,e)=>(r=n(r),e=n(e),t=>r(t)<=e(t)));var Or=80;d("==",Or);d("!=",Or);p("==",(r,e)=>(r=n(r),e=n(e),t=>r(t)==e(t)));p("!=",(r,e)=>(r=n(r),e=n(e),t=>r(t)!=e(t)));var Pr=110,lr=120,Mr=140;d("+",Pr);d("-",Pr);d("*",lr);d("/",lr);d("%",lr);T("+",Mr);T("-",Mr);p("+",(r,e)=>e!==void 0?(r=n(r),e=n(e),t=>r(t)+e(t)):(r=n(r),t=>+r(t)));p("-",(r,e)=>e!==void 0?(r=n(r),e=n(e),t=>r(t)-e(t)):(r=n(r),t=>-r(t)));p("*",(r,e)=>(r=n(r),e=n(e),t=>r(t)*e(t)));p("/",(r,e)=>(r=n(r),e=n(e),t=>r(t)/e(t)));p("%",(r,e)=>(r=n(r),e=n(e),t=>r(t)%e(t)));var x=150;S("++",x,r=>r?["++",r,null]:["++",h(x-1)]);S("--",x,r=>r?["--",r,null]:["--",h(x-1)]);var ur=(r,e,t,o)=>typeof r=="string"?i=>e(i,r):r[0]==="."?(t=n(r[1]),o=r[2],i=>e(t(i),o)):r[0]==="[]"&&r.length===3?(t=n(r[1]),o=n(r[2]),i=>e(t(i),o(i))):r[0]==="()"&&r.length===2?ur(r[1],e):(()=>{throw Error("Invalid increment target")})();p("++",(r,e)=>ur(r,e===null?(t,o)=>t[o]++:(t,o)=>++t[o]));p("--",(r,e)=>ur(r,e===null?(t,o)=>t[o]--:(t,o)=>--t[o]));var Se=5,Ce=10,we=170;H("()",we);sr(",",Ce);sr(";",Se,!0);var Ur=(...r)=>(r=r.map(n),e=>{let t;for(let o of r)t=o(e);return t});p(",",Ur);p(";",Ur);var U=r=>r?.[0]==="_"&&r[1]==="_"||r==="constructor"||r==="prototype",mr=170;pr("[]",mr);d(".",mr);pr("()",mr);var b=r=>{throw Error(r)};p("[]",(r,e)=>e===void 0?(r=r?r[0]===","?r.slice(1):[r]:[],r=r.map(t=>t==null?(()=>{}):t[0]==="..."?(t=n(t[1]),o=>t(o)):(t=n(t),o=>[t(o)])),t=>r.flatMap(o=>o(t))):(e==null&&b("Missing index"),r=n(r),e=n(e),t=>{let o=e(t);return U(o)?void 0:r(t)[o]}));p(".",(r,e)=>(r=n(r),e=e[0]?e:e[1],U(e)?()=>{}:t=>r(t)[e]));p("()",(r,e)=>{if(e===void 0)return r==null?b("Empty ()"):n(r);let t=i=>i?.[0]===","&&i.slice(1).some(s=>s==null||t(s));t(e)&&b("Empty argument");let o=e?e[0]===","?(e=e.slice(1).map(n),i=>e.map(s=>s(i))):(e=n(e),i=>[e(i)]):()=>[];return cr(r,(i,s,f)=>i[s](...o(f)))});var P=r=>typeof r=="string"||Array.isArray(r)&&(r[0]==="."||r[0]==="?."||r[0]==="[]"&&r.length===3||r[0]==="?.[]"||r[0]==="()"&&r.length===2&&P(r[1])||r[0]==="{}"),cr=(r,e,t,o)=>r==null?b("Empty ()"):r[0]==="()"&&r.length==2?cr(r[1],e):typeof r=="string"?i=>e(i,r,i):r[0]==="."?(t=n(r[1]),o=r[2],i=>e(t(i),o,i)):r[0]==="?."?(t=n(r[1]),o=r[2],i=>{let s=t(i);return s==null?void 0:e(s,o,i)}):r[0]==="[]"&&r.length===3?(t=n(r[1]),o=n(r[2]),i=>e(t(i),o(i),i)):r[0]==="?.[]"?(t=n(r[1]),o=n(r[2]),i=>{let s=t(i);return s==null?void 0:e(s,o(i),i)}):(r=n(r),i=>e([r(i)],0,i)),L=cr;var Lr=new WeakMap,ve=(r,...e)=>typeof r=="string"?n(m(r)):Lr.get(r)||Lr.set(r,ke(r,e)).get(r),Fr=57344,ke=(r,e)=>{let t=r.reduce((s,f,l)=>s+(l?String.fromCharCode(Fr+l-1):"")+f,""),o=m(t),i=s=>{if(typeof s=="string"&&s.length===1){let f=s.charCodeAt(0)-Fr,l;if(f>=0&&f<e.length)return l=e[f],Te(l)?l:[,l]}return Array.isArray(s)?s.map(i):s};return n(i(o))},Te=r=>typeof r=="string"||Array.isArray(r)&&(typeof r[0]=="string"||r[0]===void 0),Gr=ve;var Ie=32,Ne=m.space;m.comment??={"//":`
6
+ `,"/*":"*/"};var dr;m.space=()=>{dr||(dr=Object.entries(m.comment).map(([i,s])=>[i,s,i.charCodeAt(0)]));for(var r;r=Ne();){for(var e=0,t;t=dr[e++];)if(r===t[2]&&c.substr(u,t[0].length)===t[0]){var o=u+t[0].length;if(t[1]===`
7
+ `)for(;c.charCodeAt(o)>=Ie;)o++;else{for(;c[o]&&c.substr(o,t[1].length)!==t[1];)o++;c[o]&&(o+=t[1].length)}O(o),r=0;break}if(r)return r}return r};var Xr=80;d("===",Xr);d("!==",Xr);p("===",(r,e)=>(r=n(r),e=n(e),t=>r(t)===e(t)));p("!==",(r,e)=>(r=n(r),e=n(e),t=>r(t)!==e(t)));var Re=30;d("??",Re);p("??",(r,e)=>(r=n(r),e=n(e),t=>r(t)??e(t)));var _e=130,Oe=20;d("**",_e,!0);d("**=",Oe,!0);p("**",(r,e)=>(r=n(r),e=n(e),t=>r(t)**e(t)));var Pe=r=>{throw Error(r)};p("**=",(r,e)=>(P(r)||Pe("Invalid assignment target"),e=n(e),L(r,(t,o,i)=>t[o]**=e(i))));var Br=90;d("in",Br);d("of",Br);p("in",(r,e)=>(r=n(r),e=n(e),t=>r(t)in e(t)));var Me=20,Ue=100,Le=r=>{throw Error(r)};d(">>>",Ue);d(">>>=",Me,!0);p(">>>",(r,e)=>(r=n(r),e=n(e),t=>r(t)>>>e(t)));p(">>>=",(r,e)=>(P(r)||Le("Invalid assignment target"),e=n(e),L(r,(t,o,i)=>t[o]>>>=e(i))));var Fe=r=>r[0]?.[0]===","?r[0].slice(1):r,F=(r,e,t)=>{if(typeof r=="string"){t[r]=e;return}let[o,...i]=r,s=Fe(i);if(o==="{}")for(let f of s){let l,y,g;typeof f=="string"?l=y=f:f[0]==="="?(typeof f[1]=="string"?l=y=f[1]:[,l,y]=f[1],g=f[2]):[,l,y]=f;let w=e[l];w===void 0&&g&&(w=n(g)(t)),F(y,w,t)}else if(o==="[]"){let f=0;for(let l of s){if(l===null){f++;continue}if(Array.isArray(l)&&l[0]==="..."){t[l[1]]=e.slice(f);break}let y=l,g;Array.isArray(l)&&l[0]==="="&&([,y,g]=l);let w=e[f++];w===void 0&&g&&(w=n(g)(t)),F(y,w,t)}}};var Ar=20,rr=r=>{throw Error(r)};d("||=",Ar,!0);d("&&=",Ar,!0);d("??=",Ar,!0);p("=",(r,e)=>{if(Array.isArray(r)&&(r[0]==="let"||r[0]==="const"||r[0]==="var")){let t=r[1];return e=n(e),typeof t=="string"?o=>{o[t]=e(o)}:o=>F(t,e(o),o)}return P(r)||rr("Invalid assignment target"),e=n(e),L(r,(t,o,i)=>t[o]=e(i))});p("||=",(r,e)=>(P(r)||rr("Invalid assignment target"),e=n(e),L(r,(t,o,i)=>t[o]||=e(i))));p("&&=",(r,e)=>(P(r)||rr("Invalid assignment target"),e=n(e),L(r,(t,o,i)=>t[o]&&=e(i))));p("??=",(r,e)=>(P(r)||rr("Invalid assignment target"),e=n(e),L(r,(t,o,i)=>t[o]??=e(i))));M("true",!0);M("false",!1);M("null",null);M("undefined",void 0);M("NaN",NaN);M("Infinity",1/0);var hr=20;S("?",hr,(r,e,t)=>r&&(e=h(hr-1))&&k(o=>o===58)&&(t=h(hr-1),["?",r,e,t]));p("?",(r,e,t)=>(r=n(r),e=n(e),t=n(t),o=>r(o)?e(o):t(o)));var Ge=20;d("=>",Ge,!0);p("=>",(r,e)=>{r=r[0]==="()"?r[1]:r,r=r?r[0]===","?r.slice(1):[r]:[];let t=-1,o=null;return r.length&&Array.isArray(r[r.length-1])&&r[r.length-1][0]==="..."&&(t=r.length-1,o=r[t][1],r=r.slice(0,-1)),e=n(e[0]==="{}"?e[1]:e),(i=null)=>(i=Object.create(i),(...s)=>(r.forEach((f,l)=>i[f]=s[l]),o&&(i[o]=s.slice(t)),e(i)))});var Xe=140;T("...",Xe);p("...",r=>(r=n(r),e=>Object.entries(r(e))));var Kr=170;S("?.",Kr,(r,e)=>{if(!r)return;let t=A();return t===40?(a(),["?.()",r,h(0,41)||null]):t===91?(a(),["?.[]",r,h(0,93)]):(e=h(Kr),e?["?.",r,e]:void 0)});p("?.",(r,e)=>(r=n(r),U(e)?()=>{}:t=>r(t)?.[e]));p("?.[]",(r,e)=>(r=n(r),e=n(e),t=>{let o=e(t);return U(o)?void 0:r(t)?.[o]}));p("?.()",(r,e)=>{let t=e?e[0]===","?(e=e.slice(1).map(n),i=>e.map(s=>s(i))):(e=n(e),i=>[e(i)]):()=>[];if(r[0]==="?."){let i=n(r[1]),s=r[2];return U(s)?()=>{}:f=>i(f)?.[s]?.(...t(f))}if(r[0]==="?.[]"){let i=n(r[1]),s=n(r[2]);return f=>{let l=i(f),y=s(f);return U(y)?void 0:l?.[y]?.(...t(f))}}if(r[0]==="."){let i=n(r[1]),s=r[2];return U(s)?()=>{}:f=>i(f)?.[s]?.(...t(f))}if(r[0]==="[]"&&r.length===3){let i=n(r[1]),s=n(r[2]);return f=>{let l=i(f),y=s(f);return U(y)?void 0:l?.[y]?.(...t(f))}}let o=n(r);return i=>o(i)?.(...t(i))});var er=140;T("typeof",er);T("void",er);T("delete",er);T("new",er);p("typeof",r=>(r=n(r),e=>typeof r(e)));p("void",r=>(r=n(r),e=>(r(e),void 0)));p("delete",r=>{if(r[0]==="."){let e=n(r[1]),t=r[2];return o=>delete e(o)[t]}if(r[0]==="[]"){let e=n(r[1]),t=n(r[2]);return o=>delete e(o)[t(o)]}return()=>!0});p("new",r=>{let e=n(r?.[0]==="()"?r[1]:r),t=r?.[0]==="()"?r[2]:null,o=t?t[0]===","?(i=>s=>i.map(f=>f(s)))(t.slice(1).map(n)):(i=>s=>[i(s)])(n(t)):()=>[];return i=>new(e(i))(...o(i))});var tr=Symbol("accessor"),Dr=20,Be=40,Ke=41,De=123,Qe=125,Qr=r=>e=>{if(e)return;A();let t=k(m.id);if(!t||(A(),c.charCodeAt(u)!==Be))return!1;a();let o=h(0,Ke);return A(),c.charCodeAt(u)!==De?!1:(a(),[r,t,o,h(0,Qe)])};S("get",Dr-1,Qr("get"));S("set",Dr-1,Qr("set"));p("get",(r,e)=>(e=e?n(e):()=>{},t=>[[tr,r,{get:function(){let o=Object.create(t||{});return o.this=this,e(o)}}]]));p("set",(r,e,t)=>(t=t?n(t):()=>{},o=>[[tr,r,{set:function(i){let s=Object.create(o||{});s.this=this,s[e]=i,t(s)}}]]));var $e=20,$r=200;H("[]",$r);H("{}",$r);d(":",$e-1,!0);p("{}",(r,e)=>{if(e!==void 0)return;r=r?r[0]!==","?[r]:r.slice(1):[];let t=r.map(o=>n(typeof o=="string"?[":",o,o]:o));return o=>{let i={},s={};for(let f of t.flatMap(l=>l(o)))if(f[0]===tr){let[,l,y]=f;s[l]={...s[l],...y,configurable:!0,enumerable:!0}}else i[f[0]]=f[1];for(let f in s)Object.defineProperty(i,f,s[f]);return i}});p(":",(r,e)=>(e=n(e),Array.isArray(r)?(r=n(r),t=>[[r(t),e(t)]]):t=>[[r,e(t)]]));var He=170,or=96,je=36,We=123,ze=92,Je={n:`
8
+ `,r:"\r",t:" ",b:"\b",f:"\f",v:"\v"},Hr=()=>{let r=[];for(let e="",t;(t=c.charCodeAt(u))!==or;)t?t===ze?(a(),e+=Je[c[u]]||c[u],a()):t===je&&c.charCodeAt(u+1)===We?(e&&r.push([,e]),e="",a(2),r.push(h(0,125))):(e+=c[u],a(),t=c.charCodeAt(u),t===or&&e&&r.push([,e])):v("Unterminated template");return a(),r},Ve=C[or];C[or]=(r,e)=>r&&e<He?m.asi&&m.newline?void 0:(a(),["``",r,...Hr()]):r?Ve?.(r,e):(a(),(t=>t.length<2&&t[0]?.[0]===void 0?t[0]||[,""]:["`",...t])(Hr()));p("`",(...r)=>(r=r.map(n),e=>r.map(t=>t(e)).join("")));p("``",(r,...e)=>{r=n(r);let t=[],o=[];for(let s of e)Array.isArray(s)&&s[0]===void 0?t.push(s[1]):o.push(n(s));let i=Object.assign([...t],{raw:t});return s=>r(s)(i,...o.map(f=>f(s)))});m.string["'"]=!0;m.number={"0x":16,"0b":2,"0o":8};var yr=5,jr=123,Wr=125,E=(r,e,t,o=r.charCodeAt(0),i=r.length,s=C[o],f)=>C[o]=(l,y,g,w=u)=>!l&&(g?r==g:(i<2||c.substr(u,i)==r)&&(g=r))&&y<e&&!m.id(c.charCodeAt(u+i))&&(O(u+i),(f=t())?V(f,w):(O(w),!s&&v()),f)||s?.(l,y,g),ar=(r,e,t,o=r.charCodeAt(0),i=r.length,s=C[o],f)=>C[o]=(l,y,g,w=u)=>l&&(g?r==g:(i<2||c.substr(u,i)==r)&&(g=r))&&y<e&&!m.id(c.charCodeAt(u+i))&&(O(u+i),V(f=t(l),w),f)||s?.(l,y,g),G=()=>(A()===jr||v("Expected {"),a(),h(yr-.5,Wr)||null),X=()=>A()!==jr?h(yr+.5):(a(),h(yr-.5,Wr)||null);var gr=5,Ye=10,Ze=20,zr=r=>{let e=h(Ye-1);return e?.[0]==="in"||e?.[0]==="of"?[e[0],[r,e[1]],e[2]]:e?.[0]===","?[r,...e.slice(1)]:[r,e]};S("let",gr+1,r=>!r&&zr("let"));S("const",gr+1,r=>!r&&zr("const"));E("var",gr,()=>(A(),["var",h(Ze)]));var Jr=(...r)=>(r=r.map(e=>{if(typeof e=="string")return t=>{t[e]=void 0};if(e[0]==="="){let[,t,o]=e,i=n(o);return typeof t=="string"?s=>{s[t]=i(s)}:s=>F(t,i(s),s)}return n(e)}),e=>{for(let t of r)t(e)});p("let",Jr);p("const",Jr);p("var",r=>typeof r=="string"?e=>{e[r]=void 0}:()=>{});var B=Symbol("break"),W=Symbol("continue"),K=Symbol("return");var qe=200;E("function",qe,()=>{A();let r=k(m.id);return r&&A(),["function",r,R()||null,G()]});p("function",(r,e,t)=>{t=t?n(t):()=>{};let o=e?e[0]===","?e.slice(1):[e]:[],i=null,s=-1,f=o[o.length-1];return Array.isArray(f)&&f[0]==="..."&&(s=o.length-1,i=f[1],o.length--),l=>{let y=(...g)=>{let w={};o.forEach((I,_)=>w[I]=g[_]),i&&(w[i]=g.slice(s));let $=new Proxy(w,{get:(I,_)=>_ in I?I[_]:l[_],set:(I,_,ee)=>((_ in I?I:l)[_]=ee,!0),has:(I,_)=>_ in I||_ in l});try{return t($)}catch(I){if(I?.type===K)return I.value;throw I}};return r&&(l[r]=y),y}});var nr=140,Er=20;T("await",nr);E("yield",nr,()=>(A(),c[u]==="*"?(a(),A(),["yield*",h(Er)]):["yield",h(Er)]));E("async",nr,()=>{if(A(),N("function"))return["async",h(nr)];let r=h(Er-.5);return r&&["async",r]});p("async",r=>{let e=n(r);return t=>{let o=e(t);return async function(...i){return o(...i)}}});p("await",r=>(r=n(r),async e=>await r(e)));p("yield",r=>(r=r?n(r):null,e=>{throw{__yield__:r?r(e):void 0}}));p("yield*",r=>(r=n(r),e=>{throw{__yield_all__:r(e)}}));var Sr=200,xe=140,be=90,rt=Symbol("static");M("super",Symbol.for("super"));T("static",xe);d("instanceof",be);S("#",Sr,r=>{if(r)return;let e=k(m.id);return e?"#"+e:void 0});E("class",Sr,()=>{A();let r=k(m.id)||null;if(r==="extends")r=null;else if(A(),!N("extends"))return["class",r,null,G()];return A(),["class",r,h(Sr),G()]});var et=r=>{throw Error(r)};p("instanceof",(r,e)=>(r=n(r),e=n(e),t=>r(t)instanceof e(t)));p("class",(r,e,t)=>(e=e?n(e):null,t=t?n(t):null,o=>{let i=e?e(o):Object,s=function(...f){if(!(this instanceof s))return et("Class constructor must be called with new");let l=e?Reflect.construct(i,f,s):this;return s.prototype.__constructor__&&s.prototype.__constructor__.apply(l,f),l};if(Object.setPrototypeOf(s.prototype,i.prototype),Object.setPrototypeOf(s,i),t){let f=Object.create(o);f.super=i;let l=t(f),y=Array.isArray(l)&&typeof l[0]?.[0]=="string"?l:[];for(let[g,w]of y)g==="constructor"?s.prototype.__constructor__=w:s.prototype[g]=w}return r&&(o[r]=s),s}));p("static",r=>(r=n(r),e=>[[rt,r(e)]]));var tt=140,Cr=47,ot=92,nt=r=>r===ot?2:r&&r!==Cr,it=r=>r===103||r===105||r===109||r===115||r===117||r===121;S("/",tt,r=>{if(r)return;let e=c.charCodeAt(u);if(e===Cr||e===42||e===43||e===63||e===61)return;let t=k(nt);c.charCodeAt(u)===Cr||v("Unterminated regex"),a();try{return[,new RegExp(t,k(it))]}catch(o){v("Invalid regex: "+o.message)}});var st=5,pt=59,ft=()=>{let r=u;return A()===pt&&a(),A(),N("else")?(a(4),!0):(O(r),!1)};E("if",st+1,()=>{A();let r=["if",R(),X()];return ft()&&r.push(X()),r});p("if",(r,e,t)=>(r=n(r),e=n(e),t=t!==void 0?n(t):null,o=>r(o)?e(o):t?.(o)));var z=(r,e)=>{try{return{v:r(e)}}catch(t){if(t?.type===B)return{b:1};if(t?.type===W)return{c:1};if(t?.type===K)return{r:1,v:t.value};throw t}},D=5,lt=125,ut=59;E("while",D+1,()=>(A(),["while",R(),X()]));E("do",D+1,()=>(r=>(A(),a(5),A(),["do",r,R()]))(X()));E("for",D+1,()=>(A(),N("await")?(a(5),A(),["for await",R(),X()]):["for",R(),X()]));E("break",D+1,()=>["break"]);E("continue",D+1,()=>["continue"]);E("return",D+1,()=>{m.asi&&(m.newline=!1),A();let r=c.charCodeAt(u);return!r||r===lt||r===ut||m.newline?["return"]:["return",h(D)]});p("while",(r,e)=>(r=n(r),e=n(e),t=>{let o,i;for(;r(t)&&!(o=z(e,t)).b;){if(o.r)return o.v;o.c||(i=o.v)}return i}));p("do",(r,e)=>(r=n(r),e=n(e),t=>{let o,i;do{if((o=z(r,t)).b)break;if(o.r)return o.v;o.c||(i=o.v)}while(e(t));return i}));p("for",(r,e)=>{if(Array.isArray(r)&&r[0]===";"){let[,t,o,i]=r;return t=t?n(t):null,o=o?n(o):()=>!0,i=i?n(i):null,e=n(e),s=>{let f,l;for(t?.(s);o(s)&&!(f=z(e,s)).b;i?.(s)){if(f.r)return f.v;f.c||(l=f.v)}return l}}if(Array.isArray(r)&&(r[0]==="in"||r[0]==="of")){let[t,o,i]=r;if(Array.isArray(o)&&(o[0]==="let"||o[0]==="const"||o[0]==="var")&&(o=o[1]),t==="in")return ct(o,i,e);if(t==="of")return mt(o,i,e)}});var mt=(r,e,t)=>{e=n(e),t=n(t);let o=Array.isArray(r);return i=>{let s,f,l=o?null:i[r];for(let y of e(i)){if(o?F(r,y,i):i[r]=y,(s=z(t,i)).b)break;if(s.r)return s.v;s.c||(f=s.v)}return o||(i[r]=l),f}},ct=(r,e,t)=>{e=n(e),t=n(t);let o=Array.isArray(r);return i=>{let s,f,l=o?null:i[r];for(let y in e(i)){if(o?F(r,y,i):i[r]=y,(s=z(t,i)).b)break;if(s.r)return s.v;s.c||(f=s.v)}return o||(i[r]=l),f}};p("break",()=>()=>{throw{type:B}});p("continue",()=>()=>{throw{type:W}});p("return",r=>(r=r!==void 0?n(r):null,e=>{throw{type:K,value:r?.(e)}}));var J=5;E("try",J+1,()=>["try",G()]);ar("catch",J+1,r=>(A(),["catch",r,R(),G()]));ar("finally",J+1,r=>["finally",r,G()]);E("throw",J+1,()=>{if(m.asi&&(m.newline=!1),A(),m.newline)throw SyntaxError("Unexpected newline after throw");return["throw",h(J)]});p("try",r=>(r=r?n(r):null,e=>r?.(e)));p("catch",(r,e,t)=>{let o=r?.[1]?n(r[1]):null;return t=t?n(t):null,i=>{let s;try{s=o?.(i)}catch(f){if(f?.type===B||f?.type===W||f?.type===K)throw f;if(e!==null&&t){let l=e in i,y=i[e];i[e]=f;try{s=t(i)}finally{l?i[e]=y:delete i[e]}}else if(e===null)throw f}return s}});p("finally",(r,e)=>(r=r?n(r):null,e=e?n(e):null,t=>{let o;try{o=r?.(t)}finally{e?.(t)}return o}));p("throw",r=>(r=n(r),e=>{throw r(e)}));var Zr=5,dt=20,Vr=58,At=59,qr=125,xr=(r,e=r.charCodeAt(0),t=C[e])=>C[e]=(o,i,s)=>N(r)&&!o&&(m.reserved=1)||t?.(o,i,s);xr("case");xr("default");var Yr=r=>{let e=[];for(;(r=A())!==qr&&!N("case")&&!N("default");){if(r===At){a();continue}e.push(h(Zr-.5))||v()}return e.length>1?[";",...e]:e[0]||null},ht=()=>{A()===123||v("Expected {"),a();let r=[];for(;A()!==qr;)if(N("case")){O(u+4),A();let e=h(dt-.5);A()===Vr&&a(),r.push(["case",e,Yr()])}else N("default")?(O(u+7),A()===Vr&&a(),r.push(["default",Yr()])):v("Expected case or default");return a(),r};E("switch",Zr+1,()=>(A(),["switch",R(),...ht()]));p("switch",(r,...e)=>(r=n(r),e.length?(e=e.map(t=>[t[0]==="case"?n(t[1]):null,(t[0]==="case"?t[2]:t[1])?.[0]===";"?(t[0]==="case"?t[2]:t[1]).slice(1).map(n):(t[0]==="case"?t[2]:t[1])?[n(t[0]==="case"?t[2]:t[1])]:[]]),t=>{let o=r(t),i=!1,s;for(let[l,y]of e)if(i||l===null||l(t)===o)for(i=!0,f=0;f<y.length;f++)try{s=y[f](t)}catch(g){if(g?.type===B)return g.value??s;throw g}var f;return s}):t=>r(t)));var wr=5,Q=10,br=42,yt=C[br];C[br]=(r,e)=>r?yt?.(r,e):(a(),"*");S("from",Q+1,r=>r?r[0]!=="="&&r[0]!==","&&(A(),["from",r,h(Q+1)]):!1);S("as",Q+2,r=>r?(A(),["as",r,h(Q+2)]):!1);E("import",wr,()=>(A(),["import",h(Q)]));E("export",wr,()=>(A(),["export",h(wr)]));E("default",Q+1,()=>A()!==58&&(A(),["default",h(Q)]));p("import",()=>()=>{});p("export",()=>()=>{});p("from",(r,e)=>()=>{});p("as",(r,e)=>()=>{});p("default",r=>n(r));var re=5;m.asi=(r,e,t)=>{if(e>=re)return;let o=t(re-.5);if(o)return r?.[0]!==";"?[";",r,o]:(r.push(o),r)};export{pr as access,d as binary,n as compile,c as cur,Gr as default,v as err,h as expr,H as group,at as id,u as idx,M as literal,V as loc,C as lookup,sr as nary,k as next,p as operator,ir as operators,R as parens,m as parse,O as seek,a as skip,A as space,S as token,T as unary,N as word};
package/justin.min.js CHANGED
@@ -1,8 +1,8 @@
1
- var u,c,f=r=>(u=0,c=r,f.newline=!1,r=A(),c[u]?I():r||""),I=(r="Unexpected token",e=u,t=c.slice(0,e).split(`
2
- `),o=t.pop(),i=c.slice(Math.max(0,e-40),e),p="\u032D",m=(c[e]||"\u2205")+p,d=c.slice(e+1,e+20))=>{throw SyntaxError(`${r} at ${t.length+1}:${o.length+1}
3
- ${(c[e-41]!==`
4
- `?"...":"")+i}${m}${d}`)},Ir=(r,e=u)=>(Array.isArray(r)&&(r.loc=e),r),v=(r,e=u,t)=>{for(;t=r(c.charCodeAt(u));)u+=t;return c.slice(e,u)},h=(r=1)=>c[u+=r],rr=r=>u=r,A=(r=0,e)=>{let t,o,i,p,m=f.reserved,d;for(e&&f.asi&&(f.newline=!1),f.reserved=0;(t=f.space())&&(d=f.newline,1)&&t!==e&&(i=((p=S[t])&&p(o,r))??(f.asi&&o&&d&&(i=f.asi(o,r,A)))??(!o&&!f.reserved&&v(f.id)));)o=i,f.reserved=0;return f.reserved=m,e&&(t==e?u++:I("Unclosed "+String.fromCharCode(e-(e>42?2:1)))),o},P=f.space=(r,e=u)=>{for(;(r=c.charCodeAt(u))<=32;)f.asi&&r===10&&(f.newline=!0),u++;return r},ge=f.id=r=>r>=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122||r==36||r==95||r>=192&&r!=215&&r!=247,he=(r,e=r.length)=>c.substr(u,e)===r&&!f.id(c.charCodeAt(u+e)),ye=()=>(h(),A(0,41)),S=[],y=(r,e=32,t,o=r.charCodeAt(0),i=r.length,p=S[o],m=r.toUpperCase()!==r,d,g)=>S[o]=(E,x,T,b=u)=>(d=T,(T?r==T:(i<2||r.charCodeAt(1)===c.charCodeAt(u+1)&&(i<3||c.substr(u,i)==r))&&(!m||!f.id(c.charCodeAt(u+i)))&&(d=T=r))&&x<e&&(u+=i,(g=t(E))?Ir(g,b):(u=b,d=0,m&&g!==!1&&(f.reserved=1),!m&&!p&&I()),g)||p?.(E,x,d)),l=(r,e,t=!1)=>y(r,e,(o,i)=>o&&(i=A(e-(t?.5:0)))&&[r,o,i]),C=(r,e,t)=>y(r,e,o=>t?o&&[r,o]:!o&&(o=A(e-.5))&&[r,o]),k=(r,e)=>y(r,200,t=>!t&&[,e]),K=(r,e,t)=>{y(r,e,(o,i)=>(i=A(e-(t?.5:0)),o?.[0]!==r&&(o=[r,o||null]),i?.[0]===r?o.push(...i.slice(1)):o.push(i||null),o))},R=(r,e)=>y(r[0],e,t=>!t&&[r,A(0,r.charCodeAt(1))||null]),j=(r,e)=>y(r[0],e,t=>t&&[r,t,A(0,r.charCodeAt(1))||null]),H={},s=(r,e,t=H[r])=>H[r]=(...o)=>e(...o)||t?.(...o),n=r=>Array.isArray(r)?r[0]===void 0?(e=>()=>e)(r[1]):H[r[0]]?.(...r.slice(1))??I(`Unknown operator: ${r[0]}`,r?.loc):r===void 0?()=>{}:e=>e?.[r];var U=46,L=48,_=57,vr=69,wr=101,Nr=43,Or=45,kr=97,Pr=102,Rr=65,Lr=70,W=r=>[,(r=+v(e=>e===U&&c.charCodeAt(u+1)!==U||e>=L&&e<=_||((e===vr||e===wr)&&((e=c.charCodeAt(u+1))>=L&&e<=_||e===Nr||e===Or)?2:0)))!=r?I():r],Tr={2:r=>r===48||r===49,8:r=>r>=48&&r<=55,16:r=>r>=L&&r<=_||r>=kr&&r<=Pr||r>=Rr&&r<=Lr};f.number=null;S[U]=r=>!r&&c.charCodeAt(u+1)!==U&&W();for(let r=L;r<=_;r++)S[r]=e=>e?void 0:W();S[L]=r=>{if(r)return;let e=f.number;if(e){for(let[t,o]of Object.entries(e))if(t[0]==="0"&&c[u+1]?.toLowerCase()===t[1])return h(2),[,parseInt(v(Tr[o]),o)]}return W()};var Ur=92,er=34,tr=39,_r={n:`
5
- `,r:"\r",t:" ",b:"\b",f:"\f",v:"\v"},or=r=>(e,t,o="")=>{if(!(e||!f.string?.[String.fromCharCode(r)]))return h(),v(i=>i-r&&(i===Ur?(o+=_r[c[u+1]]||c[u+1],2):(o+=c[u],1))),c[u]===String.fromCharCode(r)?h():I("Bad string"),[,o]};S[er]=or(er);S[tr]=or(tr);f.string={'"':!0};var Mr=20;"= += -= *= /= %= |= &= ^= >>= <<=".split(" ").map(r=>l(r,Mr,!0));var ir=(r,e,t,o)=>typeof r=="string"?i=>e(i,r,i):r[0]==="."?(t=n(r[1]),o=r[2],i=>e(t(i),o,i)):r[0]==="[]"&&r.length===3?(t=n(r[1]),o=n(r[2]),i=>e(t(i),o(i),i)):r[0]==="()"&&r.length===2?ir(r[1],e):(()=>{throw Error("Invalid assignment target")})(),nr={"=":(r,e,t)=>r[e]=t,"+=":(r,e,t)=>r[e]+=t,"-=":(r,e,t)=>r[e]-=t,"*=":(r,e,t)=>r[e]*=t,"/=":(r,e,t)=>r[e]/=t,"%=":(r,e,t)=>r[e]%=t,"|=":(r,e,t)=>r[e]|=t,"&=":(r,e,t)=>r[e]&=t,"^=":(r,e,t)=>r[e]^=t,">>=":(r,e,t)=>r[e]>>=t,"<<=":(r,e,t)=>r[e]<<=t};for(let r in nr)s(r,(e,t)=>(t=n(t),ir(e,(o,i,p)=>nr[r](o,i,t(p)))));var Fr=30,Br=40,sr=140;l("!",sr);C("!",sr);l("||",Fr);l("&&",Br);s("!",r=>(r=n(r),e=>!r(e)));s("||",(r,e)=>(r=n(r),e=n(e),t=>r(t)||e(t)));s("&&",(r,e)=>(r=n(r),e=n(e),t=>r(t)&&e(t)));var Dr=50,Gr=60,Xr=70,pr=100,$r=140;l("|",Dr);l("&",Xr);l("^",Gr);l(">>",pr);l("<<",pr);C("~",$r);s("~",r=>(r=n(r),e=>~r(e)));s("|",(r,e)=>(r=n(r),e=n(e),t=>r(t)|e(t)));s("&",(r,e)=>(r=n(r),e=n(e),t=>r(t)&e(t)));s("^",(r,e)=>(r=n(r),e=n(e),t=>r(t)^e(t)));s(">>",(r,e)=>(r=n(r),e=n(e),t=>r(t)>>e(t)));s("<<",(r,e)=>(r=n(r),e=n(e),t=>r(t)<<e(t)));var M=90;l("<",M);l(">",M);l("<=",M);l(">=",M);s(">",(r,e)=>(r=n(r),e=n(e),t=>r(t)>e(t)));s("<",(r,e)=>(r=n(r),e=n(e),t=>r(t)<e(t)));s(">=",(r,e)=>(r=n(r),e=n(e),t=>r(t)>=e(t)));s("<=",(r,e)=>(r=n(r),e=n(e),t=>r(t)<=e(t)));var mr=80;l("==",mr);l("!=",mr);s("==",(r,e)=>(r=n(r),e=n(e),t=>r(t)==e(t)));s("!=",(r,e)=>(r=n(r),e=n(e),t=>r(t)!=e(t)));var lr=110,z=120,ur=140;l("+",lr);l("-",lr);l("*",z);l("/",z);l("%",z);C("+",ur);C("-",ur);s("+",(r,e)=>e!==void 0?(r=n(r),e=n(e),t=>r(t)+e(t)):(r=n(r),t=>+r(t)));s("-",(r,e)=>e!==void 0?(r=n(r),e=n(e),t=>r(t)-e(t)):(r=n(r),t=>-r(t)));s("*",(r,e)=>(r=n(r),e=n(e),t=>r(t)*e(t)));s("/",(r,e)=>(r=n(r),e=n(e),t=>r(t)/e(t)));s("%",(r,e)=>(r=n(r),e=n(e),t=>r(t)%e(t)));var F=150;y("++",F,r=>r?["++",r,null]:["++",A(F-1)]);y("--",F,r=>r?["--",r,null]:["--",A(F-1)]);var J=(r,e,t,o)=>typeof r=="string"?i=>e(i,r):r[0]==="."?(t=n(r[1]),o=r[2],i=>e(t(i),o)):r[0]==="[]"&&r.length===3?(t=n(r[1]),o=n(r[2]),i=>e(t(i),o(i))):r[0]==="()"&&r.length===2?J(r[1],e):(()=>{throw Error("Invalid increment target")})();s("++",(r,e)=>J(r,e===null?(t,o)=>t[o]++:(t,o)=>++t[o]));s("--",(r,e)=>J(r,e===null?(t,o)=>t[o]--:(t,o)=>--t[o]));var Qr=5,Hr=10,Kr=170;R("()",Kr);K(",",Hr);K(";",Qr,!0);var fr=(...r)=>(r=r.map(n),e=>{let t;for(let o of r)t=o(e);return t});s(",",fr);s(";",fr);var N=r=>r?.[0]==="_"&&r[1]==="_"||r==="constructor"||r==="prototype",V=170;j("[]",V);l(".",V);j("()",V);var B=r=>{throw Error(r)};s("[]",(r,e)=>e===void 0?(r=r?r[0]===","?r.slice(1):[r]:[],r=r.map(t=>t==null?(()=>{}):t[0]==="..."?(t=n(t[1]),o=>t(o)):(t=n(t),o=>[t(o)])),t=>r.flatMap(o=>o(t))):(e==null&&B("Missing index"),r=n(r),e=n(e),t=>{let o=e(t);return N(o)?void 0:r(t)[o]}));s(".",(r,e)=>(r=n(r),e=e[0]?e:e[1],N(e)?()=>{}:t=>r(t)[e]));s("()",(r,e)=>{if(e===void 0)return r==null?B("Empty ()"):n(r);let t=i=>i?.[0]===","&&i.slice(1).some(p=>p==null||t(p));t(e)&&B("Empty argument");let o=e?e[0]===","?(e=e.slice(1).map(n),i=>e.map(p=>p(i))):(e=n(e),i=>[e(i)]):()=>[];return Y(r,(i,p,m)=>i[p](...o(m)))});var w=r=>typeof r=="string"||Array.isArray(r)&&(r[0]==="."||r[0]==="?."||r[0]==="[]"&&r.length===3||r[0]==="?.[]"||r[0]==="()"&&r.length===2&&w(r[1])||r[0]==="{}"),Y=(r,e,t,o)=>r==null?B("Empty ()"):r[0]==="()"&&r.length==2?Y(r[1],e):typeof r=="string"?i=>e(i,r,i):r[0]==="."?(t=n(r[1]),o=r[2],i=>e(t(i),o,i)):r[0]==="?."?(t=n(r[1]),o=r[2],i=>{let p=t(i);return p==null?void 0:e(p,o,i)}):r[0]==="[]"&&r.length===3?(t=n(r[1]),o=n(r[2]),i=>e(t(i),o(i),i)):r[0]==="?.[]"?(t=n(r[1]),o=n(r[2]),i=>{let p=t(i);return p==null?void 0:e(p,o(i),i)}):(r=n(r),i=>e([r(i)],0,i)),O=Y;var cr=new WeakMap,jr=(r,...e)=>typeof r=="string"?n(f(r)):cr.get(r)||cr.set(r,Wr(r,e)).get(r),dr=57344,Wr=(r,e)=>{let t=r.reduce((p,m,d)=>p+(d?String.fromCharCode(dr+d-1):"")+m,""),o=f(t),i=p=>{if(typeof p=="string"&&p.length===1){let m=p.charCodeAt(0)-dr,d;if(m>=0&&m<e.length)return d=e[m],zr(d)?d:[,d]}return Array.isArray(p)?p.map(i):p};return n(i(o))},zr=r=>typeof r=="string"||Array.isArray(r)&&(typeof r[0]=="string"||r[0]===void 0),Jr=jr;var Vr=32,Yr=f.space;f.comment??={"//":`
6
- `,"/*":"*/"};var Z;f.space=()=>{Z||(Z=Object.entries(f.comment).map(([i,p])=>[i,p,i.charCodeAt(0)]));for(var r;r=Yr();){for(var e=0,t;t=Z[e++];)if(r===t[2]&&c.substr(u,t[0].length)===t[0]){var o=u+t[0].length;if(t[1]===`
7
- `)for(;c.charCodeAt(o)>=Vr;)o++;else{for(;c[o]&&c.substr(o,t[1].length)!==t[1];)o++;c[o]&&(o+=t[1].length)}rr(o),r=0;break}if(r)return r}return r};var Ar=80;l("===",Ar);l("!==",Ar);s("===",(r,e)=>(r=n(r),e=n(e),t=>r(t)===e(t)));s("!==",(r,e)=>(r=n(r),e=n(e),t=>r(t)!==e(t)));var Zr=30;l("??",Zr);s("??",(r,e)=>(r=n(r),e=n(e),t=>r(t)??e(t)));var qr=130,ar=20;l("**",qr,!0);l("**=",ar,!0);s("**",(r,e)=>(r=n(r),e=n(e),t=>r(t)**e(t)));var xr=r=>{throw Error(r)};s("**=",(r,e)=>(w(r)||xr("Invalid assignment target"),e=n(e),O(r,(t,o,i)=>t[o]**=e(i))));var gr=90;l("in",gr);l("of",gr);s("in",(r,e)=>(r=n(r),e=n(e),t=>r(t)in e(t)));var br=20,re=100,ee=r=>{throw Error(r)};l(">>>",re);l(">>>=",br,!0);s(">>>",(r,e)=>(r=n(r),e=n(e),t=>r(t)>>>e(t)));s(">>>=",(r,e)=>(w(r)||ee("Invalid assignment target"),e=n(e),O(r,(t,o,i)=>t[o]>>>=e(i))));var D=(r,e,t)=>{if(typeof r=="string"){t[r]=e;return}let[o,...i]=r;if(o==="{}")for(let p of i){let m,d,g;p[0]==="="?[,[,m,d],g]=p:[,m,d]=p;let E=e[m];E===void 0&&g&&(E=n(g)(t)),D(d,E,t)}else if(o==="[]"){let p=0;for(let m of i){if(m===null){p++;continue}if(Array.isArray(m)&&m[0]==="..."){t[m[1]]=e.slice(p);break}let d=m,g;Array.isArray(m)&&m[0]==="="&&([,d,g]=m);let E=e[p++];E===void 0&&g&&(E=n(g)(t)),D(d,E,t)}}};var q=20,G=r=>{throw Error(r)};l("||=",q,!0);l("&&=",q,!0);l("??=",q,!0);s("=",(r,e)=>{if(Array.isArray(r)&&(r[0]==="let"||r[0]==="const"||r[0]==="var")){let t=r[1];return e=n(e),typeof t=="string"?o=>{o[t]=e(o)}:o=>D(t,e(o),o)}return w(r)||G("Invalid assignment target"),e=n(e),O(r,(t,o,i)=>t[o]=e(i))});s("||=",(r,e)=>(w(r)||G("Invalid assignment target"),e=n(e),O(r,(t,o,i)=>t[o]||=e(i))));s("&&=",(r,e)=>(w(r)||G("Invalid assignment target"),e=n(e),O(r,(t,o,i)=>t[o]&&=e(i))));s("??=",(r,e)=>(w(r)||G("Invalid assignment target"),e=n(e),O(r,(t,o,i)=>t[o]??=e(i))));k("true",!0);k("false",!1);k("null",null);k("undefined",void 0);k("NaN",NaN);k("Infinity",1/0);var a=20;y("?",a,(r,e,t)=>r&&(e=A(a-1))&&v(o=>o===58)&&(t=A(a-1),["?",r,e,t]));s("?",(r,e,t)=>(r=n(r),e=n(e),t=n(t),o=>r(o)?e(o):t(o)));var te=20;l("=>",te,!0);s("=>",(r,e)=>{r=r[0]==="()"?r[1]:r,r=r?r[0]===","?r.slice(1):[r]:[];let t=-1,o=null;return r.length&&Array.isArray(r[r.length-1])&&r[r.length-1][0]==="..."&&(t=r.length-1,o=r[t][1],r=r.slice(0,-1)),e=n(e[0]==="{}"?e[1]:e),(i=null)=>(i=Object.create(i),(...p)=>(r.forEach((m,d)=>i[m]=p[d]),o&&(i[o]=p.slice(t)),e(i)))});var oe=140;C("...",oe);s("...",r=>(r=n(r),e=>Object.entries(r(e))));var hr=170;y("?.",hr,(r,e)=>{if(!r)return;let t=P();return t===40?(h(),["?.()",r,A(0,41)||null]):t===91?(h(),["?.[]",r,A(0,93)]):(e=A(hr),e?["?.",r,e]:void 0)});s("?.",(r,e)=>(r=n(r),N(e)?()=>{}:t=>r(t)?.[e]));s("?.[]",(r,e)=>(r=n(r),e=n(e),t=>{let o=e(t);return N(o)?void 0:r(t)?.[o]}));s("?.()",(r,e)=>{let t=e?e[0]===","?(e=e.slice(1).map(n),i=>e.map(p=>p(i))):(e=n(e),i=>[e(i)]):()=>[];if(r[0]==="?."){let i=n(r[1]),p=r[2];return N(p)?()=>{}:m=>i(m)?.[p]?.(...t(m))}if(r[0]==="?.[]"){let i=n(r[1]),p=n(r[2]);return m=>{let d=i(m),g=p(m);return N(g)?void 0:d?.[g]?.(...t(m))}}if(r[0]==="."){let i=n(r[1]),p=r[2];return N(p)?()=>{}:m=>i(m)?.[p]?.(...t(m))}if(r[0]==="[]"&&r.length===3){let i=n(r[1]),p=n(r[2]);return m=>{let d=i(m),g=p(m);return N(g)?void 0:d?.[g]?.(...t(m))}}let o=n(r);return i=>o(i)?.(...t(i))});var X=140;C("typeof",X);C("void",X);C("delete",X);C("new",X);s("typeof",r=>(r=n(r),e=>typeof r(e)));s("void",r=>(r=n(r),e=>(r(e),void 0)));s("delete",r=>{if(r[0]==="."){let e=n(r[1]),t=r[2];return o=>delete e(o)[t]}if(r[0]==="[]"){let e=n(r[1]),t=n(r[2]);return o=>delete e(o)[t(o)]}return()=>!0});s("new",r=>{let e=n(r?.[0]==="()"?r[1]:r),t=r?.[0]==="()"?r[2]:null,o=t?t[0]===","?(i=>p=>i.map(m=>m(p)))(t.slice(1).map(n)):(i=>p=>[i(p)])(n(t)):()=>[];return i=>new(e(i))(...o(i))});var $=Symbol("accessor"),yr=20,ne=40,ie=41,se=123,pe=125,Cr=r=>e=>{if(e)return;P();let t=v(f.id);if(!t||(P(),c.charCodeAt(u)!==ne))return!1;h();let o=A(0,ie);return P(),c.charCodeAt(u)!==se?!1:(h(),[r,t,o,A(0,pe)])};y("get",yr-1,Cr("get"));y("set",yr-1,Cr("set"));s("get",(r,e)=>(e=e?n(e):()=>{},t=>[[$,r,{get:function(){let o=Object.create(t||{});return o.this=this,e(o)}}]]));s("set",(r,e,t)=>(t=t?n(t):()=>{},o=>[[$,r,{set:function(i){let p=Object.create(o||{});p.this=this,p[e]=i,t(p)}}]]));var me=20,Sr=200;R("[]",Sr);R("{}",Sr);l(":",me-1,!0);s("{}",(r,e)=>{if(e!==void 0)return;r=r?r[0]!==","?[r]:r.slice(1):[];let t=r.map(o=>n(typeof o=="string"?[":",o,o]:o));return o=>{let i={},p={};for(let m of t.flatMap(d=>d(o)))if(m[0]===$){let[,d,g]=m;p[d]={...p[d],...g,configurable:!0,enumerable:!0}}else i[m[0]]=m[1];for(let m in p)Object.defineProperty(i,m,p[m]);return i}});s(":",(r,e)=>(e=n(e),Array.isArray(r)?(r=n(r),t=>[[r(t),e(t)]]):t=>[[r,e(t)]]));var le=170,Q=96,ue=36,fe=123,ce=92,de={n:`
8
- `,r:"\r",t:" ",b:"\b",f:"\f",v:"\v"},Er=()=>{let r=[];for(let e="",t;(t=c.charCodeAt(u))!==Q;)t?t===ce?(h(),e+=de[c[u]]||c[u],h()):t===ue&&c.charCodeAt(u+1)===fe?(e&&r.push([,e]),e="",h(2),r.push(A(0,125))):(e+=c[u],h(),t=c.charCodeAt(u),t===Q&&e&&r.push([,e])):I("Unterminated template");return h(),r},Ae=S[Q];S[Q]=(r,e)=>r&&e<le?f.asi&&f.newline?void 0:(h(),["``",r,...Er()]):r?Ae?.(r,e):(h(),(t=>t.length<2&&t[0]?.[0]===void 0?t[0]||[,""]:["`",...t])(Er()));s("`",(...r)=>(r=r.map(n),e=>r.map(t=>t(e)).join("")));s("``",(r,...e)=>{r=n(r);let t=[],o=[];for(let p of e)Array.isArray(p)&&p[0]===void 0?t.push(p[1]):o.push(n(p));let i=Object.assign([...t],{raw:t});return p=>r(p)(i,...o.map(m=>m(p)))});f.string["'"]=!0;f.number={"0x":16,"0b":2,"0o":8};export{j as access,l as binary,n as compile,c as cur,Jr as default,I as err,A as expr,R as group,ge as id,u as idx,k as literal,Ir as loc,S as lookup,K as nary,v as next,s as operator,H as operators,ye as parens,f as parse,rr as seek,h as skip,P as space,y as token,C as unary,he as word};
1
+ var u,d,c=r=>(u=0,d=r,c.newline=!1,r=A(),d[u]?v():r||""),v=(r="Unexpected token",e=u,t=d.slice(0,e).split(`
2
+ `),o=t.pop(),i=d.slice(Math.max(0,e-40),e),p="\u032D",l=(d[e]||"\u2205")+p,f=d.slice(e+1,e+20))=>{throw SyntaxError(`${r} at ${t.length+1}:${o.length+1}
3
+ ${(d[e-41]!==`
4
+ `?"...":"")+i}${l}${f}`)},Ir=(r,e=u)=>(Array.isArray(r)&&(r.loc=e),r),w=(r,e=u,t)=>{for(;t=r(d.charCodeAt(u));)u+=t;return d.slice(e,u)},h=(r=1)=>d[u+=r],rr=r=>u=r,A=(r=0,e)=>{let t,o,i,p,l=c.reserved,f;for(e&&c.asi&&(c.newline=!1),c.reserved=0;(t=c.space())&&(f=c.newline,1)&&t!==e&&(i=((p=S[t])&&p(o,r))??(c.asi&&o&&f&&(i=c.asi(o,r,A)))??(!o&&!c.reserved&&w(c.id)));)o=i,c.reserved=0;return c.reserved=l,e&&(t==e?u++:v("Unclosed "+String.fromCharCode(e-(e>42?2:1)))),o},R=c.space=(r,e=u)=>{for(;(r=d.charCodeAt(u))<=32;)c.asi&&r===10&&(c.newline=!0),u++;return r},he=c.id=r=>r>=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122||r==36||r==95||r>=192&&r!=215&&r!=247,ye=(r,e=r.length)=>d.substr(u,e)===r&&!c.id(d.charCodeAt(u+e)),Ce=()=>(h(),A(0,41)),S=[],y=(r,e=32,t,o=r.charCodeAt(0),i=r.length,p=S[o],l=r.toUpperCase()!==r,f,g)=>S[o]=(E,I,U,b=u)=>(f=U,(U?r==U:(i<2||r.charCodeAt(1)===d.charCodeAt(u+1)&&(i<3||d.substr(u,i)==r))&&(!l||!c.id(d.charCodeAt(u+i)))&&(f=U=r))&&I<e&&(u+=i,(g=t(E))?Ir(g,b):(u=b,f=0,l&&g!==!1&&(c.reserved=1),!l&&!p&&v()),g)||p?.(E,I,f)),m=(r,e,t=!1)=>y(r,e,(o,i)=>o&&(i=A(e-(t?.5:0)))&&[r,o,i]),C=(r,e,t)=>y(r,e,o=>t?o&&[r,o]:!o&&(o=A(e-.5))&&[r,o]),P=(r,e)=>y(r,200,t=>!t&&[,e]),j=(r,e,t)=>{y(r,e,(o,i)=>(i=A(e-(t?.5:0)),o?.[0]!==r&&(o=[r,o||null]),i?.[0]===r?o.push(...i.slice(1)):o.push(i||null),o))},L=(r,e)=>y(r[0],e,t=>!t&&[r,A(0,r.charCodeAt(1))||null]),W=(r,e)=>y(r[0],e,t=>t&&[r,t,A(0,r.charCodeAt(1))||null]),K={},s=(r,e,t=K[r])=>K[r]=(...o)=>e(...o)||t?.(...o),n=r=>Array.isArray(r)?r[0]===void 0?(e=>()=>e)(r[1]):K[r[0]]?.(...r.slice(1))??v(`Unknown operator: ${r[0]}`,r?.loc):r===void 0?()=>{}:e=>e?.[r];var _=46,T=48,M=57,vr=69,wr=101,Nr=43,Or=45,kr=97,Pr=102,Rr=65,Lr=70,z=r=>[,(r=+w(e=>e===_&&d.charCodeAt(u+1)!==_||e>=T&&e<=M||((e===vr||e===wr)&&((e=d.charCodeAt(u+1))>=T&&e<=M||e===Nr||e===Or)?2:0)))!=r?v():r],Tr={2:r=>r===48||r===49,8:r=>r>=48&&r<=55,16:r=>r>=T&&r<=M||r>=kr&&r<=Pr||r>=Rr&&r<=Lr};c.number=null;S[_]=r=>!r&&d.charCodeAt(u+1)!==_&&z();for(let r=T;r<=M;r++)S[r]=e=>e?void 0:z();S[T]=r=>{if(r)return;let e=c.number;if(e){for(let[t,o]of Object.entries(e))if(t[0]==="0"&&d[u+1]?.toLowerCase()===t[1])return h(2),[,parseInt(w(Tr[o]),o)]}return z()};var Ur=92,er=34,tr=39,_r={n:`
5
+ `,r:"\r",t:" ",b:"\b",f:"\f",v:"\v"},or=r=>(e,t,o="")=>{if(!(e||!c.string?.[String.fromCharCode(r)]))return h(),w(i=>i-r&&(i===Ur?(o+=_r[d[u+1]]||d[u+1],2):(o+=d[u],1))),d[u]===String.fromCharCode(r)?h():v("Bad string"),[,o]};S[er]=or(er);S[tr]=or(tr);c.string={'"':!0};var Mr=20;"= += -= *= /= %= |= &= ^= >>= <<=".split(" ").map(r=>m(r,Mr,!0));var ir=(r,e,t,o)=>typeof r=="string"?i=>e(i,r,i):r[0]==="."?(t=n(r[1]),o=r[2],i=>e(t(i),o,i)):r[0]==="[]"&&r.length===3?(t=n(r[1]),o=n(r[2]),i=>e(t(i),o(i),i)):r[0]==="()"&&r.length===2?ir(r[1],e):(()=>{throw Error("Invalid assignment target")})(),nr={"=":(r,e,t)=>r[e]=t,"+=":(r,e,t)=>r[e]+=t,"-=":(r,e,t)=>r[e]-=t,"*=":(r,e,t)=>r[e]*=t,"/=":(r,e,t)=>r[e]/=t,"%=":(r,e,t)=>r[e]%=t,"|=":(r,e,t)=>r[e]|=t,"&=":(r,e,t)=>r[e]&=t,"^=":(r,e,t)=>r[e]^=t,">>=":(r,e,t)=>r[e]>>=t,"<<=":(r,e,t)=>r[e]<<=t};for(let r in nr)s(r,(e,t)=>(t=n(t),ir(e,(o,i,p)=>nr[r](o,i,t(p)))));var Fr=30,Br=40,sr=140;m("!",sr);C("!",sr);m("||",Fr);m("&&",Br);s("!",r=>(r=n(r),e=>!r(e)));s("||",(r,e)=>(r=n(r),e=n(e),t=>r(t)||e(t)));s("&&",(r,e)=>(r=n(r),e=n(e),t=>r(t)&&e(t)));var Dr=50,Gr=60,Xr=70,pr=100,$r=140;m("|",Dr);m("&",Xr);m("^",Gr);m(">>",pr);m("<<",pr);C("~",$r);s("~",r=>(r=n(r),e=>~r(e)));s("|",(r,e)=>(r=n(r),e=n(e),t=>r(t)|e(t)));s("&",(r,e)=>(r=n(r),e=n(e),t=>r(t)&e(t)));s("^",(r,e)=>(r=n(r),e=n(e),t=>r(t)^e(t)));s(">>",(r,e)=>(r=n(r),e=n(e),t=>r(t)>>e(t)));s("<<",(r,e)=>(r=n(r),e=n(e),t=>r(t)<<e(t)));var F=90;m("<",F);m(">",F);m("<=",F);m(">=",F);s(">",(r,e)=>(r=n(r),e=n(e),t=>r(t)>e(t)));s("<",(r,e)=>(r=n(r),e=n(e),t=>r(t)<e(t)));s(">=",(r,e)=>(r=n(r),e=n(e),t=>r(t)>=e(t)));s("<=",(r,e)=>(r=n(r),e=n(e),t=>r(t)<=e(t)));var lr=80;m("==",lr);m("!=",lr);s("==",(r,e)=>(r=n(r),e=n(e),t=>r(t)==e(t)));s("!=",(r,e)=>(r=n(r),e=n(e),t=>r(t)!=e(t)));var mr=110,J=120,fr=140;m("+",mr);m("-",mr);m("*",J);m("/",J);m("%",J);C("+",fr);C("-",fr);s("+",(r,e)=>e!==void 0?(r=n(r),e=n(e),t=>r(t)+e(t)):(r=n(r),t=>+r(t)));s("-",(r,e)=>e!==void 0?(r=n(r),e=n(e),t=>r(t)-e(t)):(r=n(r),t=>-r(t)));s("*",(r,e)=>(r=n(r),e=n(e),t=>r(t)*e(t)));s("/",(r,e)=>(r=n(r),e=n(e),t=>r(t)/e(t)));s("%",(r,e)=>(r=n(r),e=n(e),t=>r(t)%e(t)));var B=150;y("++",B,r=>r?["++",r,null]:["++",A(B-1)]);y("--",B,r=>r?["--",r,null]:["--",A(B-1)]);var V=(r,e,t,o)=>typeof r=="string"?i=>e(i,r):r[0]==="."?(t=n(r[1]),o=r[2],i=>e(t(i),o)):r[0]==="[]"&&r.length===3?(t=n(r[1]),o=n(r[2]),i=>e(t(i),o(i))):r[0]==="()"&&r.length===2?V(r[1],e):(()=>{throw Error("Invalid increment target")})();s("++",(r,e)=>V(r,e===null?(t,o)=>t[o]++:(t,o)=>++t[o]));s("--",(r,e)=>V(r,e===null?(t,o)=>t[o]--:(t,o)=>--t[o]));var Qr=5,Hr=10,Kr=170;L("()",Kr);j(",",Hr);j(";",Qr,!0);var ur=(...r)=>(r=r.map(n),e=>{let t;for(let o of r)t=o(e);return t});s(",",ur);s(";",ur);var O=r=>r?.[0]==="_"&&r[1]==="_"||r==="constructor"||r==="prototype",Y=170;W("[]",Y);m(".",Y);W("()",Y);var D=r=>{throw Error(r)};s("[]",(r,e)=>e===void 0?(r=r?r[0]===","?r.slice(1):[r]:[],r=r.map(t=>t==null?(()=>{}):t[0]==="..."?(t=n(t[1]),o=>t(o)):(t=n(t),o=>[t(o)])),t=>r.flatMap(o=>o(t))):(e==null&&D("Missing index"),r=n(r),e=n(e),t=>{let o=e(t);return O(o)?void 0:r(t)[o]}));s(".",(r,e)=>(r=n(r),e=e[0]?e:e[1],O(e)?()=>{}:t=>r(t)[e]));s("()",(r,e)=>{if(e===void 0)return r==null?D("Empty ()"):n(r);let t=i=>i?.[0]===","&&i.slice(1).some(p=>p==null||t(p));t(e)&&D("Empty argument");let o=e?e[0]===","?(e=e.slice(1).map(n),i=>e.map(p=>p(i))):(e=n(e),i=>[e(i)]):()=>[];return Z(r,(i,p,l)=>i[p](...o(l)))});var N=r=>typeof r=="string"||Array.isArray(r)&&(r[0]==="."||r[0]==="?."||r[0]==="[]"&&r.length===3||r[0]==="?.[]"||r[0]==="()"&&r.length===2&&N(r[1])||r[0]==="{}"),Z=(r,e,t,o)=>r==null?D("Empty ()"):r[0]==="()"&&r.length==2?Z(r[1],e):typeof r=="string"?i=>e(i,r,i):r[0]==="."?(t=n(r[1]),o=r[2],i=>e(t(i),o,i)):r[0]==="?."?(t=n(r[1]),o=r[2],i=>{let p=t(i);return p==null?void 0:e(p,o,i)}):r[0]==="[]"&&r.length===3?(t=n(r[1]),o=n(r[2]),i=>e(t(i),o(i),i)):r[0]==="?.[]"?(t=n(r[1]),o=n(r[2]),i=>{let p=t(i);return p==null?void 0:e(p,o(i),i)}):(r=n(r),i=>e([r(i)],0,i)),k=Z;var cr=new WeakMap,jr=(r,...e)=>typeof r=="string"?n(c(r)):cr.get(r)||cr.set(r,Wr(r,e)).get(r),dr=57344,Wr=(r,e)=>{let t=r.reduce((p,l,f)=>p+(f?String.fromCharCode(dr+f-1):"")+l,""),o=c(t),i=p=>{if(typeof p=="string"&&p.length===1){let l=p.charCodeAt(0)-dr,f;if(l>=0&&l<e.length)return f=e[l],zr(f)?f:[,f]}return Array.isArray(p)?p.map(i):p};return n(i(o))},zr=r=>typeof r=="string"||Array.isArray(r)&&(typeof r[0]=="string"||r[0]===void 0),Jr=jr;var Vr=32,Yr=c.space;c.comment??={"//":`
6
+ `,"/*":"*/"};var q;c.space=()=>{q||(q=Object.entries(c.comment).map(([i,p])=>[i,p,i.charCodeAt(0)]));for(var r;r=Yr();){for(var e=0,t;t=q[e++];)if(r===t[2]&&d.substr(u,t[0].length)===t[0]){var o=u+t[0].length;if(t[1]===`
7
+ `)for(;d.charCodeAt(o)>=Vr;)o++;else{for(;d[o]&&d.substr(o,t[1].length)!==t[1];)o++;d[o]&&(o+=t[1].length)}rr(o),r=0;break}if(r)return r}return r};var Ar=80;m("===",Ar);m("!==",Ar);s("===",(r,e)=>(r=n(r),e=n(e),t=>r(t)===e(t)));s("!==",(r,e)=>(r=n(r),e=n(e),t=>r(t)!==e(t)));var Zr=30;m("??",Zr);s("??",(r,e)=>(r=n(r),e=n(e),t=>r(t)??e(t)));var qr=130,ar=20;m("**",qr,!0);m("**=",ar,!0);s("**",(r,e)=>(r=n(r),e=n(e),t=>r(t)**e(t)));var xr=r=>{throw Error(r)};s("**=",(r,e)=>(N(r)||xr("Invalid assignment target"),e=n(e),k(r,(t,o,i)=>t[o]**=e(i))));var gr=90;m("in",gr);m("of",gr);s("in",(r,e)=>(r=n(r),e=n(e),t=>r(t)in e(t)));var br=20,re=100,ee=r=>{throw Error(r)};m(">>>",re);m(">>>=",br,!0);s(">>>",(r,e)=>(r=n(r),e=n(e),t=>r(t)>>>e(t)));s(">>>=",(r,e)=>(N(r)||ee("Invalid assignment target"),e=n(e),k(r,(t,o,i)=>t[o]>>>=e(i))));var te=r=>r[0]?.[0]===","?r[0].slice(1):r,G=(r,e,t)=>{if(typeof r=="string"){t[r]=e;return}let[o,...i]=r,p=te(i);if(o==="{}")for(let l of p){let f,g,E;typeof l=="string"?f=g=l:l[0]==="="?(typeof l[1]=="string"?f=g=l[1]:[,f,g]=l[1],E=l[2]):[,f,g]=l;let I=e[f];I===void 0&&E&&(I=n(E)(t)),G(g,I,t)}else if(o==="[]"){let l=0;for(let f of p){if(f===null){l++;continue}if(Array.isArray(f)&&f[0]==="..."){t[f[1]]=e.slice(l);break}let g=f,E;Array.isArray(f)&&f[0]==="="&&([,g,E]=f);let I=e[l++];I===void 0&&E&&(I=n(E)(t)),G(g,I,t)}}};var a=20,X=r=>{throw Error(r)};m("||=",a,!0);m("&&=",a,!0);m("??=",a,!0);s("=",(r,e)=>{if(Array.isArray(r)&&(r[0]==="let"||r[0]==="const"||r[0]==="var")){let t=r[1];return e=n(e),typeof t=="string"?o=>{o[t]=e(o)}:o=>G(t,e(o),o)}return N(r)||X("Invalid assignment target"),e=n(e),k(r,(t,o,i)=>t[o]=e(i))});s("||=",(r,e)=>(N(r)||X("Invalid assignment target"),e=n(e),k(r,(t,o,i)=>t[o]||=e(i))));s("&&=",(r,e)=>(N(r)||X("Invalid assignment target"),e=n(e),k(r,(t,o,i)=>t[o]&&=e(i))));s("??=",(r,e)=>(N(r)||X("Invalid assignment target"),e=n(e),k(r,(t,o,i)=>t[o]??=e(i))));P("true",!0);P("false",!1);P("null",null);P("undefined",void 0);P("NaN",NaN);P("Infinity",1/0);var x=20;y("?",x,(r,e,t)=>r&&(e=A(x-1))&&w(o=>o===58)&&(t=A(x-1),["?",r,e,t]));s("?",(r,e,t)=>(r=n(r),e=n(e),t=n(t),o=>r(o)?e(o):t(o)));var oe=20;m("=>",oe,!0);s("=>",(r,e)=>{r=r[0]==="()"?r[1]:r,r=r?r[0]===","?r.slice(1):[r]:[];let t=-1,o=null;return r.length&&Array.isArray(r[r.length-1])&&r[r.length-1][0]==="..."&&(t=r.length-1,o=r[t][1],r=r.slice(0,-1)),e=n(e[0]==="{}"?e[1]:e),(i=null)=>(i=Object.create(i),(...p)=>(r.forEach((l,f)=>i[l]=p[f]),o&&(i[o]=p.slice(t)),e(i)))});var ne=140;C("...",ne);s("...",r=>(r=n(r),e=>Object.entries(r(e))));var hr=170;y("?.",hr,(r,e)=>{if(!r)return;let t=R();return t===40?(h(),["?.()",r,A(0,41)||null]):t===91?(h(),["?.[]",r,A(0,93)]):(e=A(hr),e?["?.",r,e]:void 0)});s("?.",(r,e)=>(r=n(r),O(e)?()=>{}:t=>r(t)?.[e]));s("?.[]",(r,e)=>(r=n(r),e=n(e),t=>{let o=e(t);return O(o)?void 0:r(t)?.[o]}));s("?.()",(r,e)=>{let t=e?e[0]===","?(e=e.slice(1).map(n),i=>e.map(p=>p(i))):(e=n(e),i=>[e(i)]):()=>[];if(r[0]==="?."){let i=n(r[1]),p=r[2];return O(p)?()=>{}:l=>i(l)?.[p]?.(...t(l))}if(r[0]==="?.[]"){let i=n(r[1]),p=n(r[2]);return l=>{let f=i(l),g=p(l);return O(g)?void 0:f?.[g]?.(...t(l))}}if(r[0]==="."){let i=n(r[1]),p=r[2];return O(p)?()=>{}:l=>i(l)?.[p]?.(...t(l))}if(r[0]==="[]"&&r.length===3){let i=n(r[1]),p=n(r[2]);return l=>{let f=i(l),g=p(l);return O(g)?void 0:f?.[g]?.(...t(l))}}let o=n(r);return i=>o(i)?.(...t(i))});var $=140;C("typeof",$);C("void",$);C("delete",$);C("new",$);s("typeof",r=>(r=n(r),e=>typeof r(e)));s("void",r=>(r=n(r),e=>(r(e),void 0)));s("delete",r=>{if(r[0]==="."){let e=n(r[1]),t=r[2];return o=>delete e(o)[t]}if(r[0]==="[]"){let e=n(r[1]),t=n(r[2]);return o=>delete e(o)[t(o)]}return()=>!0});s("new",r=>{let e=n(r?.[0]==="()"?r[1]:r),t=r?.[0]==="()"?r[2]:null,o=t?t[0]===","?(i=>p=>i.map(l=>l(p)))(t.slice(1).map(n)):(i=>p=>[i(p)])(n(t)):()=>[];return i=>new(e(i))(...o(i))});var Q=Symbol("accessor"),yr=20,ie=40,se=41,pe=123,le=125,Cr=r=>e=>{if(e)return;R();let t=w(c.id);if(!t||(R(),d.charCodeAt(u)!==ie))return!1;h();let o=A(0,se);return R(),d.charCodeAt(u)!==pe?!1:(h(),[r,t,o,A(0,le)])};y("get",yr-1,Cr("get"));y("set",yr-1,Cr("set"));s("get",(r,e)=>(e=e?n(e):()=>{},t=>[[Q,r,{get:function(){let o=Object.create(t||{});return o.this=this,e(o)}}]]));s("set",(r,e,t)=>(t=t?n(t):()=>{},o=>[[Q,r,{set:function(i){let p=Object.create(o||{});p.this=this,p[e]=i,t(p)}}]]));var me=20,Sr=200;L("[]",Sr);L("{}",Sr);m(":",me-1,!0);s("{}",(r,e)=>{if(e!==void 0)return;r=r?r[0]!==","?[r]:r.slice(1):[];let t=r.map(o=>n(typeof o=="string"?[":",o,o]:o));return o=>{let i={},p={};for(let l of t.flatMap(f=>f(o)))if(l[0]===Q){let[,f,g]=l;p[f]={...p[f],...g,configurable:!0,enumerable:!0}}else i[l[0]]=l[1];for(let l in p)Object.defineProperty(i,l,p[l]);return i}});s(":",(r,e)=>(e=n(e),Array.isArray(r)?(r=n(r),t=>[[r(t),e(t)]]):t=>[[r,e(t)]]));var fe=170,H=96,ue=36,ce=123,de=92,Ae={n:`
8
+ `,r:"\r",t:" ",b:"\b",f:"\f",v:"\v"},Er=()=>{let r=[];for(let e="",t;(t=d.charCodeAt(u))!==H;)t?t===de?(h(),e+=Ae[d[u]]||d[u],h()):t===ue&&d.charCodeAt(u+1)===ce?(e&&r.push([,e]),e="",h(2),r.push(A(0,125))):(e+=d[u],h(),t=d.charCodeAt(u),t===H&&e&&r.push([,e])):v("Unterminated template");return h(),r},ge=S[H];S[H]=(r,e)=>r&&e<fe?c.asi&&c.newline?void 0:(h(),["``",r,...Er()]):r?ge?.(r,e):(h(),(t=>t.length<2&&t[0]?.[0]===void 0?t[0]||[,""]:["`",...t])(Er()));s("`",(...r)=>(r=r.map(n),e=>r.map(t=>t(e)).join("")));s("``",(r,...e)=>{r=n(r);let t=[],o=[];for(let p of e)Array.isArray(p)&&p[0]===void 0?t.push(p[1]):o.push(n(p));let i=Object.assign([...t],{raw:t});return p=>r(p)(i,...o.map(l=>l(p)))});c.string["'"]=!0;c.number={"0x":16,"0b":2,"0o":8};export{W as access,m as binary,n as compile,d as cur,Jr as default,v as err,A as expr,L as group,he as id,u as idx,P as literal,Ir as loc,S as lookup,j as nary,w as next,s as operator,K as operators,Ce as parens,c as parse,rr as seek,h as skip,R as space,y as token,C as unary,ye as word};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "subscript",
3
- "version": "10.0.1",
3
+ "version": "10.0.3",
4
4
  "description": "Tiny expression parser & evaluator",
5
5
  "main": "subscript.js",
6
6
  "module": "subscript.js",
package/util/stringify.js CHANGED
@@ -67,8 +67,6 @@ export const codegen = node => {
67
67
 
68
68
  // --- Statement generators (need structure) ---
69
69
 
70
- generator('block', body => body === undefined ? '{}' : '{ ' + codegen(body) + ' }');
71
-
72
70
  // Variables: ['let', decl] or ['let', decl1, decl2, ...]
73
71
  const varGen = kw => (...args) => kw + ' ' + args.map(codegen).join(', ');
74
72
  generator('let', varGen('let'));
@@ -76,7 +74,7 @@ generator('const', varGen('const'));
76
74
  generator('var', varGen('var'));
77
75
 
78
76
  // Control flow
79
- const wrap = s => s?.[0] === 'block' ? codegen(s) : '{ ' + (s ? codegen(s) : '') + ' }';
77
+ const wrap = s => '{ ' + (s ? codegen(s) : '') + ' }';
80
78
  generator('if', (cond, then, els) => 'if (' + codegen(cond) + ') ' + wrap(then) + (els ? ' else ' + wrap(els) : ''));
81
79
  generator('while', (cond, body) => 'while (' + codegen(cond) + ') ' + wrap(body));
82
80
  generator('do', (body, cond) => 'do ' + wrap(body) + ' while (' + codegen(cond) + ')');
@@ -101,8 +99,7 @@ generator('finally', (expr, body) => codegen(expr) + ' finally { ' + codegen(bod
101
99
  // Functions
102
100
  generator('function', (name, params, body) => {
103
101
  const args = !params ? '' : params[0] === ',' ? params.slice(1).map(codegen).join(', ') : codegen(params);
104
- const b = body?.[0] === 'block' ? codegen(body) : '{ ' + (body ? codegen(body) : '') + ' }';
105
- return 'function' + (name ? ' ' + name : '') + '(' + args + ') ' + b;
102
+ return 'function' + (name ? ' ' + name : '') + '(' + args + ') ' + wrap(body);
106
103
  });
107
104
 
108
105
  generator('=>', (params, body) => {