@lewin671/python-vm 0.1.2 → 0.1.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.
Files changed (119) hide show
  1. package/README.md +58 -56
  2. package/README_zh-CN.md +58 -57
  3. package/dist/common/string-token.d.ts +5 -0
  4. package/dist/common/string-token.d.ts.map +1 -0
  5. package/dist/common/string-token.js +23 -0
  6. package/dist/common/string-token.js.map +1 -0
  7. package/dist/compiler/cfg_builder.d.ts +48 -0
  8. package/dist/compiler/cfg_builder.d.ts.map +1 -0
  9. package/dist/compiler/cfg_builder.js +1462 -0
  10. package/dist/compiler/cfg_builder.js.map +1 -0
  11. package/dist/compiler/compiler.d.ts.map +1 -0
  12. package/dist/compiler/compiler.js +27 -0
  13. package/dist/compiler/compiler.js.map +1 -0
  14. package/dist/compiler/index.d.ts.map +1 -0
  15. package/dist/compiler/index.js.map +1 -0
  16. package/dist/compiler/linearizer.d.ts +7 -0
  17. package/dist/compiler/linearizer.d.ts.map +1 -0
  18. package/dist/compiler/linearizer.js +112 -0
  19. package/dist/compiler/linearizer.js.map +1 -0
  20. package/dist/compiler/serializer.d.ts +17 -0
  21. package/dist/compiler/serializer.d.ts.map +1 -0
  22. package/dist/compiler/serializer.js +70 -0
  23. package/dist/compiler/serializer.js.map +1 -0
  24. package/dist/index.d.ts +1 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +58 -8
  27. package/dist/index.js.map +1 -1
  28. package/dist/lexer/lexer.d.ts.map +1 -1
  29. package/dist/lexer/lexer.js +25 -11
  30. package/dist/lexer/lexer.js.map +1 -1
  31. package/dist/parser/expressions.d.ts.map +1 -1
  32. package/dist/parser/expressions.js +5 -2
  33. package/dist/parser/expressions.js.map +1 -1
  34. package/dist/parser/parser.js +3 -3
  35. package/dist/parser/parser.js.map +1 -1
  36. package/dist/parser/statements.d.ts.map +1 -1
  37. package/dist/parser/statements.js +60 -22
  38. package/dist/parser/statements.js.map +1 -1
  39. package/dist/python_compiler.d.ts +32 -0
  40. package/dist/python_compiler.d.ts.map +1 -0
  41. package/dist/{compiler.js → python_compiler.js} +19 -6
  42. package/dist/python_compiler.js.map +1 -0
  43. package/dist/types/ast.d.ts +286 -44
  44. package/dist/types/ast.d.ts.map +1 -1
  45. package/dist/types/ast.js +43 -36
  46. package/dist/types/ast.js.map +1 -1
  47. package/dist/types/bytecode.d.ts +106 -21
  48. package/dist/types/bytecode.d.ts.map +1 -1
  49. package/dist/types/bytecode.js +111 -23
  50. package/dist/types/bytecode.js.map +1 -1
  51. package/dist/types/cfg.d.ts +20 -0
  52. package/dist/types/cfg.d.ts.map +1 -0
  53. package/dist/types/cfg.js +3 -0
  54. package/dist/types/cfg.js.map +1 -0
  55. package/dist/types/index.d.ts +1 -0
  56. package/dist/types/index.d.ts.map +1 -1
  57. package/dist/types/index.js +1 -0
  58. package/dist/types/index.js.map +1 -1
  59. package/dist/vm/builtins.d.ts.map +1 -1
  60. package/dist/vm/builtins.js +23 -7
  61. package/dist/vm/builtins.js.map +1 -1
  62. package/dist/vm/callable.d.ts +6 -6
  63. package/dist/vm/callable.d.ts.map +1 -1
  64. package/dist/vm/callable.js +28 -7
  65. package/dist/vm/callable.js.map +1 -1
  66. package/dist/vm/execution-helpers.d.ts +17 -0
  67. package/dist/vm/execution-helpers.d.ts.map +1 -0
  68. package/dist/vm/execution-helpers.js +334 -0
  69. package/dist/vm/execution-helpers.js.map +1 -0
  70. package/dist/vm/execution.d.ts +4 -12
  71. package/dist/vm/execution.d.ts.map +1 -1
  72. package/dist/vm/execution.js +764 -255
  73. package/dist/vm/execution.js.map +1 -1
  74. package/dist/vm/expression-generator.d.ts +3 -1
  75. package/dist/vm/expression-generator.d.ts.map +1 -1
  76. package/dist/vm/expression-generator.js.map +1 -1
  77. package/dist/vm/expressions.d.ts +6 -6
  78. package/dist/vm/expressions.d.ts.map +1 -1
  79. package/dist/vm/expressions.js +29 -54
  80. package/dist/vm/expressions.js.map +1 -1
  81. package/dist/vm/imports.d.ts +4 -4
  82. package/dist/vm/imports.d.ts.map +1 -1
  83. package/dist/vm/imports.js.map +1 -1
  84. package/dist/vm/operations.d.ts +11 -10
  85. package/dist/vm/operations.d.ts.map +1 -1
  86. package/dist/vm/operations.js +83 -22
  87. package/dist/vm/operations.js.map +1 -1
  88. package/dist/vm/runtime-types.d.ts +64 -26
  89. package/dist/vm/runtime-types.d.ts.map +1 -1
  90. package/dist/vm/runtime-types.js +166 -19
  91. package/dist/vm/runtime-types.js.map +1 -1
  92. package/dist/vm/statements.d.ts +5 -5
  93. package/dist/vm/statements.d.ts.map +1 -1
  94. package/dist/vm/statements.js +95 -10
  95. package/dist/vm/statements.js.map +1 -1
  96. package/dist/vm/truthy.d.ts +2 -2
  97. package/dist/vm/truthy.d.ts.map +1 -1
  98. package/dist/vm/truthy.js +1 -1
  99. package/dist/vm/truthy.js.map +1 -1
  100. package/dist/vm/value-utils.d.ts +23 -25
  101. package/dist/vm/value-utils.d.ts.map +1 -1
  102. package/dist/vm/value-utils.js +216 -47
  103. package/dist/vm/value-utils.js.map +1 -1
  104. package/dist/vm/vm.d.ts +7 -3
  105. package/dist/vm/vm.d.ts.map +1 -1
  106. package/dist/vm/vm.js +3 -0
  107. package/dist/vm/vm.js.map +1 -1
  108. package/package.json +3 -3
  109. package/dist/compiler.d.ts +0 -20
  110. package/dist/compiler.d.ts.map +0 -1
  111. package/dist/compiler.js.map +0 -1
  112. package/dist/compiler_module/compiler.d.ts.map +0 -1
  113. package/dist/compiler_module/compiler.js +0 -22
  114. package/dist/compiler_module/compiler.js.map +0 -1
  115. package/dist/compiler_module/index.d.ts.map +0 -1
  116. package/dist/compiler_module/index.js.map +0 -1
  117. /package/dist/{compiler_module → compiler}/compiler.d.ts +0 -0
  118. /package/dist/{compiler_module → compiler}/index.d.ts +0 -0
  119. /package/dist/{compiler_module → compiler}/index.js +0 -0
