cvm-server 0.9.1 → 0.9.2

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.
Files changed (2) hide show
  1. package/main.cjs +296 -282
  2. package/package.json +1 -1
package/main.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
  const mcp_js = require("@modelcontextprotocol/sdk/server/mcp.js");
3
3
  const stdio_js = require("@modelcontextprotocol/sdk/server/stdio.js");
4
4
  const zod = require("zod");
5
- const n$1 = require("typescript");
5
+ const i$1 = require("typescript");
6
6
  const G$1 = require("fs");
7
7
  const c$2 = require("path");
8
8
  const mongodb = require("mongodb");
@@ -26,35 +26,31 @@ function _interopNamespaceDefault(e2) {
26
26
  n2.default = e2;
27
27
  return Object.freeze(n2);
28
28
  }
29
- const n__namespace = /* @__PURE__ */ _interopNamespaceDefault(n$1);
29
+ const i__namespace = /* @__PURE__ */ _interopNamespaceDefault(i$1);
30
30
  const G__namespace = /* @__PURE__ */ _interopNamespaceDefault(G$1);
31
31
  const c__namespace = /* @__PURE__ */ _interopNamespaceDefault(c$2);
32
32
  const dotenv__namespace = /* @__PURE__ */ _interopNamespaceDefault(dotenv);
