subscript 10.0.2 → 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/destruct.js +13 -4
- package/feature/module.js +2 -2
- package/feature/switch.js +59 -36
- package/jessie.min.js +7 -7
- package/justin.min.js +8 -8
- package/package.json +1 -1
package/feature/destruct.js
CHANGED
|
@@ -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, ...
|
|
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
|
-
|
|
16
|
-
|
|
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
|
-
}
|
|
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, ['
|
|
3
|
-
import { expr, skip, space, parens, operator, compile } from '../parse.js';
|
|
4
|
-
import { keyword
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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,
|
|
34
|
-
for (const [test, stmts] of
|
|
35
|
-
if (matched || test === null || test(ctx) === v)
|
|
36
|
-
matched = true;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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=
|
|
2
|
-
`),o=t.pop(),
|
|
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
|
-
`?"...":"")+
|
|
5
|
-
`,r:"\r",t:" ",b:"\b",f:"\f",v:"\v"},
|
|
6
|
-
`,"/*":"*/"};var dr;m.space=()=>{dr||(dr=Object.entries(m.comment).map(([
|
|
7
|
-
`)for(;c.charCodeAt(o)>=
|
|
8
|
-
`,r:"\r",t:" ",b:"\b",f:"\f",v:"\v"},
|
|
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
|
|
2
|
-
`),o=t.pop(),i=
|
|
3
|
-
${(
|
|
4
|
-
`?"...":"")+i}${
|
|
5
|
-
`,r:"\r",t:" ",b:"\b",f:"\f",v:"\v"},or=r=>(e,t,o="")=>{if(!(e||!
|
|
6
|
-
`,"/*":"*/"};var
|
|
7
|
-
`)for(;
|
|
8
|
-
`,r:"\r",t:" ",b:"\b",f:"\f",v:"\v"},Er=()=>{let r=[];for(let e="",t;(t=
|
|
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};
|