@@ -0,0 +1,334 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyCompare = applyCompare;
4
+ exports.iterableToArray = iterableToArray;
5
+ exports.matchValueEquals = matchValueEquals;
6
+ exports.applyBindings = applyBindings;
7
+ exports.matchPattern = matchPattern;
8
+ exports.evaluateExpression = evaluateExpression;
9
+ exports.executeStatement = executeStatement;
10
+ exports.executeBlockGenerator = executeBlockGenerator;
11
+ exports.executeStatementGenerator = executeStatementGenerator;
12
+ exports.executeBlock = executeBlock;
13
+ const types_1 = require("../types");
14
+ const runtime_types_1 = require("./runtime-types");
15
+ const value_utils_1 = require("./value-utils");
16
+ function applyCompare(op, a, b) {
17
+ switch (op) {
18
+ case types_1.CompareOp.EQ:
19
+ return (0, value_utils_1.numericEquals)(a, b);
20
+ case types_1.CompareOp.NE:
21
+ return !(0, value_utils_1.numericEquals)(a, b);
22
+ case types_1.CompareOp.LT:
23
+ return a < b;
24
+ case types_1.CompareOp.LE:
25
+ return a <= b;
26
+ case types_1.CompareOp.GT:
27
+ return a > b;
28
+ case types_1.CompareOp.GE:
29
+ return a >= b;
30
+ case types_1.CompareOp.IS:
31
+ return a === b;
32
+ case types_1.CompareOp.IS_NOT:
33
+ return a !== b;
34
+ case types_1.CompareOp.IN:
35
+ return this.contains(b, a);
36
+ case types_1.CompareOp.NOT_IN:
37
+ return !this.contains(b, a);
38
+ default:
39
+ return false;
40
+ }
41
+ }
42
+ function iterableToArray(iterable) {
43
+ if (iterable instanceof runtime_types_1.PyDict)
44
+ return Array.from(iterable.keys());
45
+ if (iterable instanceof runtime_types_1.PySet)
46
+ return Array.from(iterable.values());
47
+ if (Array.isArray(iterable))
48
+ return iterable;
49
+ if (iterable && typeof iterable[Symbol.iterator] === 'function')
50
+ return Array.from(iterable);
51
+ throw new Error('Object is not iterable');
52
+ }
53
+ function matchValueEquals(left, right) {
54
+ if (Array.isArray(left) && Array.isArray(right)) {
55
+ if (left.length !== right.length)
56
+ return false;
57
+ for (let i = 0; i < left.length; i++) {
58
+ if (!matchValueEquals(left[i], right[i]))
59
+ return false;
60
+ }
61
+ return true;
62
+ }
63
+ if (left instanceof Map && right instanceof Map) {
64
+ if (left.size !== right.size)
65
+ return false;
66
+ for (const [k, v] of left.entries()) {
67
+ if (!right.has(k) || !matchValueEquals(v, right.get(k)))
68
+ return false;
69
+ }
70
+ return true;
71
+ }
72
+ return left === right;
73
+ }
74
+ function applyBindings(bindings, scope) {
75
+ for (const [name, value] of bindings.entries()) {
76
+ scope.set(name, value);
77
+ }
78
+ }
79
+ function matchPattern(node, value, scope) {
80
+ switch (node.type) {
81
+ case types_1.ASTNodeType.MATCH_PATTERN_WILDCARD:
82
+ return { matched: true, bindings: new Map() };
83
+ case types_1.ASTNodeType.MATCH_PATTERN_CAPTURE: {
84
+ const bindings = new Map();
85
+ bindings.set(node.name, value);
86
+ return { matched: true, bindings };
87
+ }
88
+ case types_1.ASTNodeType.MATCH_PATTERN_VALUE: {
89
+ const expected = this.evaluateExpression(node.value, scope);
90
+ return { matched: matchValueEquals(value, expected), bindings: new Map() };
91
+ }
92
+ case types_1.ASTNodeType.MATCH_PATTERN_SEQUENCE: {
93
+ if (!Array.isArray(value))
94
+ return { matched: false, bindings: new Map() };
95
+ if (value.length !== node.elements.length)
96
+ return { matched: false, bindings: new Map() };
97
+ const bindings = new Map();
98
+ for (let i = 0; i < node.elements.length; i++) {
99
+ const result = this.matchPattern(node.elements[i], value[i], scope);
100
+ if (!result.matched)
101
+ return { matched: false, bindings: new Map() };
102
+ for (const [key, val] of result.bindings.entries()) {
103
+ bindings.set(key, val);
104
+ }
105
+ }
106
+ return { matched: true, bindings };
107
+ }
108
+ case types_1.ASTNodeType.MATCH_PATTERN_OR: {
109
+ for (const pattern of node.patterns) {
110
+ const result = this.matchPattern(pattern, value, scope);
111
+ if (result.matched)
112
+ return result;
113
+ }
114
+ return { matched: false, bindings: new Map() };
115
+ }
116
+ default:
117
+ throw new Error(`Unsupported match pattern: ${node.type}`);
118
+ }
119
+ }
120
+ function evaluateExpression(_node, _scope) {
121
+ throw new Error('evaluateExpression is deprecated, use bytecode');
122
+ }
123
+ function executeStatement(_node, _scope) {
124
+ throw new Error('executeStatement is deprecated, use bytecode');
125
+ }
126
+ function* executeBlockGenerator(body, scope) {
127
+ for (const stmt of body) {
128
+ yield* this.executeStatementGenerator(stmt, scope);
129
+ }
130
+ return null;
131
+ }
132
+ function* executeStatementGenerator(node, scope) {
133
+ const isSubclass = (klass, target) => {
134
+ if (klass === target)
135
+ return true;
136
+ return klass.bases.some((b) => isSubclass(b, target));
137
+ };
138
+ const normalizeThrown = (err) => {
139
+ if (err instanceof runtime_types_1.PyInstance && err.klass.isException)
140
+ return err;
141
+ if (err instanceof runtime_types_1.PyClass && err.isException)
142
+ return new runtime_types_1.PyInstance(err);
143
+ if (err instanceof runtime_types_1.PyException) {
144
+ try {
145
+ const klass = scope.get(err.pyType);
146
+ if (klass instanceof runtime_types_1.PyClass) {
147
+ const inst = new runtime_types_1.PyInstance(klass);
148
+ if (err.message)
149
+ inst.attributes.set('message', err.message);
150
+ return inst;
151
+ }
152
+ }
153
+ catch {
154
+ // ignore
155
+ }
156
+ }
157
+ return err;
158
+ };
159
+ const matches = (expected, thrown) => {
160
+ if (!expected)
161
+ return true;
162
+ const norm = normalizeThrown(thrown);
163
+ if (expected instanceof runtime_types_1.PyInstance && expected.klass.isException) {
164
+ expected = expected.klass;
165
+ }
166
+ if (expected instanceof runtime_types_1.PyClass && expected.isException) {
167
+ if (norm instanceof runtime_types_1.PyInstance && norm.klass.isException) {
168
+ return isSubclass(norm.klass, expected);
169
+ }
170
+ if (norm instanceof runtime_types_1.PyClass && norm.isException) {
171
+ return isSubclass(norm, expected);
172
+ }
173
+ return false;
174
+ }
175
+ return false;
176
+ };
177
+ switch (node.type) {
178
+ case types_1.ASTNodeType.EXPRESSION_STATEMENT: {
179
+ const expr = node.expression;
180
+ if (expr && expr.type === types_1.ASTNodeType.YIELD) {
181
+ const value = expr.value ? this.evaluateExpression(expr.value, scope) : null;
182
+ yield value;
183
+ return;
184
+ }
185
+ if (expr) {
186
+ this.evaluateExpression(expr, scope);
187
+ }
188
+ return;
189
+ }
190
+ case types_1.ASTNodeType.ASSIGNMENT: {
191
+ if (node.value && node.value.type === types_1.ASTNodeType.YIELD) {
192
+ const yielded = node.value.value ? this.evaluateExpression(node.value.value, scope) : null;
193
+ const sentRaw = yield yielded;
194
+ const sent = sentRaw === undefined ? null : sentRaw;
195
+ for (const target of node.targets || []) {
196
+ this.assignTarget(target, sent, scope);
197
+ }
198
+ return;
199
+ }
200
+ const value = this.evaluateExpression(node.value, scope);
201
+ for (const target of node.targets || []) {
202
+ this.assignTarget(target, value, scope);
203
+ }
204
+ return;
205
+ }
206
+ case types_1.ASTNodeType.AUG_ASSIGNMENT: {
207
+ const current = this.evaluateExpression(node.target, scope);
208
+ const right = this.evaluateExpression(node.value, scope);
209
+ // Strip the '=' from the operator ('+=' -> '+')
210
+ const result = this.applyInPlaceBinary(node.operator.slice(0, -1), current, right);
211
+ this.assignTarget(node.target, result, scope);
212
+ return;
213
+ }
214
+ case types_1.ASTNodeType.IF_STATEMENT: {
215
+ const test = this.isTruthy(this.evaluateExpression(node.test, scope), scope);
216
+ if (test) {
217
+ yield* this.executeBlockGenerator(node.body || [], scope);
218
+ }
219
+ else {
220
+ yield* this.executeBlockGenerator(node.orelse || [], scope);
221
+ }
222
+ return;
223
+ }
224
+ case types_1.ASTNodeType.WHILE_STATEMENT: {
225
+ let broke = false;
226
+ while (this.isTruthy(this.evaluateExpression(node.test, scope), scope)) {
227
+ try {
228
+ yield* this.executeBlockGenerator(node.body || [], scope);
229
+ }
230
+ catch (err) {
231
+ if (err instanceof runtime_types_1.ContinueSignal)
232
+ continue;
233
+ if (err instanceof runtime_types_1.BreakSignal) {
234
+ broke = true;
235
+ break;
236
+ }
237
+ throw err;
238
+ }
239
+ }
240
+ if (!broke && node.orelse && node.orelse.length) {
241
+ yield* this.executeBlockGenerator(node.orelse, scope);
242
+ }
243
+ return;
244
+ }
245
+ case types_1.ASTNodeType.FOR_STATEMENT: {
246
+ const iterable = this.evaluateExpression(node.iter, scope);
247
+ if (!iterable || typeof iterable[Symbol.iterator] !== 'function') {
248
+ throw new runtime_types_1.PyException('TypeError', `'${typeof iterable}' object is not iterable`);
249
+ }
250
+ const it = iterable[Symbol.iterator]();
251
+ let broke = false;
252
+ while (true) {
253
+ const next = it.next();
254
+ if (next.done)
255
+ break;
256
+ this.assignTarget(node.target, next.value, scope);
257
+ try {
258
+ yield* this.executeBlockGenerator(node.body || [], scope);
259
+ }
260
+ catch (err) {
261
+ if (err instanceof runtime_types_1.ContinueSignal)
262
+ continue;
263
+ if (err instanceof runtime_types_1.BreakSignal) {
264
+ broke = true;
265
+ break;
266
+ }
267
+ throw err;
268
+ }
269
+ }
270
+ if (!broke && node.orelse && node.orelse.length) {
271
+ yield* this.executeBlockGenerator(node.orelse, scope);
272
+ }
273
+ return;
274
+ }
275
+ case types_1.ASTNodeType.BREAK_STATEMENT:
276
+ throw new runtime_types_1.BreakSignal();
277
+ case types_1.ASTNodeType.CONTINUE_STATEMENT:
278
+ throw new runtime_types_1.ContinueSignal();
279
+ case types_1.ASTNodeType.RETURN_STATEMENT: {
280
+ throw new runtime_types_1.ReturnSignal(node.value ? this.evaluateExpression(node.value, scope) : null);
281
+ }
282
+ case types_1.ASTNodeType.TRY_STATEMENT: {
283
+ let raised = false;
284
+ try {
285
+ yield* this.executeBlockGenerator(node.body || [], scope);
286
+ }
287
+ catch (err) {
288
+ raised = true;
289
+ let handled = false;
290
+ const normalized = normalizeThrown(err);
291
+ for (const handler of node.handlers || []) {
292
+ if (!handler.exceptionType) {
293
+ handled = true;
294
+ }
295
+ else {
296
+ const expected = this.evaluateExpression(handler.exceptionType, scope);
297
+ handled = matches(expected, normalized);
298
+ }
299
+ if (handled) {
300
+ if (handler.name) {
301
+ scope.set(handler.name, normalized);
302
+ }
303
+ yield* this.executeBlockGenerator(handler.body || [], scope);
304
+ break;
305
+ }
306
+ }
307
+ if (!handled)
308
+ throw err;
309
+ }
310
+ finally {
311
+ if (node.finalbody && node.finalbody.length) {
312
+ yield* this.executeBlockGenerator(node.finalbody, scope);
313
+ }
314
+ }
315
+ if (!raised && node.orelse && node.orelse.length) {
316
+ yield* this.executeBlockGenerator(node.orelse, scope);
317
+ }
318
+ return;
319
+ }
320
+ default: {
321
+ // Fallback to the non-generator statement executor for anything else.
322
+ this.executeStatement(node, scope);
323
+ return;
324
+ }
325
+ }
326
+ }
327
+ function executeBlock(_body, _scope) {
328
+ let last = null;
329
+ for (const stmt of _body) {
330
+ last = this.executeStatement(stmt, _scope);
331
+ }
332
+ return last;
333
+ }
334
+ //# sourceMappingURL=execution-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-helpers.js","sourceRoot":"","sources":["../../src/vm/execution-helpers.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,7 @@
1
1
  import type { VirtualMachine } from './vm';