33
- var p$2 = Object.defineProperty;
34
- var f$1 = (e2, t2, s2) => t2 in e2 ? p$2(e2, t2, { enumerable: true, configurable: true, writable: true, value: s2 }) : e2[t2] = s2;
35
- var x$1 = (e2, t2, s2) => f$1(e2, typeof t2 != "symbol" ? t2 + "" : t2, s2);
36
- var i$1 = /* @__PURE__ */ ((e2) => (e2.PUSH = "PUSH", e2.PUSH_UNDEFINED = "PUSH_UNDEFINED", e2.POP = "POP", e2.LOAD = "LOAD", e2.STORE = "STORE", e2.CONCAT = "CONCAT", e2.ARRAY_NEW = "ARRAY_NEW", e2.ARRAY_PUSH = "ARRAY_PUSH", e2.ARRAY_GET = "ARRAY_GET", e2.ARRAY_SET = "ARRAY_SET", e2.ARRAY_LEN = "ARRAY_LEN", e2.STRING_LEN = "STRING_LEN", e2.STRING_SUBSTRING = "STRING_SUBSTRING", e2.STRING_INDEXOF = "STRING_INDEXOF", e2.STRING_SPLIT = "STRING_SPLIT", e2.STRING_SLICE = "STRING_SLICE", e2.STRING_CHARAT = "STRING_CHARAT", e2.STRING_TOUPPERCASE = "STRING_TOUPPERCASE", e2.STRING_TOLOWERCASE = "STRING_TOLOWERCASE", e2.LENGTH = "LENGTH", e2.JSON_PARSE = "JSON_PARSE", e2.TYPEOF = "TYPEOF", e2.ADD = "ADD", e2.SUB = "SUB", e2.MUL = "MUL", e2.DIV = "DIV", e2.MOD = "MOD", e2.UNARY_MINUS = "UNARY_MINUS", e2.UNARY_PLUS = "UNARY_PLUS", e2.INC = "INC", e2.DEC = "DEC", e2.EQ = "EQ", e2.NEQ = "NEQ", e2.LT = "LT", e2.GT = "GT", e2.LTE = "LTE", e2.GTE = "GTE", e2.EQ_STRICT = "EQ_STRICT", e2.NEQ_STRICT = "NEQ_STRICT", e2.JUMP = "JUMP", e2.JUMP_IF = "JUMP_IF", e2.JUMP_IF_FALSE = "JUMP_IF_FALSE", e2.JUMP_IF_TRUE = "JUMP_IF_TRUE", e2.CALL = "CALL", e2.RETURN = "RETURN", e2.AND = "AND", e2.OR = "OR", e2.NOT = "NOT", e2.BREAK = "BREAK", e2.CONTINUE = "CONTINUE", e2.ITER_START = "ITER_START", e2.ITER_NEXT = "ITER_NEXT", e2.ITER_END = "ITER_END", e2.FS_LIST_FILES = "FS_LIST_FILES", e2.OBJECT_CREATE = "OBJECT_CREATE", e2.PROPERTY_GET = "PROPERTY_GET", e2.PROPERTY_SET = "PROPERTY_SET", e2.JSON_STRINGIFY = "JSON_STRINGIFY", e2.CC = "CC", e2.PRINT = "PRINT", e2.HALT = "HALT", e2))(i$1 || {});
33
+ var f$1 = Object.defineProperty;
34
+ var p$2 = (e2, t2, s2) => t2 in e2 ? f$1(e2, t2, { enumerable: true, configurable: true, writable: true, value: s2 }) : e2[t2] = s2;
35
+ var T = (e2, t2, s2) => p$2(e2, typeof t2 != "symbol" ? t2 + "" : t2, s2);
36
+ var n$1 = /* @__PURE__ */ ((e2) => (e2.PUSH = "PUSH", e2.PUSH_UNDEFINED = "PUSH_UNDEFINED", e2.POP = "POP", e2.LOAD = "LOAD", e2.STORE = "STORE", e2.CONCAT = "CONCAT", e2.ARRAY_NEW = "ARRAY_NEW", e2.ARRAY_PUSH = "ARRAY_PUSH", e2.ARRAY_GET = "ARRAY_GET", e2.ARRAY_SET = "ARRAY_SET", e2.ARRAY_LEN = "ARRAY_LEN", e2.STRING_LEN = "STRING_LEN", e2.STRING_SUBSTRING = "STRING_SUBSTRING", e2.STRING_INDEXOF = "STRING_INDEXOF", e2.STRING_SPLIT = "STRING_SPLIT", e2.STRING_SLICE = "STRING_SLICE", e2.STRING_CHARAT = "STRING_CHARAT", e2.STRING_TOUPPERCASE = "STRING_TOUPPERCASE", e2.STRING_TOLOWERCASE = "STRING_TOLOWERCASE", e2.LENGTH = "LENGTH", e2.TO_STRING = "TO_STRING", e2.JSON_PARSE = "JSON_PARSE", e2.TYPEOF = "TYPEOF", e2.ADD = "ADD", e2.SUB = "SUB", e2.MUL = "MUL", e2.DIV = "DIV", e2.MOD = "MOD", e2.UNARY_MINUS = "UNARY_MINUS", e2.UNARY_PLUS = "UNARY_PLUS", e2.INC = "INC", e2.DEC = "DEC", e2.EQ = "EQ", e2.NEQ = "NEQ", e2.LT = "LT", e2.GT = "GT", e2.LTE = "LTE", e2.GTE = "GTE", e2.EQ_STRICT = "EQ_STRICT", e2.NEQ_STRICT = "NEQ_STRICT", e2.JUMP = "JUMP", e2.JUMP_IF = "JUMP_IF", e2.JUMP_IF_FALSE = "JUMP_IF_FALSE", e2.JUMP_IF_TRUE = "JUMP_IF_TRUE", e2.CALL = "CALL", e2.RETURN = "RETURN", e2.AND = "AND", e2.OR = "OR", e2.NOT = "NOT", e2.BREAK = "BREAK", e2.CONTINUE = "CONTINUE", e2.ITER_START = "ITER_START", e2.ITER_NEXT = "ITER_NEXT", e2.ITER_END = "ITER_END", e2.FS_LIST_FILES = "FS_LIST_FILES", e2.OBJECT_CREATE = "OBJECT_CREATE", e2.PROPERTY_GET = "PROPERTY_GET", e2.PROPERTY_SET = "PROPERTY_SET", e2.JSON_STRINGIFY = "JSON_STRINGIFY", e2.CC = "CC", e2.PRINT = "PRINT", e2.HALT = "HALT", e2))(n$1 || {});
37
37
  function R(e2) {
38
38
  const t2 = [], s2 = [];
39
- let r2 = false, a2 = false;
40
- const m2 = n__namespace.createSourceFile(
39
+ let r2 = false;
40
+ const a2 = i__namespace.createSourceFile(
41
41
  "program.ts",
42
42
  e2,
43
- n__namespace.ScriptTarget.Latest,
43
+ i__namespace.ScriptTarget.Latest,
44
44
  true
45
45
  );
46
- function l2(o2) {
47
- if (n__namespace.isFunctionDeclaration(o2) && o2.name && o2.name.text === "main" && (r2 = true, o2.parameters.length > 0 && t2.push("main() must not have parameters")), n__namespace.isExpressionStatement(o2) && o2.parent === m2) {
48
- const c2 = o2.expression;
49
- n__namespace.isCallExpression(c2) && n__namespace.isIdentifier(c2.expression) && c2.expression.text === "main" && (a2 = true);
46
+ function S2(c2) {
47
+ if (i__namespace.isFunctionDeclaration(c2) && c2.name && c2.name.text === "main" && (r2 = true, c2.parameters.length > 0 && t2.push("main() must not have parameters")), i__namespace.isCallExpression(c2) && i__namespace.isIdentifier(c2.expression)) {
48
+ const o2 = c2.expression.text;
49
+ ["setTimeout", "fetch", "require", "import"].includes(o2) && t2.push(`Unsupported function: ${o2}`);
50
50
  }
51
- if (n__namespace.isCallExpression(o2) && n__namespace.isIdentifier(o2.expression)) {
52
- const c2 = o2.expression.text;
53
- ["setTimeout", "fetch", "require", "import"].includes(c2) && t2.push(`Unsupported function: ${c2}`);
54
- }
55
- n__namespace.forEachChild(o2, l2);
51
+ i__namespace.forEachChild(c2, S2);
56
52
  }
57
- return l2(m2), r2 || t2.push("Program must have a main() function"), r2 && !a2 && t2.push("main() must be called at the top level"), t2.length === 0 && s2.push({ op: i$1.HALT }), {
53
+ return S2(a2), r2 || t2.push("Program must have a main() function"), t2.length === 0 && s2.push({ op: n$1.HALT }), {
58
54
  bytecode: s2,
59
55
  errors: t2,
60
56
  hasMain: r2
@@ -62,8 +58,8 @@ function R(e2) {
62
58
  }
63
59
  let A$1 = class A {
64
60
  constructor() {
65
- x$1(this, "bytecode", []);
66
- x$1(this, "contextStack", []);
61
+ T(this, "bytecode", []);
62
+ T(this, "contextStack", []);
67
63
  }
68
64
  /**
69
65
  * Emit an instruction and return its index
@@ -140,64 +136,64 @@ let A$1 = class A {
140
136
  };
141
137
  const P$1 = (e2, t2, { compileExpression: s2, compileStatement: r2 }) => {
142
138
  s2(e2.expression);
143
- const a2 = t2.emit(i$1.JUMP_IF_FALSE, -1), m2 = {
139
+ const a2 = t2.emit(n$1.JUMP_IF_FALSE, -1), S2 = {
144
140
  type: "if",
145
141
  endTargets: []
146
142
  };
147
- if (e2.elseStatement ? m2.elseTarget = a2 : m2.endTargets.push(a2), t2.pushContext(m2), r2(e2.thenStatement), e2.elseStatement) {
148
- const o2 = t2.emit(i$1.JUMP, -1);
149
- m2.endTargets.push(o2);
150
- const c2 = t2.currentAddress();
151
- t2.patchJump(a2, c2), r2(e2.elseStatement);
152
- }
153
- const l2 = t2.popContext();
154
- if (l2) {
143
+ if (e2.elseStatement ? S2.elseTarget = a2 : S2.endTargets.push(a2), t2.pushContext(S2), r2(e2.thenStatement), e2.elseStatement) {
144
+ const o2 = t2.emit(n$1.JUMP, -1);
145
+ S2.endTargets.push(o2);
146
+ const m2 = t2.currentAddress();
147
+ t2.patchJump(a2, m2), r2(e2.elseStatement);
148
+ }
149
+ const c2 = t2.popContext();
150
+ if (c2) {
155
151
  const o2 = t2.currentAddress();
156
- t2.patchJumps(l2.endTargets, o2);
152
+ t2.patchJumps(c2.endTargets, o2);
157
153
  }
158
154
  }, I = (e2, t2, { compileExpression: s2, compileStatement: r2 }) => {
159
155
  const a2 = t2.currentAddress();
160
156
  s2(e2.expression);
161
- const l2 = {
157
+ const c2 = {
162
158
  type: "loop",
163
- breakTargets: [t2.emit(i$1.JUMP_IF_FALSE, -1)],
159
+ breakTargets: [t2.emit(n$1.JUMP_IF_FALSE, -1)],
164
160
  continueTargets: [],
165
161
  endTargets: [],
166
162
  startAddress: a2
167
163
  };
168
- t2.pushContext(l2), r2(e2.statement), t2.emit(i$1.JUMP, a2);
164
+ t2.pushContext(c2), r2(e2.statement), t2.emit(n$1.JUMP, a2);
169
165
  const o2 = t2.popContext();
170
166
  if (o2) {
171
- const c2 = t2.currentAddress();
172
- t2.patchJumps(o2.breakTargets || [], c2);
167
+ const m2 = t2.currentAddress();
168
+ t2.patchJumps(o2.breakTargets || [], m2);
173
169
  }
174
170
  }, h$2 = (e2, t2, { compileExpression: s2, compileStatement: r2 }) => {
175
- const a2 = e2.initializer, m2 = e2.expression;
176
- let l2;
177
- if (n__namespace.isVariableDeclarationList(a2))
178
- l2 = a2.declarations[0].name.getText();
179
- else if (n__namespace.isIdentifier(a2))
180
- l2 = a2.text;
171
+ const a2 = e2.initializer, S2 = e2.expression;
172
+ let c2;
173
+ if (i__namespace.isVariableDeclarationList(a2))
174
+ c2 = a2.declarations[0].name.getText();
175
+ else if (i__namespace.isIdentifier(a2))
176
+ c2 = a2.text;
181
177
  else
182
178
  throw new Error("Unsupported for-of variable declaration");
183
- s2(m2), t2.emit(i$1.ITER_START);
179
+ s2(S2), t2.emit(n$1.ITER_START);
184
180
  const o2 = t2.currentAddress();
185
- t2.emit(i$1.ITER_NEXT);
186
- const c2 = t2.emit(i$1.JUMP_IF_FALSE, -1);
187
- t2.emit(i$1.STORE, l2);
188
- const S = {
181
+ t2.emit(n$1.ITER_NEXT);
182
+ const m2 = t2.emit(n$1.JUMP_IF_FALSE, -1);
183
+ t2.emit(n$1.STORE, c2);
184
+ const l2 = {
189
185
  type: "foreach",
190
- breakTargets: [c2],
186
+ breakTargets: [m2],
191
187
  continueTargets: [],
192
188
  endTargets: [],
193
189
  startAddress: o2,
194
- iterVariable: l2
190
+ iterVariable: c2
195
191
  };
196
- t2.pushContext(S), r2(e2.statement), t2.emit(i$1.JUMP, o2);
192
+ t2.pushContext(l2), r2(e2.statement), t2.emit(n$1.JUMP, o2);
197
193
  const u2 = t2.popContext();
198
194
  if (u2) {
199
195
  const E = t2.currentAddress();
200
- t2.patchJumps(u2.breakTargets || [], E), t2.emit(i$1.ITER_END);
196
+ t2.patchJumps(u2.breakTargets || [], E), t2.emit(n$1.ITER_END);
201
197
  }
202
198
  }, y$1 = (e2, t2, { compileStatement: s2 }) => {
203
199
  e2.statements.forEach((r2) => {
@@ -205,253 +201,255 @@ const P$1 = (e2, t2, { compileExpression: s2, compileStatement: r2 }) => {
205
201
  });
206
202
  }, N$1 = (e2, t2, { compileExpression: s2 }) => {
207
203
  const r2 = e2.declarationList.declarations[0];
208
- r2.initializer && (s2(r2.initializer), t2.emit(i$1.STORE, r2.name.getText()));
209
- }, g$2 = (e2, t2, { compileExpression: s2 }) => {
204
+ r2.initializer && (s2(r2.initializer), t2.emit(n$1.STORE, r2.name.getText()));
205
+ }, _ = (e2, t2, { compileExpression: s2 }) => {
210
206
  const r2 = e2.expression;
211
- if (n__namespace.isBinaryExpression(r2)) {
207
+ if (i__namespace.isBinaryExpression(r2)) {
212
208
  const a2 = r2.operatorToken.kind;
213
- if (a2 === n__namespace.SyntaxKind.PlusEqualsToken || a2 === n__namespace.SyntaxKind.MinusEqualsToken || a2 === n__namespace.SyntaxKind.AsteriskEqualsToken || a2 === n__namespace.SyntaxKind.SlashEqualsToken || a2 === n__namespace.SyntaxKind.PercentEqualsToken) {
214
- if (n__namespace.isIdentifier(r2.left)) {
215
- switch (t2.emit(i$1.LOAD, r2.left.text), s2(r2.right), a2) {
216
- case n__namespace.SyntaxKind.PlusEqualsToken:
217
- n__namespace.isStringLiteral(r2.right) ? t2.emit(i$1.CONCAT) : t2.emit(i$1.ADD);
209
+ if (a2 === i__namespace.SyntaxKind.PlusEqualsToken || a2 === i__namespace.SyntaxKind.MinusEqualsToken || a2 === i__namespace.SyntaxKind.AsteriskEqualsToken || a2 === i__namespace.SyntaxKind.SlashEqualsToken || a2 === i__namespace.SyntaxKind.PercentEqualsToken) {
210
+ if (i__namespace.isIdentifier(r2.left)) {
211
+ switch (t2.emit(n$1.LOAD, r2.left.text), s2(r2.right), a2) {
212
+ case i__namespace.SyntaxKind.PlusEqualsToken:
213
+ i__namespace.isStringLiteral(r2.right) ? t2.emit(n$1.CONCAT) : t2.emit(n$1.ADD);
218
214
  break;
219
- case n__namespace.SyntaxKind.MinusEqualsToken:
220
- t2.emit(i$1.SUB);
215
+ case i__namespace.SyntaxKind.MinusEqualsToken:
216
+ t2.emit(n$1.SUB);
221
217
  break;
222
- case n__namespace.SyntaxKind.AsteriskEqualsToken:
223
- t2.emit(i$1.MUL);
218
+ case i__namespace.SyntaxKind.AsteriskEqualsToken:
219
+ t2.emit(n$1.MUL);
224
220
  break;
225
- case n__namespace.SyntaxKind.SlashEqualsToken:
226
- t2.emit(i$1.DIV);
221
+ case i__namespace.SyntaxKind.SlashEqualsToken:
222
+ t2.emit(n$1.DIV);
227
223
  break;
228
- case n__namespace.SyntaxKind.PercentEqualsToken:
229
- t2.emit(i$1.MOD);
224
+ case i__namespace.SyntaxKind.PercentEqualsToken:
225
+ t2.emit(n$1.MOD);
230
226
  break;
231
227
  }
232
- t2.emit(i$1.STORE, r2.left.text);
233
- } else if (n__namespace.isElementAccessExpression(r2.left))
228
+ t2.emit(n$1.STORE, r2.left.text);
229
+ } else if (i__namespace.isElementAccessExpression(r2.left))
234
230
  throw new Error("Compound assignment to array elements not yet supported");
235
231
  return;
236
- } else if (a2 === n__namespace.SyntaxKind.EqualsToken) {
237
- if (s2(r2.right), n__namespace.isIdentifier(r2.left))
238
- t2.emit(i$1.STORE, r2.left.text);
239
- else if (n__namespace.isElementAccessExpression(r2.left)) {
240
- const m2 = `__temp_${t2.getBytecode().length}`;
241
- t2.emit(i$1.STORE, m2), s2(r2.left.expression), s2(r2.left.argumentExpression), t2.emit(i$1.LOAD, m2), t2.emit(i$1.ARRAY_SET), t2.emit(i$1.POP);
242
- } else if (n__namespace.isPropertyAccessExpression(r2.left)) {
243
- const m2 = `__temp_${t2.getBytecode().length}`;
244
- t2.emit(i$1.STORE, m2), s2(r2.left.expression), t2.emit(i$1.PUSH, r2.left.name.text), t2.emit(i$1.LOAD, m2), t2.emit(i$1.PROPERTY_SET), t2.emit(i$1.POP);
232
+ } else if (a2 === i__namespace.SyntaxKind.EqualsToken) {
233
+ if (s2(r2.right), i__namespace.isIdentifier(r2.left))
234
+ t2.emit(n$1.STORE, r2.left.text);
235
+ else if (i__namespace.isElementAccessExpression(r2.left)) {
236
+ const S2 = `__temp_${t2.getBytecode().length}`;
237
+ t2.emit(n$1.STORE, S2), s2(r2.left.expression), s2(r2.left.argumentExpression), t2.emit(n$1.LOAD, S2), t2.emit(n$1.ARRAY_SET), t2.emit(n$1.POP);
238
+ } else if (i__namespace.isPropertyAccessExpression(r2.left)) {
239
+ const S2 = `__temp_${t2.getBytecode().length}`;
240
+ t2.emit(n$1.STORE, S2), s2(r2.left.expression), t2.emit(n$1.PUSH, r2.left.name.text), t2.emit(n$1.LOAD, S2), t2.emit(n$1.PROPERTY_SET), t2.emit(n$1.POP);
245
241
  }
246
242
  return;
247
243
  }
248
244
  }
249
- n__namespace.isCallExpression(r2) && n__namespace.isPropertyAccessExpression(r2.expression) && r2.expression.expression.getText() === "console" && r2.expression.name.getText() === "log" ? (r2.arguments.forEach((a2) => {
245
+ i__namespace.isCallExpression(r2) && i__namespace.isPropertyAccessExpression(r2.expression) && r2.expression.expression.getText() === "console" && r2.expression.name.getText() === "log" ? (r2.arguments.forEach((a2) => {
250
246
  s2(a2);
251
- }), t2.emit(i$1.PRINT)) : n__namespace.isCallExpression(r2) && n__namespace.isIdentifier(r2.expression) && r2.expression.text === "CC" ? (r2.arguments.length > 0 && s2(r2.arguments[0]), t2.emit(i$1.CC), t2.emit(i$1.POP)) : n__namespace.isCallExpression(r2) && n__namespace.isPropertyAccessExpression(r2.expression) && r2.expression.name.getText() === "push" ? (s2(r2.expression.expression), r2.arguments.length > 0 && s2(r2.arguments[0]), t2.emit(i$1.ARRAY_PUSH)) : (n__namespace.isPostfixUnaryExpression(r2) || n__namespace.isPrefixUnaryExpression(r2)) && (s2(r2), t2.emit(i$1.POP));
252
- }, _$1 = (e2, t2, { compileExpression: s2 }) => {
253
- e2.expression ? s2(e2.expression) : t2.emit(i$1.PUSH, null), t2.emit(i$1.RETURN);
247
+ }), t2.emit(n$1.PRINT)) : i__namespace.isCallExpression(r2) && i__namespace.isIdentifier(r2.expression) && r2.expression.text === "CC" ? (r2.arguments.length > 0 && s2(r2.arguments[0]), t2.emit(n$1.CC), t2.emit(n$1.POP)) : i__namespace.isCallExpression(r2) && i__namespace.isPropertyAccessExpression(r2.expression) && r2.expression.name.getText() === "push" ? (s2(r2.expression.expression), r2.arguments.length > 0 && s2(r2.arguments[0]), t2.emit(n$1.ARRAY_PUSH)) : (i__namespace.isPostfixUnaryExpression(r2) || i__namespace.isPrefixUnaryExpression(r2)) && (s2(r2), t2.emit(n$1.POP));
248
+ }, g$2 = (e2, t2, { compileExpression: s2 }) => {
249
+ e2.expression ? s2(e2.expression) : t2.emit(n$1.PUSH, null), t2.emit(n$1.RETURN);
254
250
  }, k = (e2, t2, s2) => {
255
251
  const r2 = t2.findLoopContext();
256
252
  if (r2) {
257
- r2.type === "foreach" && t2.emit(i$1.ITER_END);
258
- const a2 = t2.emit(i$1.BREAK, -1);
253
+ r2.type === "foreach" && t2.emit(n$1.ITER_END);
254
+ const a2 = t2.emit(n$1.BREAK, -1);
259
255
  r2.breakTargets = r2.breakTargets || [], r2.breakTargets.push(a2);
260
256
  } else
261
257
  throw new Error("break statement not in loop");
262
258
  }, U = (e2, t2, s2) => {
263
259
  const r2 = t2.findLoopContext();
264
260
  if (r2 && r2.startAddress !== void 0) {
265
- const a2 = t2.emit(i$1.CONTINUE, r2.startAddress);
261
+ const a2 = t2.emit(n$1.CONTINUE, r2.startAddress);
266
262
  r2.continueTargets = r2.continueTargets || [], r2.continueTargets.push(a2);
267
263
  } else
268
264
  throw new Error("continue statement not in loop");
269
265
  }, L$1 = {
270
- [n__namespace.SyntaxKind.IfStatement]: P$1,
271
- [n__namespace.SyntaxKind.WhileStatement]: I,
272
- [n__namespace.SyntaxKind.ForOfStatement]: h$2,
273
- [n__namespace.SyntaxKind.Block]: y$1,
274
- [n__namespace.SyntaxKind.VariableStatement]: N$1,
275
- [n__namespace.SyntaxKind.ExpressionStatement]: g$2,
276
- [n__namespace.SyntaxKind.ReturnStatement]: _$1,
277
- [n__namespace.SyntaxKind.BreakStatement]: k,
278
- [n__namespace.SyntaxKind.ContinueStatement]: U
279
- }, d$1 = (e2, t2, s2) => {
280
- t2.emit(i$1.PUSH, e2.text);
266
+ [i__namespace.SyntaxKind.IfStatement]: P$1,
267
+ [i__namespace.SyntaxKind.WhileStatement]: I,
268
+ [i__namespace.SyntaxKind.ForOfStatement]: h$2,
269
+ [i__namespace.SyntaxKind.Block]: y$1,
270
+ [i__namespace.SyntaxKind.VariableStatement]: N$1,
271
+ [i__namespace.SyntaxKind.ExpressionStatement]: _,
272
+ [i__namespace.SyntaxKind.ReturnStatement]: g$2,
273
+ [i__namespace.SyntaxKind.BreakStatement]: k,
274
+ [i__namespace.SyntaxKind.ContinueStatement]: U
281
275
  }, K = (e2, t2, s2) => {
282
- t2.emit(i$1.PUSH, Number(e2.text));
276
+ t2.emit(n$1.PUSH, e2.text);
277
+ }, d$1 = (e2, t2, s2) => {
278
+ t2.emit(n$1.PUSH, Number(e2.text));
283
279
  }, b$2 = (e2, t2, s2) => {
284
- t2.emit(i$1.PUSH, true);
280
+ t2.emit(n$1.PUSH, true);
285
281
  }, F$1 = (e2, t2, s2) => {
286
- t2.emit(i$1.PUSH, false);
287
- }, D$1 = (e2, t2, s2) => {
288
- t2.emit(i$1.PUSH, null);
282
+ t2.emit(n$1.PUSH, false);
289
283
  }, G = (e2, t2, s2) => {
290
- e2.text === "undefined" ? t2.emit(i$1.PUSH_UNDEFINED) : t2.emit(i$1.LOAD, e2.text);
284
+ t2.emit(n$1.PUSH, null);
285
+ }, D$1 = (e2, t2, s2) => {
286
+ e2.text === "undefined" ? t2.emit(n$1.PUSH_UNDEFINED) : t2.emit(n$1.LOAD, e2.text);
291
287
  }, H$1 = (e2, t2, { compileExpression: s2 }) => {
292
- t2.emit(i$1.ARRAY_NEW), e2.elements.forEach((r2) => {
293
- s2(r2), t2.emit(i$1.ARRAY_PUSH);
288
+ t2.emit(n$1.ARRAY_NEW), e2.elements.forEach((r2) => {
289
+ s2(r2), t2.emit(n$1.ARRAY_PUSH);
294
290
  });
295
291
  }, M$1 = (e2, t2, { compileExpression: s2 }) => {
296
292
  s2(e2.expression);
297
293
  }, J$1 = (e2, t2, { compileExpression: s2 }) => {
298
- e2.name.text === "length" ? (s2(e2.expression), t2.emit(i$1.LENGTH)) : (s2(e2.expression), t2.emit(i$1.PUSH, e2.name.text), t2.emit(i$1.PROPERTY_GET));
299
- }, C = (e2, t2, { compileExpression: s2, reportError: r2 }) => {
300
- s2(e2.expression), e2.argumentExpression ? s2(e2.argumentExpression) : r2(e2, "Element access requires an index expression"), t2.emit(i$1.ARRAY_GET);
301
- }, Y$1 = (e2, t2, { compileExpression: s2 }) => {
294
+ e2.name.text === "length" ? (s2(e2.expression), t2.emit(n$1.LENGTH)) : (s2(e2.expression), t2.emit(n$1.PUSH, e2.name.text), t2.emit(n$1.PROPERTY_GET));
295
+ }, Y$1 = (e2, t2, { compileExpression: s2, reportError: r2 }) => {
296
+ s2(e2.expression), e2.argumentExpression ? s2(e2.argumentExpression) : r2(e2, "Element access requires an index expression"), t2.emit(n$1.ARRAY_GET);
297
+ }, C = (e2, t2, { compileExpression: s2 }) => {
302
298
  switch (e2.operator) {
303
- case n__namespace.SyntaxKind.ExclamationToken:
304
- s2(e2.operand), t2.emit(i$1.NOT);
299
+ case i__namespace.SyntaxKind.ExclamationToken:
300
+ s2(e2.operand), t2.emit(n$1.NOT);
305
301
  break;
306
- case n__namespace.SyntaxKind.MinusToken:
307
- s2(e2.operand), t2.emit(i$1.UNARY_MINUS);
302
+ case i__namespace.SyntaxKind.MinusToken:
303
+ s2(e2.operand), t2.emit(n$1.UNARY_MINUS);
308
304
  break;
309
- case n__namespace.SyntaxKind.PlusToken:
310
- s2(e2.operand), t2.emit(i$1.UNARY_PLUS);
305
+ case i__namespace.SyntaxKind.PlusToken:
306
+ s2(e2.operand), t2.emit(n$1.UNARY_PLUS);
311
307
  break;
312
- case n__namespace.SyntaxKind.PlusPlusToken:
313
- n__namespace.isIdentifier(e2.operand) && (t2.emit(i$1.PUSH, e2.operand.text), t2.emit(i$1.INC, false));
308
+ case i__namespace.SyntaxKind.PlusPlusToken:
309
+ i__namespace.isIdentifier(e2.operand) && (t2.emit(n$1.PUSH, e2.operand.text), t2.emit(n$1.INC, false));
314
310
  break;
315
- case n__namespace.SyntaxKind.MinusMinusToken:
316
- n__namespace.isIdentifier(e2.operand) && (t2.emit(i$1.PUSH, e2.operand.text), t2.emit(i$1.DEC, false));
311
+ case i__namespace.SyntaxKind.MinusMinusToken:
312
+ i__namespace.isIdentifier(e2.operand) && (t2.emit(n$1.PUSH, e2.operand.text), t2.emit(n$1.DEC, false));
317
313
  break;
318
314
  }
319
315
  }, w$1 = (e2, t2, { compileExpression: s2 }) => {
320
316
  switch (e2.operator) {
321
- case n__namespace.SyntaxKind.PlusPlusToken:
322
- n__namespace.isIdentifier(e2.operand) && (t2.emit(i$1.PUSH, e2.operand.text), t2.emit(i$1.INC, true));
317
+ case i__namespace.SyntaxKind.PlusPlusToken:
318
+ i__namespace.isIdentifier(e2.operand) && (t2.emit(n$1.PUSH, e2.operand.text), t2.emit(n$1.INC, true));
323
319
  break;
324
- case n__namespace.SyntaxKind.MinusMinusToken:
325
- n__namespace.isIdentifier(e2.operand) && (t2.emit(i$1.PUSH, e2.operand.text), t2.emit(i$1.DEC, true));
320
+ case i__namespace.SyntaxKind.MinusMinusToken:
321
+ i__namespace.isIdentifier(e2.operand) && (t2.emit(n$1.PUSH, e2.operand.text), t2.emit(n$1.DEC, true));
326
322
  break;
327
323
  }
328
324
  };
329
- function T(e2, t2) {
330
- return !!(n__namespace.isStringLiteral(e2) || n__namespace.isStringLiteral(t2) || n__namespace.isBinaryExpression(e2) && e2.operatorToken.kind === n__namespace.SyntaxKind.PlusToken && T(e2.left, e2.right) || n__namespace.isBinaryExpression(t2) && t2.operatorToken.kind === n__namespace.SyntaxKind.PlusToken && T(t2.left, t2.right));
325
+ function x$1(e2, t2) {
326
+ return !!(i__namespace.isStringLiteral(e2) || i__namespace.isStringLiteral(t2) || i__namespace.isBinaryExpression(e2) && e2.operatorToken.kind === i__namespace.SyntaxKind.PlusToken && x$1(e2.left, e2.right) || i__namespace.isBinaryExpression(t2) && t2.operatorToken.kind === i__namespace.SyntaxKind.PlusToken && x$1(t2.left, t2.right));
331
327
  }
332
328
  const B$1 = (e2, t2, { compileExpression: s2 }) => {
333
329
  const r2 = e2.operatorToken.kind;
334
330
  switch (s2(e2.left), s2(e2.right), r2) {
335
- case n__namespace.SyntaxKind.PlusToken:
336
- T(e2.left, e2.right) ? t2.emit(i$1.CONCAT) : t2.emit(i$1.ADD);
331
+ case i__namespace.SyntaxKind.PlusToken:
332
+ x$1(e2.left, e2.right) ? t2.emit(n$1.CONCAT) : t2.emit(n$1.ADD);
337
333
  break;
338
- case n__namespace.SyntaxKind.MinusToken:
339
- t2.emit(i$1.SUB);
334
+ case i__namespace.SyntaxKind.MinusToken:
335
+ t2.emit(n$1.SUB);
340
336
  break;
341
- case n__namespace.SyntaxKind.AsteriskToken:
342
- t2.emit(i$1.MUL);
337
+ case i__namespace.SyntaxKind.AsteriskToken:
338
+ t2.emit(n$1.MUL);
343
339
  break;
344
- case n__namespace.SyntaxKind.SlashToken:
345
- t2.emit(i$1.DIV);
340
+ case i__namespace.SyntaxKind.SlashToken:
341
+ t2.emit(n$1.DIV);
346
342
  break;
347
- case n__namespace.SyntaxKind.PercentToken:
348
- t2.emit(i$1.MOD);
343
+ case i__namespace.SyntaxKind.PercentToken:
344
+ t2.emit(n$1.MOD);
349
345
  break;
350
- case n__namespace.SyntaxKind.EqualsEqualsToken:
351
- t2.emit(i$1.EQ);
346
+ case i__namespace.SyntaxKind.EqualsEqualsToken:
347
+ t2.emit(n$1.EQ);
352
348
  break;
353
- case n__namespace.SyntaxKind.ExclamationEqualsToken:
354
- t2.emit(i$1.NEQ);
349
+ case i__namespace.SyntaxKind.ExclamationEqualsToken:
350
+ t2.emit(n$1.NEQ);
355
351
  break;
356
- case n__namespace.SyntaxKind.LessThanToken:
357
- t2.emit(i$1.LT);
352
+ case i__namespace.SyntaxKind.LessThanToken:
353
+ t2.emit(n$1.LT);
358
354
  break;
359
- case n__namespace.SyntaxKind.GreaterThanToken:
360
- t2.emit(i$1.GT);
355
+ case i__namespace.SyntaxKind.GreaterThanToken:
356
+ t2.emit(n$1.GT);
361
357
  break;
362
- case n__namespace.SyntaxKind.LessThanEqualsToken:
363
- t2.emit(i$1.LTE);
358
+ case i__namespace.SyntaxKind.LessThanEqualsToken:
359
+ t2.emit(n$1.LTE);
364
360
  break;
365
- case n__namespace.SyntaxKind.GreaterThanEqualsToken:
366
- t2.emit(i$1.GTE);
361
+ case i__namespace.SyntaxKind.GreaterThanEqualsToken:
362
+ t2.emit(n$1.GTE);
367
363
  break;
368
- case n__namespace.SyntaxKind.EqualsEqualsEqualsToken:
369
- t2.emit(i$1.EQ_STRICT);
364
+ case i__namespace.SyntaxKind.EqualsEqualsEqualsToken:
365
+ t2.emit(n$1.EQ_STRICT);
370
366
  break;
371
- case n__namespace.SyntaxKind.ExclamationEqualsEqualsToken:
372
- t2.emit(i$1.NEQ_STRICT);
367
+ case i__namespace.SyntaxKind.ExclamationEqualsEqualsToken:
368
+ t2.emit(n$1.NEQ_STRICT);
373
369
  break;
374
- case n__namespace.SyntaxKind.AmpersandAmpersandToken:
375
- t2.emit(i$1.AND);
370
+ case i__namespace.SyntaxKind.AmpersandAmpersandToken:
371
+ t2.emit(n$1.AND);
376
372
  break;
377
- case n__namespace.SyntaxKind.BarBarToken:
378
- t2.emit(i$1.OR);
373
+ case i__namespace.SyntaxKind.BarBarToken:
374
+ t2.emit(n$1.OR);
379
375
  break;
380
376
  }
381
377
  }, q$1 = (e2, t2, { compileExpression: s2 }) => {
382
378
  s2(e2.condition);
383
- const r2 = t2.emit(i$1.JUMP_IF_FALSE, -1);
379
+ const r2 = t2.emit(n$1.JUMP_IF_FALSE, -1);
384
380
  s2(e2.whenTrue);
385
- const a2 = t2.emit(i$1.JUMP, -1), m2 = t2.currentAddress();
386
- t2.patchJump(r2, m2), s2(e2.whenFalse);
387
- const l2 = t2.currentAddress();
388
- t2.patchJump(a2, l2);
381
+ const a2 = t2.emit(n$1.JUMP, -1), S2 = t2.currentAddress();
382
+ t2.patchJump(r2, S2), s2(e2.whenFalse);
383
+ const c2 = t2.currentAddress();
384
+ t2.patchJump(a2, c2);
389
385
  }, O = (e2, t2, { compileExpression: s2 }) => {
390
- s2(e2.expression), t2.emit(i$1.TYPEOF);
386
+ s2(e2.expression), t2.emit(n$1.TYPEOF);
391
387
  }, V$1 = (e2, t2, { compileExpression: s2 }) => {
392
- if (n__namespace.isPropertyAccessExpression(e2.expression) && n__namespace.isIdentifier(e2.expression.expression) && e2.expression.expression.text === "fs" && e2.expression.name.text === "listFiles")
393
- e2.arguments.length > 0 ? s2(e2.arguments[0]) : t2.emit(i$1.PUSH, "."), e2.arguments.length > 1 && s2(e2.arguments[1]), t2.emit(i$1.FS_LIST_FILES);
394
- else if (n__namespace.isPropertyAccessExpression(e2.expression) && n__namespace.isIdentifier(e2.expression.expression) && e2.expression.expression.text === "JSON" && e2.expression.name.text === "parse")
395
- e2.arguments.length > 0 && s2(e2.arguments[0]), t2.emit(i$1.JSON_PARSE);
396
- else if (n__namespace.isPropertyAccessExpression(e2.expression) && n__namespace.isIdentifier(e2.expression.expression) && e2.expression.expression.text === "JSON" && e2.expression.name.text === "stringify")
397
- e2.arguments.length > 0 ? s2(e2.arguments[0]) : t2.emit(i$1.PUSH_UNDEFINED), t2.emit(i$1.JSON_STRINGIFY);
398
- else if (n__namespace.isIdentifier(e2.expression) && e2.expression.text === "CC")
399
- e2.arguments.length > 0 && s2(e2.arguments[0]), t2.emit(i$1.CC);
400
- else if (n__namespace.isPropertyAccessExpression(e2.expression)) {
388
+ if (i__namespace.isPropertyAccessExpression(e2.expression) && i__namespace.isIdentifier(e2.expression.expression) && e2.expression.expression.text === "fs" && e2.expression.name.text === "listFiles")
389
+ e2.arguments.length > 0 ? s2(e2.arguments[0]) : t2.emit(n$1.PUSH, "."), e2.arguments.length > 1 && s2(e2.arguments[1]), t2.emit(n$1.FS_LIST_FILES);
390
+ else if (i__namespace.isPropertyAccessExpression(e2.expression) && i__namespace.isIdentifier(e2.expression.expression) && e2.expression.expression.text === "JSON" && e2.expression.name.text === "parse")
391
+ e2.arguments.length > 0 && s2(e2.arguments[0]), t2.emit(n$1.JSON_PARSE);
392
+ else if (i__namespace.isPropertyAccessExpression(e2.expression) && i__namespace.isIdentifier(e2.expression.expression) && e2.expression.expression.text === "JSON" && e2.expression.name.text === "stringify")
393
+ e2.arguments.length > 0 ? s2(e2.arguments[0]) : t2.emit(n$1.PUSH_UNDEFINED), t2.emit(n$1.JSON_STRINGIFY);
394
+ else if (i__namespace.isIdentifier(e2.expression) && e2.expression.text === "CC")
395
+ e2.arguments.length > 0 && s2(e2.arguments[0]), t2.emit(n$1.CC);
396
+ else if (i__namespace.isPropertyAccessExpression(e2.expression)) {
401
397
  const r2 = e2.expression.name.text;
402
398
  if (r2 === "substring")
403
- s2(e2.expression.expression), e2.arguments.length > 0 ? s2(e2.arguments[0]) : t2.emit(i$1.PUSH, 0), e2.arguments.length > 1 && s2(e2.arguments[1]), t2.emit(i$1.STRING_SUBSTRING);
399
+ s2(e2.expression.expression), e2.arguments.length > 0 ? s2(e2.arguments[0]) : t2.emit(n$1.PUSH, 0), e2.arguments.length > 1 && s2(e2.arguments[1]), t2.emit(n$1.STRING_SUBSTRING);
404
400
  else if (r2 === "indexOf")
405
- s2(e2.expression.expression), e2.arguments.length > 0 ? s2(e2.arguments[0]) : t2.emit(i$1.PUSH, ""), t2.emit(i$1.STRING_INDEXOF);
401
+ s2(e2.expression.expression), e2.arguments.length > 0 ? s2(e2.arguments[0]) : t2.emit(n$1.PUSH, ""), t2.emit(n$1.STRING_INDEXOF);
406
402
  else if (r2 === "split")
407
- s2(e2.expression.expression), e2.arguments.length > 0 ? s2(e2.arguments[0]) : t2.emit(i$1.PUSH, ""), t2.emit(i$1.STRING_SPLIT);
403
+ s2(e2.expression.expression), e2.arguments.length > 0 ? s2(e2.arguments[0]) : t2.emit(n$1.PUSH, ""), t2.emit(n$1.STRING_SPLIT);
408
404
  else if (r2 === "slice")
409
- s2(e2.expression.expression), e2.arguments.length > 0 ? s2(e2.arguments[0]) : t2.emit(i$1.PUSH, 0), e2.arguments.length > 1 && s2(e2.arguments[1]), t2.emit(i$1.STRING_SLICE);
405
+ s2(e2.expression.expression), e2.arguments.length > 0 ? s2(e2.arguments[0]) : t2.emit(n$1.PUSH, 0), e2.arguments.length > 1 && s2(e2.arguments[1]), t2.emit(n$1.STRING_SLICE);
410
406
  else if (r2 === "charAt")
411
- s2(e2.expression.expression), e2.arguments.length > 0 ? s2(e2.arguments[0]) : t2.emit(i$1.PUSH, 0), t2.emit(i$1.STRING_CHARAT);
407
+ s2(e2.expression.expression), e2.arguments.length > 0 ? s2(e2.arguments[0]) : t2.emit(n$1.PUSH, 0), t2.emit(n$1.STRING_CHARAT);
412
408
  else if (r2 === "toUpperCase")
413
- s2(e2.expression.expression), t2.emit(i$1.STRING_TOUPPERCASE);
409
+ s2(e2.expression.expression), t2.emit(n$1.STRING_TOUPPERCASE);
414
410
  else if (r2 === "toLowerCase")
415
- s2(e2.expression.expression), t2.emit(i$1.STRING_TOLOWERCASE);
411
+ s2(e2.expression.expression), t2.emit(n$1.STRING_TOLOWERCASE);
412
+ else if (r2 === "toString")
413
+ s2(e2.expression.expression), t2.emit(n$1.TO_STRING);
416
414
  else
417
415
  throw new Error(`Method call '${r2}' is not supported`);
418
416
  } else
419
417
  throw new Error("Unsupported call expression");
420
418
  }, Q = (e2, t2, { compileExpression: s2 }) => {
421
- t2.emit(i$1.OBJECT_CREATE);
419
+ t2.emit(n$1.OBJECT_CREATE);
422
420
  for (const r2 of e2.properties)
423
- if (n__namespace.isPropertyAssignment(r2)) {
421
+ if (i__namespace.isPropertyAssignment(r2)) {
424
422
  let a2;
425
- if (n__namespace.isIdentifier(r2.name))
423
+ if (i__namespace.isIdentifier(r2.name))
426
424
  a2 = r2.name.text;
427
- else if (n__namespace.isStringLiteral(r2.name))
425
+ else if (i__namespace.isStringLiteral(r2.name))
428
426
  a2 = r2.name.text;
429
427
  else
430
428
  throw new Error("Computed property names are not supported");
431
- t2.emit(i$1.PUSH, a2), s2(r2.initializer), t2.emit(i$1.PROPERTY_SET);
432
- } else if (n__namespace.isShorthandPropertyAssignment(r2)) {
429
+ t2.emit(n$1.PUSH, a2), s2(r2.initializer), t2.emit(n$1.PROPERTY_SET);
430
+ } else if (i__namespace.isShorthandPropertyAssignment(r2)) {
433
431
  const a2 = r2.name.text;
434
- t2.emit(i$1.PUSH, a2), t2.emit(i$1.LOAD, a2), t2.emit(i$1.PROPERTY_SET);
432
+ t2.emit(n$1.PUSH, a2), t2.emit(n$1.LOAD, a2), t2.emit(n$1.PROPERTY_SET);
435
433
  } else
436
434
  throw new Error("Unsupported property type in object literal");
437
- }, v = {
438
- [n__namespace.SyntaxKind.StringLiteral]: d$1,
439
- [n__namespace.SyntaxKind.NumericLiteral]: K,
440
- [n__namespace.SyntaxKind.TrueKeyword]: b$2,
441
- [n__namespace.SyntaxKind.FalseKeyword]: F$1,
442
- [n__namespace.SyntaxKind.NullKeyword]: D$1,
443
- [n__namespace.SyntaxKind.Identifier]: G,
444
- [n__namespace.SyntaxKind.ArrayLiteralExpression]: H$1,
445
- [n__namespace.SyntaxKind.BinaryExpression]: B$1,
446
- [n__namespace.SyntaxKind.PrefixUnaryExpression]: Y$1,
447
- [n__namespace.SyntaxKind.PostfixUnaryExpression]: w$1,
448
- [n__namespace.SyntaxKind.CallExpression]: V$1,
449
- [n__namespace.SyntaxKind.PropertyAccessExpression]: J$1,
450
- [n__namespace.SyntaxKind.ElementAccessExpression]: C,
451
- [n__namespace.SyntaxKind.ConditionalExpression]: q$1,
452
- [n__namespace.SyntaxKind.TypeOfExpression]: O,
453
- [n__namespace.SyntaxKind.ParenthesizedExpression]: M$1,
454
- [n__namespace.SyntaxKind.ObjectLiteralExpression]: Q
435
+ }, j$2 = {
436
+ [i__namespace.SyntaxKind.StringLiteral]: K,
437
+ [i__namespace.SyntaxKind.NumericLiteral]: d$1,
438
+ [i__namespace.SyntaxKind.TrueKeyword]: b$2,
439
+ [i__namespace.SyntaxKind.FalseKeyword]: F$1,
440
+ [i__namespace.SyntaxKind.NullKeyword]: G,
441
+ [i__namespace.SyntaxKind.Identifier]: D$1,
442
+ [i__namespace.SyntaxKind.ArrayLiteralExpression]: H$1,
443
+ [i__namespace.SyntaxKind.BinaryExpression]: B$1,
444
+ [i__namespace.SyntaxKind.PrefixUnaryExpression]: C,
445
+ [i__namespace.SyntaxKind.PostfixUnaryExpression]: w$1,
446
+ [i__namespace.SyntaxKind.CallExpression]: V$1,
447
+ [i__namespace.SyntaxKind.PropertyAccessExpression]: J$1,
448
+ [i__namespace.SyntaxKind.ElementAccessExpression]: Y$1,
449
+ [i__namespace.SyntaxKind.ConditionalExpression]: q$1,
450
+ [i__namespace.SyntaxKind.TypeOfExpression]: O,
451
+ [i__namespace.SyntaxKind.ParenthesizedExpression]: M$1,
452
+ [i__namespace.SyntaxKind.ObjectLiteralExpression]: Q
455
453
  };
456
454
  function W$1(e2) {
457
455
  const t2 = R(e2);
@@ -461,27 +459,27 @@ function W$1(e2) {
461
459
  bytecode: [],
462
460
  errors: t2.errors
463
461
  };
464
- const s2 = new A$1(), r2 = n__namespace.createSourceFile("program.ts", e2, n__namespace.ScriptTarget.Latest, true), a2 = {
465
- compileStatement: m2,
466
- compileExpression: l2,
467
- reportError: (o2, c2) => {
468
- throw new Error(c2);
462
+ const s2 = new A$1(), r2 = i__namespace.createSourceFile("program.ts", e2, i__namespace.ScriptTarget.Latest, true), a2 = {
463
+ compileStatement: S2,
464
+ compileExpression: c2,
465
+ reportError: (o2, m2) => {
466
+ throw new Error(m2);
469
467
  }
470
468
  };
471
- function m2(o2) {
472
- const c2 = L$1[o2.kind];
473
- c2 && c2(o2, s2, a2);
469
+ function S2(o2) {
470
+ const m2 = L$1[o2.kind];
471
+ m2 && m2(o2, s2, a2);
474
472
  }
475
- function l2(o2) {
476
- const c2 = v[o2.kind];
477
- c2 && c2(o2, s2, a2);
473
+ function c2(o2) {
474
+ const m2 = j$2[o2.kind];
475
+ m2 && m2(o2, s2, a2);
478
476
  }
479
477
  return r2.forEachChild((o2) => {
480
- var c2;
481
- n__namespace.isFunctionDeclaration(o2) && ((c2 = o2.name) == null ? void 0 : c2.text) === "main" && o2.body && o2.body.statements.forEach((S) => {
482
- m2(S);
478
+ var m2;
479
+ i__namespace.isFunctionDeclaration(o2) && ((m2 = o2.name) == null ? void 0 : m2.text) === "main" && o2.body && o2.body.statements.forEach((l2) => {
480
+ S2(l2);
483
481
  });
484
- }), s2.emit(i$1.HALT), {
482
+ }), s2.emit(n$1.HALT), {
485
483
  success: true,
486
484
  bytecode: s2.getBytecode(),
487
485
  errors: []
@@ -693,7 +691,7 @@ var b = Object.defineProperty;
693
691
  var P = (e2, r2, t2) => r2 in e2 ? b(e2, r2, { enumerable: true, configurable: true, writable: true, value: t2 }) : e2[r2] = t2;
694
692
  var h2 = (e2, r2, t2) => P(e2, typeof r2 != "symbol" ? r2 + "" : r2, t2);
695
693
  const L = {
696
- [i$1.ADD]: {
694
+ [n$1.ADD]: {
697
695
  stackIn: 2,
698
696
  stackOut: 1,
699
697
  execute: (e2) => {
@@ -701,7 +699,7 @@ const L = {
701
699
  e2.stack.push(s2 + o2);
702
700
  }
703
701
  },
704
- [i$1.SUB]: {
702
+ [n$1.SUB]: {
705
703
  stackIn: 2,
706
704
  stackOut: 1,
707
705
  execute: (e2) => {
@@ -709,7 +707,7 @@ const L = {
709
707
  e2.stack.push(s2 - o2);
710
708
  }
711
709
  },
712
- [i$1.MUL]: {
710
+ [n$1.MUL]: {
713
711
  stackIn: 2,
714
712
  stackOut: 1,
715
713
  execute: (e2) => {
@@ -717,7 +715,7 @@ const L = {
717
715
  e2.stack.push(s2 * o2);
718
716
  }
719
717
  },
720
- [i$1.DIV]: {
718
+ [n$1.DIV]: {
721
719
  stackIn: 2,
722
720
  stackOut: 1,
723
721
  execute: (e2, r2) => {
@@ -732,7 +730,7 @@ const L = {
732
730
  e2.stack.push(o2 / n2);
733
731
  }
734
732
  },
735
- [i$1.MOD]: {
733
+ [n$1.MOD]: {
736
734
  stackIn: 2,
737
735
  stackOut: 1,
738
736
  execute: (e2) => {
@@ -740,7 +738,7 @@ const L = {
740
738
  e2.stack.push(s2 % o2);
741
739
  }
742
740
  },
743
- [i$1.UNARY_MINUS]: {
741
+ [n$1.UNARY_MINUS]: {
744
742
  stackIn: 1,
745
743
  stackOut: 1,
746
744
  execute: (e2) => {
@@ -748,7 +746,7 @@ const L = {
748
746
  e2.stack.push(-t2);
749
747
  }
750
748
  },
751
- [i$1.UNARY_PLUS]: {
749
+ [n$1.UNARY_PLUS]: {
752
750
  stackIn: 1,
753
751
  stackOut: 1,
754
752
  execute: (e2) => {
@@ -757,21 +755,21 @@ const L = {
757
755
  }
758
756
  }
759
757
  }, V = {
760
- [i$1.PUSH]: {
758
+ [n$1.PUSH]: {
761
759
  stackIn: 0,
762
760
  stackOut: 1,
763
761
  execute: (e2, r2) => {
764
762
  e2.stack.push(r2.arg);
765
763
  }
766
764
  },
767
- [i$1.PUSH_UNDEFINED]: {
765
+ [n$1.PUSH_UNDEFINED]: {
768
766
  stackIn: 0,
769
767
  stackOut: 1,
770
768
  execute: (e2) => {
771
769
  e2.stack.push(s$1());
772
770
  }
773
771
  },
774
- [i$1.POP]: {
772
+ [n$1.POP]: {
775
773
  stackIn: 1,
776
774
  stackOut: 0,
777
775
  execute: (e2) => {
@@ -779,7 +777,7 @@ const L = {
779
777
  }
780
778
  }
781
779
  }, M = {
782
- [i$1.PRINT]: {
780
+ [n$1.PRINT]: {
783
781
  stackIn: 1,
784
782
  stackOut: 0,
785
783
  execute: (e2) => {
@@ -787,7 +785,7 @@ const L = {
787
785
  r2 !== void 0 && e2.output.push(y(r2));
788
786
  }
789
787
  },
790
- [i$1.CC]: {
788
+ [n$1.CC]: {
791
789
  stackIn: 1,
792
790
  stackOut: 0,
793
791
  controlsPC: true,
@@ -798,7 +796,7 @@ const L = {
798
796
  }
799
797
  }
800
798
  }, j = {
801
- [i$1.HALT]: {
799
+ [n$1.HALT]: {
802
800
  stackIn: 0,
803
801
  stackOut: 0,
804
802
  controlsPC: true,
@@ -806,7 +804,7 @@ const L = {
806
804
  e2.status = "complete";
807
805
  }
808
806
  },
809
- [i$1.JUMP]: {
807
+ [n$1.JUMP]: {
810
808
  stackIn: 0,
811
809
  stackOut: 0,
812
810
  controlsPC: true,
@@ -829,7 +827,7 @@ const L = {
829
827
  e2.pc = t2;
830
828
  }
831
829
  },
832
- [i$1.JUMP_IF_FALSE]: {
830
+ [n$1.JUMP_IF_FALSE]: {
833
831
  stackIn: 1,
834
832
  stackOut: 0,
835
833
  controlsPC: true,
@@ -854,7 +852,7 @@ const L = {
854
852
  }
855
853
  }
856
854
  }, F = {
857
- [i$1.LOAD]: {
855
+ [n$1.LOAD]: {
858
856
  stackIn: 0,
859
857
  stackOut: 1,
860
858
  execute: (e2, r2) => {
@@ -862,7 +860,7 @@ const L = {
862
860
  e2.variables.has(t2) ? e2.stack.push(e2.variables.get(t2)) : e2.stack.push(s$1());
863
861
  }
864
862
  },
865
- [i$1.STORE]: {
863
+ [n$1.STORE]: {
866
864
  stackIn: 1,
867
865
  stackOut: 0,
868
866
  execute: (e2, r2) => {
@@ -871,7 +869,7 @@ const L = {
871
869
  }
872
870
  }
873
871
  }, D = {
874
- [i$1.ITER_START]: {
872
+ [n$1.ITER_START]: {
875
873
  stackIn: 1,
876
874
  stackOut: 0,
877
875
  execute: (e2, r2) => {
@@ -904,7 +902,7 @@ const L = {
904
902
  });
905
903
  }
906
904
  },
907
- [i$1.ITER_NEXT]: {
905
+ [n$1.ITER_NEXT]: {
908
906
  stackIn: 0,
909
907
  stackOut: 2,
910
908
  // Pushes element and hasMore flag
@@ -920,7 +918,7 @@ const L = {
920
918
  t2.index < t2.length ? (t2.index < t2.array.elements.length ? e2.stack.push(t2.array.elements[t2.index]) : e2.stack.push(s$1()), e2.stack.push(true), t2.index++) : (e2.stack.push(null), e2.stack.push(false));
921
919
  }
922
920
  },
923
- [i$1.ITER_END]: {
921
+ [n$1.ITER_END]: {
924
922
  stackIn: 0,
925
923
  stackOut: 0,
926
924
  execute: (e2, r2) => {
@@ -940,7 +938,7 @@ function g2(e2, r2, t2) {
940
938
  e2.stack.push(n2);
941
939
  }
942
940
  const q = {
943
- [i$1.EQ]: {
941
+ [n$1.EQ]: {
944
942
  stackIn: 2,
945
943
  stackOut: 1,
946
944
  execute: (e$1, r2) => g2(e$1, r2, (t2, s2) => {
@@ -954,7 +952,7 @@ const q = {
954
952
  }
955
953
  })
956
954
  },
957
- [i$1.NEQ]: {
955
+ [n$1.NEQ]: {
958
956
  stackIn: 2,
959
957
  stackOut: 1,
960
958
  execute: (e$1, r2) => g2(e$1, r2, (t2, s2) => {
@@ -968,7 +966,7 @@ const q = {
968
966
  }
969
967
  })
970
968
  },
971
- [i$1.LT]: {
969
+ [n$1.LT]: {
972
970
  stackIn: 2,
973
971
  stackOut: 1,
974
972
  execute: (e2, r2) => g2(e2, r2, (t2, s2) => {
@@ -976,7 +974,7 @@ const q = {
976
974
  return o2 < n2;
977
975
  })
978
976
  },
979
- [i$1.GT]: {
977
+ [n$1.GT]: {
980
978
  stackIn: 2,
981
979
  stackOut: 1,
982
980
  execute: (e2, r2) => g2(e2, r2, (t2, s2) => {
@@ -984,7 +982,7 @@ const q = {
984
982
  return o2 > n2;
985
983
  })
986
984
  },
987
- [i$1.LTE]: {
985
+ [n$1.LTE]: {
988
986
  stackIn: 2,
989
987
  stackOut: 1,
990
988
  execute: (e2, r2) => g2(e2, r2, (t2, s2) => {
@@ -992,7 +990,7 @@ const q = {
992
990
  return o2 <= n2;
993
991
  })
994
992
  },
995
- [i$1.GTE]: {
993
+ [n$1.GTE]: {
996
994
  stackIn: 2,
997
995
  stackOut: 1,
998
996
  execute: (e2, r2) => g2(e2, r2, (t2, s2) => {
@@ -1000,18 +998,18 @@ const q = {
1000
998
  return o2 >= n2;
1001
999
  })
1002
1000
  },
1003
- [i$1.EQ_STRICT]: {
1001
+ [n$1.EQ_STRICT]: {
1004
1002
  stackIn: 2,
1005
1003
  stackOut: 1,
1006
1004
  execute: (e2, r2) => g2(e2, r2, (t2, s2) => t2 === s2)
1007
1005
  },
1008
- [i$1.NEQ_STRICT]: {
1006
+ [n$1.NEQ_STRICT]: {
1009
1007
  stackIn: 2,
1010
1008
  stackOut: 1,
1011
1009
  execute: (e2, r2) => g2(e2, r2, (t2, s2) => t2 !== s2)
1012
1010
  }
1013
1011
  }, H = {
1014
- [i$1.AND]: {
1012
+ [n$1.AND]: {
1015
1013
  stackIn: 2,
1016
1014
  stackOut: 1,
1017
1015
  execute: (e2, r2) => {
@@ -1019,7 +1017,7 @@ const q = {
1019
1017
  e2.stack.push(o2);
1020
1018
  }
1021
1019
  },
1022
- [i$1.OR]: {
1020
+ [n$1.OR]: {
1023
1021
  stackIn: 2,
1024
1022
  stackOut: 1,
1025
1023
  execute: (e2, r2) => {
@@ -1027,7 +1025,7 @@ const q = {
1027
1025
  e2.stack.push(o2);
1028
1026
  }
1029
1027
  },
1030
- [i$1.NOT]: {
1028
+ [n$1.NOT]: {
1031
1029
  stackIn: 1,
1032
1030
  stackOut: 1,
1033
1031
  execute: (e2, r2) => {
@@ -1036,14 +1034,14 @@ const q = {
1036
1034
  }
1037
1035
  }
1038
1036
  }, Y = {
1039
- [i$1.ARRAY_NEW]: {
1037
+ [n$1.ARRAY_NEW]: {
1040
1038
  stackIn: 0,
1041
1039
  stackOut: 1,
1042
1040
  execute: (e2, r2) => {
1043
1041
  e2.stack.push(d());
1044
1042
  }
1045
1043
  },
1046
- [i$1.ARRAY_PUSH]: {
1044
+ [n$1.ARRAY_PUSH]: {
1047
1045
  stackIn: 2,
1048
1046
  stackOut: 1,
1049
1047
  execute: (e2, r2) => {
@@ -1058,7 +1056,7 @@ const q = {
1058
1056
  s2.elements.push(t2), e2.stack.push(s2);
1059
1057
  }
1060
1058
  },
1061
- [i$1.ARRAY_GET]: {
1059
+ [n$1.ARRAY_GET]: {
1062
1060
  stackIn: 2,
1063
1061
  stackOut: 1,
1064
1062
  execute: (e2, r2) => {
@@ -1095,7 +1093,7 @@ const q = {
1095
1093
  };
1096
1094
  }
1097
1095
  },
1098
- [i$1.ARRAY_SET]: {
1096
+ [n$1.ARRAY_SET]: {
1099
1097
  stackIn: 3,
1100
1098
  stackOut: 1,
1101
1099
  execute: (e2, r2) => {
@@ -1138,7 +1136,7 @@ const q = {
1138
1136
  };
1139
1137
  }
1140
1138
  },
1141
- [i$1.ARRAY_LEN]: {
1139
+ [n$1.ARRAY_LEN]: {
1142
1140
  stackIn: 1,
1143
1141
  stackOut: 1,
1144
1142
  execute: (e2, r2) => {
@@ -1175,7 +1173,7 @@ function x(e2) {
1175
1173
  }
1176
1174
  }
1177
1175
  const $ = {
1178
- [i$1.CONCAT]: {
1176
+ [n$1.CONCAT]: {
1179
1177
  stackIn: 2,
1180
1178
  stackOut: 1,
1181
1179
  execute: (e2, r2) => {
@@ -1183,7 +1181,7 @@ const $ = {
1183
1181
  e2.stack.push(y(s2) + y(t2));
1184
1182
  }
1185
1183
  },
1186
- [i$1.STRING_LEN]: {
1184
+ [n$1.STRING_LEN]: {
1187
1185
  stackIn: 1,
1188
1186
  stackOut: 1,
1189
1187
  execute: (e2, r2) => {
@@ -1198,7 +1196,7 @@ const $ = {
1198
1196
  e2.stack.push(t2.length);
1199
1197
  }
1200
1198
  },
1201
- [i$1.LENGTH]: {
1199
+ [n$1.LENGTH]: {
1202
1200
  stackIn: 1,
1203
1201
  stackOut: 1,
1204
1202
  execute: (e2, r2) => {
@@ -1216,7 +1214,7 @@ const $ = {
1216
1214
  };
1217
1215
  }
1218
1216
  },
1219
- [i$1.JSON_PARSE]: {
1217
+ [n$1.JSON_PARSE]: {
1220
1218
  stackIn: 1,
1221
1219
  stackOut: 1,
1222
1220
  execute: (e2, r2) => {
@@ -1236,7 +1234,7 @@ const $ = {
1236
1234
  }
1237
1235
  }
1238
1236
  },
1239
- [i$1.TYPEOF]: {
1237
+ [n$1.TYPEOF]: {
1240
1238
  stackIn: 1,
1241
1239
  stackOut: 1,
1242
1240
  execute: (e2, r2) => {
@@ -1245,7 +1243,7 @@ const $ = {
1245
1243
  }
1246
1244
  }
1247
1245
  }, B = {
1248
- [i$1.INC]: {
1246
+ [n$1.INC]: {
1249
1247
  stackIn: 1,
1250
1248
  stackOut: 1,
1251
1249
  execute: (e2, r2) => {
@@ -1263,7 +1261,7 @@ const $ = {
1263
1261
  e2.stack.push(n2 ? m(s2) : o2);
1264
1262
  }
1265
1263
  },
1266
- [i$1.DEC]: {
1264
+ [n$1.DEC]: {
1267
1265
  stackIn: 1,
1268
1266
  stackOut: 1,
1269
1267
  execute: (e2, r2) => {
@@ -1282,7 +1280,7 @@ const $ = {
1282
1280
  }
1283
1281
  }
1284
1282
  }, J = {
1285
- [i$1.RETURN]: {
1283
+ [n$1.RETURN]: {
1286
1284
  stackIn: 0,
1287
1285
  stackOut: 0,
1288
1286
  controlsPC: true,
@@ -1291,7 +1289,7 @@ const $ = {
1291
1289
  e2.returnValue = t2, e2.status = "complete";
1292
1290
  }
1293
1291
  },
1294
- [i$1.BREAK]: {
1292
+ [n$1.BREAK]: {
1295
1293
  stackIn: 0,
1296
1294
  stackOut: 0,
1297
1295
  controlsPC: true,
@@ -1314,7 +1312,7 @@ const $ = {
1314
1312
  e2.pc = t2;
1315
1313
  }
1316
1314
  },
1317
- [i$1.CONTINUE]: {
1315
+ [n$1.CONTINUE]: {
1318
1316
  stackIn: 0,
1319
1317
  stackOut: 0,
1320
1318
  controlsPC: true,
@@ -1337,7 +1335,7 @@ const $ = {
1337
1335
  e2.pc = t2;
1338
1336
  }
1339
1337
  },
1340
- [i$1.FS_LIST_FILES]: {
1338
+ [n$1.FS_LIST_FILES]: {
1341
1339
  stackIn: 1,
1342
1340
  // Minimum 1 argument (path), optionally 2 (path + options)
1343
1341
  stackOut: 0,
@@ -1367,7 +1365,7 @@ const $ = {
1367
1365
  }
1368
1366
  },
1369
1367
  // String method handlers
1370
- [i$1.STRING_SUBSTRING]: {
1368
+ [n$1.STRING_SUBSTRING]: {
1371
1369
  stackIn: 2,
1372
1370
  // Minimum 2 (string, start), optionally 3 (string, start, end)
1373
1371
  stackOut: 1,
@@ -1402,7 +1400,7 @@ const $ = {
1402
1400
  e2.stack.push(I2);
1403
1401
  }
1404
1402
  },
1405
- [i$1.STRING_INDEXOF]: {
1403
+ [n$1.STRING_INDEXOF]: {
1406
1404
  stackIn: 2,
1407
1405
  stackOut: 1,
1408
1406
  execute: (e2, r2) => {
@@ -1417,7 +1415,7 @@ const $ = {
1417
1415
  e2.stack.push(s2.indexOf(t2));
1418
1416
  }
1419
1417
  },
1420
- [i$1.STRING_SPLIT]: {
1418
+ [n$1.STRING_SPLIT]: {
1421
1419
  stackIn: 2,
1422
1420
  stackOut: 1,
1423
1421
  execute: (e2, r2) => {
@@ -1433,7 +1431,7 @@ const $ = {
1433
1431
  t2 === "" ? o2 = s2.split("") : o2 = s2.split(t2), e2.stack.push(d(o2));
1434
1432
  }
1435
1433
  },
1436
- [i$1.STRING_SLICE]: {
1434
+ [n$1.STRING_SLICE]: {
1437
1435
  stackIn: 2,
1438
1436
  // Minimum 2 (string, start), optionally 3 (string, start, end)
1439
1437
  stackOut: 1,
@@ -1466,7 +1464,7 @@ const $ = {
1466
1464
  e2.stack.push(u2);
1467
1465
  }
1468
1466
  },
1469
- [i$1.STRING_CHARAT]: {
1467
+ [n$1.STRING_CHARAT]: {
1470
1468
  stackIn: 2,
1471
1469
  stackOut: 1,
1472
1470
  execute: (e2, r2) => {
@@ -1489,7 +1487,7 @@ const $ = {
1489
1487
  e2.stack.push(o2);
1490
1488
  }
1491
1489
  },
1492
- [i$1.STRING_TOUPPERCASE]: {
1490
+ [n$1.STRING_TOUPPERCASE]: {
1493
1491
  stackIn: 1,
1494
1492
  stackOut: 1,
1495
1493
  execute: (e2, r2) => {
@@ -1504,7 +1502,7 @@ const $ = {
1504
1502
  e2.stack.push(t2.toUpperCase());
1505
1503
  }
1506
1504
  },
1507
- [i$1.STRING_TOLOWERCASE]: {
1505
+ [n$1.STRING_TOLOWERCASE]: {
1508
1506
  stackIn: 1,
1509
1507
  stackOut: 1,
1510
1508
  execute: (e2, r2) => {
@@ -1518,29 +1516,45 @@ const $ = {
1518
1516
  };
1519
1517
  e2.stack.push(t2.toLowerCase());
1520
1518
  }
1519
+ },
1520
+ [n$1.TO_STRING]: {
1521
+ stackIn: 1,
1522
+ stackOut: 1,
1523
+ execute: (e2, r2) => {
1524
+ const t2 = e2.stack.pop();
1525
+ if (t2 === void 0)
1526
+ return {
1527
+ type: "StackUnderflow",
1528
+ message: "TO_STRING: Stack underflow",
1529
+ pc: e2.pc,
1530
+ opcode: r2.op
1531
+ };
1532
+ const s2 = y(t2);
1533
+ e2.stack.push(s2);
1534
+ }
1521
1535
  }
1522
1536
  };
1523
- function _(e2) {
1537
+ function S(e2) {
1524
1538
  if (f(e2))
1525
- return e2.elements.map(_);
1539
+ return e2.elements.map(S);
1526
1540
  if (c$1(e2)) {
1527
1541
  const r2 = {};
1528
1542
  for (const [t2, s2] of Object.entries(e2.properties))
1529
- r2[t2] = _(s2);
1543
+ r2[t2] = S(s2);
1530
1544
  return r2;
1531
1545
  }
1532
1546
  if (!o(e2))
1533
1547
  return e2;
1534
1548
  }
1535
1549
  const W = {
1536
- [i$1.OBJECT_CREATE]: {
1550
+ [n$1.OBJECT_CREATE]: {
1537
1551
  stackIn: 0,
1538
1552
  stackOut: 1,
1539
1553
  execute: (e2) => {
1540
1554
  e2.stack.push(j$1());
1541
1555
  }
1542
1556
  },
1543
- [i$1.PROPERTY_SET]: {
1557
+ [n$1.PROPERTY_SET]: {
1544
1558
  stackIn: 3,
1545
1559
  stackOut: 1,
1546
1560
  execute: (e2, r2) => {
@@ -1562,7 +1576,7 @@ const W = {
1562
1576
  o2.properties[s2] = t2, e2.stack.push(o2);
1563
1577
  }
1564
1578
  },
1565
- [i$1.PROPERTY_GET]: {
1579
+ [n$1.PROPERTY_GET]: {
1566
1580
  stackIn: 2,
1567
1581
  stackOut: 1,
1568
1582
  execute: (e$1, r2) => {
@@ -1582,11 +1596,11 @@ const W = {
1582
1596
  e$1.stack.push(o$1 ?? s$1());
1583
1597
  }
1584
1598
  },
1585
- [i$1.JSON_STRINGIFY]: {
1599
+ [n$1.JSON_STRINGIFY]: {
1586
1600
  stackIn: 1,
1587
1601
  stackOut: 1,
1588
1602
  execute: (e2) => {
1589
- const r2 = e2.stack.pop(), t2 = _(r2);
1603
+ const r2 = e2.stack.pop(), t2 = S(r2);
1590
1604
  e2.stack.push(JSON.stringify(t2));
1591
1605
  }
1592
1606
  }
@@ -1610,7 +1624,7 @@ class N {
1610
1624
  if (s2.stack.length < r2.stackIn)
1611
1625
  return {
1612
1626
  type: "StackUnderflow",
1613
- message: `${i$1[t2.op]}: Stack underflow`,
1627
+ message: `${n$1[t2.op]}: Stack underflow`,
1614
1628
  pc: s2.pc,
1615
1629
  opcode: t2.op
1616
1630
  };
@@ -1633,9 +1647,9 @@ class N {
1633
1647
  s2.status = "error", s2.error = a2.message;
1634
1648
  break;
1635
1649
  }
1636
- if ((o2.op === i$1.JUMP || o2.op === i$1.JUMP_IF_FALSE || o2.op === i$1.BREAK || o2.op === i$1.CONTINUE) && o2.arg !== void 0 && o2.arg >= r2.length) {
1650
+ if ((o2.op === n$1.JUMP || o2.op === n$1.JUMP_IF_FALSE || o2.op === n$1.BREAK || o2.op === n$1.CONTINUE) && o2.arg !== void 0 && o2.arg >= r2.length) {
1637
1651
  s2.status = "error";
1638
- const u2 = o2.op === i$1.JUMP || o2.op === i$1.JUMP_IF_FALSE ? "jump" : o2.op === i$1.BREAK ? "break" : "continue";
1652
+ const u2 = o2.op === n$1.JUMP || o2.op === n$1.JUMP_IF_FALSE ? "jump" : o2.op === n$1.BREAK ? "break" : "continue";
1639
1653
  s2.error = `Invalid ${u2} target: ${o2.arg}`;
1640
1654
  break;
1641
1655
  }
@@ -1647,7 +1661,7 @@ class N {
1647
1661
  n2.controlsPC || s2.pc++;
1648
1662
  continue;
1649
1663
  }
1650
- s2.status = "error", s2.error = `Unknown opcode: ${i$1[o2.op]}`;
1664
+ s2.status = "error", s2.error = `Unknown opcode: ${n$1[o2.op]}`;
1651
1665
  break;
1652
1666
  }
1653
1667
  return s2;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cvm-server",
3
- "version": "0.9.1",
3
+ "version": "0.9.2",
4
4
  "description": "Cognitive Virtual Machine (CVM) - A deterministic bytecode VM with AI cognitive operations",
5
5
  "keywords": [
6
6
  "mcp",