2
2
  import { ByteCode } from '../types';
3
- import { Scope } from './runtime-types';
4
- export declare function execute(this: VirtualMachine, bytecode: ByteCode): any;
5
- export declare function executeBlock(this: VirtualMachine, body: any[], scope: Scope): any;
6
- export declare function iterableToArray(this: VirtualMachine, iterable: any): any[];
7
- export declare function matchValueEquals(left: any, right: any): boolean;
8
- export declare function matchPattern(this: VirtualMachine, node: any, value: any, scope: Scope): {
9
- matched: boolean;
10
- bindings: Map<string, any>;
11
- };
12
- export declare function applyBindings(bindings: Map<string, any>, scope: Scope): void;
13
- export declare function executeBlockGenerator(this: VirtualMachine, body: any[], scope: Scope): Generator<any, any, any>;
14
- export declare function executeStatementGenerator(this: VirtualMachine, node: any, scope: Scope): Generator<any, any, any>;
3
+ import { PyValue, Frame } from './runtime-types';
4
+ export declare function execute(this: VirtualMachine, bytecode: ByteCode): PyValue;
5
+ export declare function executeFrame(this: VirtualMachine, frame: Frame): PyValue;
6
+ export { applyCompare, iterableToArray, matchValueEquals, applyBindings, matchPattern, evaluateExpression, executeStatement, executeBlockGenerator, executeStatementGenerator, executeBlock, } from './execution-helpers';
15
7
  //# sourceMappingURL=execution.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/vm/execution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAe,MAAM,UAAU,CAAC;AACjD,OAAO,EAA6C,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGnF,wBAAgB,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG,CAQrE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,GAAG,CAMjF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG,EAAE,CAM1E;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAgB/D;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAAE,CA0ExI;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAI5E;AAED,wBAAiB,qBAAqB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAKhH;AAED,wBAAiB,yBAAyB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAgHlH"}
1
+ {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../src/vm/execution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAkC,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,OAAO,EAAsE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAErH,wBAAgB,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAMzE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CA+zBxE;AAED,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,YAAY,GACb,MAAM,qBAAqB,CAAC"}