@ibyar/expressions 1.0.0 → 1.2.0
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/README.md +48 -1
- package/api/abstract.js.map +1 -1
- package/api/class/class.js +143 -93
- package/api/class/class.js.map +1 -1
- package/api/class/decorator.js +8 -3
- package/api/class/decorator.js.map +1 -1
- package/api/computing/call.js +8 -3
- package/api/computing/call.js.map +1 -1
- package/api/computing/debugger.js +8 -3
- package/api/computing/debugger.js.map +1 -1
- package/api/computing/new.js +8 -3
- package/api/computing/new.js.map +1 -1
- package/api/computing/rest.js +8 -3
- package/api/computing/rest.js.map +1 -1
- package/api/computing/return.js +8 -3
- package/api/computing/return.js.map +1 -1
- package/api/computing/spread.js +8 -3
- package/api/computing/spread.js.map +1 -1
- package/api/computing/throw.js +38 -23
- package/api/computing/throw.js.map +1 -1
- package/api/computing/yield.js +8 -3
- package/api/computing/yield.js.map +1 -1
- package/api/definition/array.js +23 -13
- package/api/definition/array.js.map +1 -1
- package/api/definition/bind.js +8 -3
- package/api/definition/bind.js.map +1 -1
- package/api/definition/comment.js +8 -3
- package/api/definition/comment.js.map +1 -1
- package/api/definition/function.js +53 -33
- package/api/definition/function.js.map +1 -1
- package/api/definition/member.js +8 -3
- package/api/definition/member.js.map +1 -1
- package/api/definition/object.js +38 -23
- package/api/definition/object.js.map +1 -1
- package/api/definition/statement.js +8 -3
- package/api/definition/statement.js.map +1 -1
- package/api/definition/values.js +68 -43
- package/api/definition/values.js.map +1 -1
- package/api/deserialize/deserialize.js.map +1 -1
- package/api/expression.d.ts +3 -0
- package/api/expression.d.ts.map +1 -1
- package/api/expression.js.map +1 -1
- package/api/module/common.js +8 -3
- package/api/module/common.js.map +1 -1
- package/api/module/export.js +53 -33
- package/api/module/export.js.map +1 -1
- package/api/module/import.js +68 -43
- package/api/module/import.js.map +1 -1
- package/api/operators/assignment.js +6 -2
- package/api/operators/assignment.js.map +1 -1
- package/api/operators/await.js +8 -3
- package/api/operators/await.js.map +1 -1
- package/api/operators/binary.js +6 -2
- package/api/operators/binary.js.map +1 -1
- package/api/operators/chaining.js +8 -3
- package/api/operators/chaining.js.map +1 -1
- package/api/operators/comma.js +8 -3
- package/api/operators/comma.js.map +1 -1
- package/api/operators/grouping.js +8 -3
- package/api/operators/grouping.js.map +1 -1
- package/api/operators/logical.js +6 -2
- package/api/operators/logical.js.map +1 -1
- package/api/operators/pipeline.js +8 -3
- package/api/operators/pipeline.js.map +1 -1
- package/api/operators/ternary.js +8 -3
- package/api/operators/ternary.js.map +1 -1
- package/api/operators/unary.js +6 -2
- package/api/operators/unary.js.map +1 -1
- package/api/operators/update.js +6 -2
- package/api/operators/update.js.map +1 -1
- package/api/program.js +8 -3
- package/api/program.js.map +1 -1
- package/api/statement/control/block.js +8 -3
- package/api/statement/control/block.js.map +1 -1
- package/api/statement/control/empty.js +8 -3
- package/api/statement/control/empty.js.map +1 -1
- package/api/statement/control/if.js +8 -3
- package/api/statement/control/if.js.map +1 -1
- package/api/statement/control/switch.js +38 -23
- package/api/statement/control/switch.js.map +1 -1
- package/api/statement/control/terminate.js +38 -23
- package/api/statement/control/terminate.js.map +1 -1
- package/api/statement/control/with.js +8 -3
- package/api/statement/control/with.js.map +1 -1
- package/api/statement/declarations/declares.js +23 -13
- package/api/statement/declarations/declares.js.map +1 -1
- package/api/statement/iterations/for.js +53 -33
- package/api/statement/iterations/for.js.map +1 -1
- package/api/statement/iterations/while.js +23 -13
- package/api/statement/iterations/while.js.map +1 -1
- package/bin/cli.d.ts +3 -0
- package/bin/cli.d.ts.map +1 -0
- package/bin/cli.js +73 -0
- package/bin/cli.js.map +1 -0
- package/package.json +8 -5
- package/scope/builder.d.ts +27 -0
- package/scope/builder.d.ts.map +1 -0
- package/scope/builder.js +73 -0
- package/scope/builder.js.map +1 -0
- package/scope/event.js.map +1 -1
- package/scope/finalizer.js.map +1 -1
- package/scope/index.d.ts +1 -0
- package/scope/index.d.ts.map +1 -1
- package/scope/index.js +1 -0
- package/scope/index.js.map +1 -1
- package/scope/pool.js.map +1 -1
- package/scope/proxy.js.map +1 -1
- package/scope/scope.d.ts.map +1 -1
- package/scope/scope.js +4 -3
- package/scope/scope.js.map +1 -1
- package/scope/signal.d.ts +75 -0
- package/scope/signal.d.ts.map +1 -0
- package/scope/signal.js +226 -0
- package/scope/signal.js.map +1 -0
- package/scope/stack.d.ts +1 -1
- package/scope/stack.d.ts.map +1 -1
- package/scope/stack.js +1 -1
- package/scope/stack.js.map +1 -1
- package/scope/variable.d.ts +1 -0
- package/scope/variable.d.ts.map +1 -0
- package/scope/variable.js +2 -0
- package/scope/variable.js.map +1 -0
- package/scope/variables.d.ts +66 -0
- package/scope/variables.d.ts.map +1 -0
- package/scope/variables.js +214 -0
- package/scope/variables.js.map +1 -0
- package/v8/enums.d.ts +5 -5
- package/v8/enums.d.ts.map +1 -1
- package/v8/enums.js +2 -4
- package/v8/enums.js.map +1 -1
- package/v8/factory.js.map +1 -1
- package/v8/inline.js.map +1 -1
- package/v8/parser.js.map +1 -1
- package/v8/stream.js +1 -2
- package/v8/stream.js.map +1 -1
- package/v8/token.js +1 -2
- package/v8/token.js.map +1 -1
- package/visit/visitor.js.map +1 -1
- package/v8/nodes.d.ts +0 -0
- package/v8/nodes.js +0 -2
- package/v8/nodes.js.map +0 -1
|
@@ -7,15 +7,19 @@ import { TerminateReturnType } from '../control/terminate.js';
|
|
|
7
7
|
* If the condition is falsy, another statement can be executed.
|
|
8
8
|
*
|
|
9
9
|
*/
|
|
10
|
-
|
|
10
|
+
let ForNode = (() => {
|
|
11
11
|
let _classDecorators = [Deserializer('ForStatement')];
|
|
12
12
|
let _classDescriptor;
|
|
13
13
|
let _classExtraInitializers = [];
|
|
14
14
|
let _classThis;
|
|
15
|
-
|
|
15
|
+
let _classSuper = AbstractExpressionNode;
|
|
16
|
+
var ForNode = class extends _classSuper {
|
|
17
|
+
static { _classThis = this; }
|
|
16
18
|
static {
|
|
17
|
-
|
|
19
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
20
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
18
21
|
ForNode = _classThis = _classDescriptor.value;
|
|
22
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
19
23
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
20
24
|
}
|
|
21
25
|
body;
|
|
@@ -103,16 +107,21 @@ export let ForNode = (() => {
|
|
|
103
107
|
};
|
|
104
108
|
return ForNode = _classThis;
|
|
105
109
|
})();
|
|
106
|
-
export
|
|
107
|
-
|
|
108
|
-
let
|
|
109
|
-
let
|
|
110
|
-
let
|
|
111
|
-
|
|
110
|
+
export { ForNode };
|
|
111
|
+
let ForOfNode = (() => {
|
|
112
|
+
let _classDecorators = [Deserializer('ForOfStatement')];
|
|
113
|
+
let _classDescriptor;
|
|
114
|
+
let _classExtraInitializers = [];
|
|
115
|
+
let _classThis;
|
|
116
|
+
let _classSuper = AbstractExpressionNode;
|
|
117
|
+
var ForOfNode = class extends _classSuper {
|
|
118
|
+
static { _classThis = this; }
|
|
112
119
|
static {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
120
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
121
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
122
|
+
ForOfNode = _classThis = _classDescriptor.value;
|
|
123
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
124
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
116
125
|
}
|
|
117
126
|
left;
|
|
118
127
|
right;
|
|
@@ -184,18 +193,23 @@ export let ForOfNode = (() => {
|
|
|
184
193
|
};
|
|
185
194
|
}
|
|
186
195
|
};
|
|
187
|
-
return ForOfNode =
|
|
196
|
+
return ForOfNode = _classThis;
|
|
188
197
|
})();
|
|
189
|
-
export
|
|
190
|
-
|
|
191
|
-
let
|
|
192
|
-
let
|
|
193
|
-
let
|
|
194
|
-
|
|
198
|
+
export { ForOfNode };
|
|
199
|
+
let ForInNode = (() => {
|
|
200
|
+
let _classDecorators = [Deserializer('ForInStatement')];
|
|
201
|
+
let _classDescriptor;
|
|
202
|
+
let _classExtraInitializers = [];
|
|
203
|
+
let _classThis;
|
|
204
|
+
let _classSuper = AbstractExpressionNode;
|
|
205
|
+
var ForInNode = class extends _classSuper {
|
|
206
|
+
static { _classThis = this; }
|
|
195
207
|
static {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
208
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
209
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
210
|
+
ForInNode = _classThis = _classDescriptor.value;
|
|
211
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
212
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
199
213
|
}
|
|
200
214
|
left;
|
|
201
215
|
right;
|
|
@@ -268,18 +282,23 @@ export let ForInNode = (() => {
|
|
|
268
282
|
};
|
|
269
283
|
}
|
|
270
284
|
};
|
|
271
|
-
return ForInNode =
|
|
285
|
+
return ForInNode = _classThis;
|
|
272
286
|
})();
|
|
273
|
-
export
|
|
274
|
-
|
|
275
|
-
let
|
|
276
|
-
let
|
|
277
|
-
let
|
|
278
|
-
|
|
287
|
+
export { ForInNode };
|
|
288
|
+
let ForAwaitOfNode = (() => {
|
|
289
|
+
let _classDecorators = [Deserializer('ForAwaitOfStatement')];
|
|
290
|
+
let _classDescriptor;
|
|
291
|
+
let _classExtraInitializers = [];
|
|
292
|
+
let _classThis;
|
|
293
|
+
let _classSuper = AbstractExpressionNode;
|
|
294
|
+
var ForAwaitOfNode = class extends _classSuper {
|
|
295
|
+
static { _classThis = this; }
|
|
279
296
|
static {
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
297
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
298
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
299
|
+
ForAwaitOfNode = _classThis = _classDescriptor.value;
|
|
300
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
301
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
283
302
|
}
|
|
284
303
|
left;
|
|
285
304
|
right;
|
|
@@ -339,6 +358,7 @@ export let ForAwaitOfNode = (() => {
|
|
|
339
358
|
};
|
|
340
359
|
}
|
|
341
360
|
};
|
|
342
|
-
return ForAwaitOfNode =
|
|
361
|
+
return ForAwaitOfNode = _classThis;
|
|
343
362
|
})();
|
|
363
|
+
export { ForAwaitOfNode };
|
|
344
364
|
//# sourceMappingURL=for.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"for.js","sourceRoot":"","sources":["../../../../../src/expressions/api/statement/iterations/for.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tNodeDeserializer, ExpressionNode, ExpressionEventPath,\n\tVisitNodeType, SourceLocation\n} from '../../expression.js';\nimport type { Stack } from '../../../scope/stack.js';\nimport { AbstractExpressionNode, ReturnValue } from '../../abstract.js';\nimport { Deserializer } from '../../deserialize/deserialize.js';\nimport { TerminateReturnType } from '../control/terminate.js';\nimport { VariableDeclarationNode } from '../declarations/declares.js';\nimport { ArrayPattern } from '../../definition/array.js';\nimport { ObjectPattern } from '../../definition/object.js';\n\n\n/**\n * The if statement executes a statement if a specified condition is truthy.\n * If the condition is falsy, another statement can be executed.\n * \n */\n@Deserializer('ForStatement')\nexport class ForNode extends AbstractExpressionNode {\n\tstatic fromJSON(node: ForNode, deserializer: NodeDeserializer): ForNode {\n\t\treturn new ForNode(\n\t\t\tdeserializer(node.body),\n\t\t\tnode.init && deserializer(node.init),\n\t\t\tnode.test && deserializer(node.test),\n\t\t\tnode.update && deserializer(node.update),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: ForNode, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.body);\n\t\tnode.init && visitNode(node.init);\n\t\tnode.test && visitNode(node.test);\n\t\tnode.update && visitNode(node.update);\n\t}\n\tconstructor(\n\t\tprivate body: ExpressionNode,\n\t\tprivate init?: ExpressionNode,\n\t\tprivate test?: ExpressionNode,\n\t\tprivate update?: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetBody() {\n\t\treturn this.body;\n\t}\n\tgetInit() {\n\t\treturn this.init;\n\t}\n\tgetTest() {\n\t\treturn this.test;\n\t}\n\tgetUpdate() {\n\t\treturn this.update;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`ForNode#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tconst forBlock = stack.pushBlockScope();\n\t\tfor (this.init?.get(stack); this.test?.get(stack) ?? true; this.update?.get(stack)) {\n\t\t\tconst result = this.body.get(stack);\n\t\t\t// useless case, as it at the end of for statement\n\t\t\t// an array/block statement, should return last signal\n\t\t\tif (result instanceof TerminateReturnType) {\n\t\t\t\tif (result.type === 'continue') {\n\t\t\t\t\tcontinue;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (result instanceof ReturnValue) {\n\t\t\t\tstack.clearTo(forBlock);\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t\tstack.clearTo(forBlock);\n\t\treturn void 0;\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\tlet dependency: ExpressionNode[] = this.body.dependency(computed);\n\t\tthis.init && (dependency = dependency.concat(this.init.dependency(computed)));\n\t\tthis.test && (dependency = dependency.concat(this.test.dependency(computed)));\n\t\tthis.update && (dependency = dependency.concat(this.update.dependency(computed)));\n\t\treturn dependency;\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\tlet dependencyPath: ExpressionEventPath[] = this.body.dependencyPath(computed);\n\t\tthis.init && (dependencyPath = dependencyPath.concat(this.init.dependencyPath(computed)));\n\t\tthis.test && (dependencyPath = dependencyPath.concat(this.test.dependencyPath(computed)));\n\t\tthis.update && (dependencyPath = dependencyPath.concat(this.update.dependencyPath(computed)));\n\t\treturn dependencyPath;\n\t}\n\ttoString(): string {\n\t\treturn `for (${this.init?.toString()};${this.test?.toString()};${this.init?.toString()}) ${this.body.toString()}`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tbody: this.body.toJSON(),\n\t\t\tinit: this.init?.toJSON(),\n\t\t\ttest: this.test?.toJSON(),\n\t\t\tupdate: this.update?.toJSON(),\n\t\t};\n\t}\n}\n\nexport type ForDeclaration = VariableDeclarationNode | ObjectPattern | ArrayPattern;\n\n@Deserializer('ForOfStatement')\nexport class ForOfNode extends AbstractExpressionNode {\n\tstatic fromJSON(node: ForOfNode, deserializer: NodeDeserializer): ForOfNode {\n\t\treturn new ForOfNode(\n\t\t\tdeserializer(node.left) as ForDeclaration,\n\t\t\tdeserializer(node.right),\n\t\t\tdeserializer(node.body),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: ForOfNode, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.left);\n\t\tvisitNode(node.right);\n\t\tvisitNode(node.body);\n\t}\n\tconstructor(\n\t\tprivate left: ForDeclaration,\n\t\tprivate right: ExpressionNode,\n\t\tprivate body: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetLeft() {\n\t\treturn this.left;\n\t}\n\tgetRight() {\n\t\treturn this.right;\n\t}\n\tgetBody() {\n\t\treturn this.body;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`ForOfNode#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tconst iterable = <any[]>this.right.get(stack);\n\t\tfor (const iterator of iterable) {\n\t\t\tconst forBlock = stack.pushBlockScope();\n\t\t\tthis.left.declareVariable(stack, iterator);\n\t\t\tconst result = this.body.get(stack);\n\t\t\t// useless case, as it at the end of for statement\n\t\t\t// an array/block statement, should return last signal\n\t\t\tif (result instanceof TerminateReturnType) {\n\t\t\t\tif (result.type === 'continue') {\n\t\t\t\t\tcontinue;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (result instanceof ReturnValue) {\n\t\t\t\tstack.clearTo(forBlock);\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tstack.clearTo(forBlock);\n\t\t}\n\t\treturn void 0;\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.right.dependency(computed);\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.right.dependencyPath(computed);\n\t}\n\ttoString(): string {\n\t\treturn `for (${this.left?.toString()} of ${this.right.toString()}) ${this.body.toString()}`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tleft: this.left.toJSON(),\n\t\t\tright: this.right.toJSON(),\n\t\t\tbody: this.body.toJSON(),\n\t\t};\n\t}\n}\n\n@Deserializer('ForInStatement')\nexport class ForInNode extends AbstractExpressionNode {\n\tstatic fromJSON(node: ForInNode, deserializer: NodeDeserializer): ForInNode {\n\t\treturn new ForInNode(\n\t\t\tdeserializer(node.left) as ForDeclaration,\n\t\t\tdeserializer(node.right),\n\t\t\tdeserializer(node.body),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: ForInNode, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.left);\n\t\tvisitNode(node.right);\n\t\tvisitNode(node.body);\n\t}\n\t// variable of iterable\n\tconstructor(\n\t\tprivate left: VariableDeclarationNode | ObjectPattern | ArrayPattern,\n\t\tprivate right: ExpressionNode,\n\t\tprivate body: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetLeft() {\n\t\treturn this.left;\n\t}\n\tgetRight() {\n\t\treturn this.right;\n\t}\n\tgetBody() {\n\t\treturn this.body;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`ForOfNode#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tconst iterable = <object>this.right.get(stack);\n\t\tfor (const iterator in iterable) {\n\t\t\tconst forBlock = stack.pushBlockScope();\n\t\t\tthis.left.declareVariable(stack, iterator);\n\t\t\tconst result = this.body.get(stack);\n\t\t\t// useless case, as it at the end of for statement\n\t\t\t// an array/block statement, should return last signal\n\t\t\tif (result instanceof TerminateReturnType) {\n\t\t\t\tif (result.type === 'continue') {\n\t\t\t\t\tcontinue;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (result instanceof ReturnValue) {\n\t\t\t\tstack.clearTo(forBlock);\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tstack.clearTo(forBlock);\n\t\t}\n\t\treturn void 0;\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.right.dependency(computed);\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.right.dependencyPath(computed);\n\t}\n\ttoString(): string {\n\t\treturn `for (${this.left.toString()} in ${this.right.toString()}) ${this.body.toString()}`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tleft: this.left.toJSON(),\n\t\t\tright: this.right.toJSON(),\n\t\t\tbody: this.body.toJSON(),\n\t\t};\n\t}\n}\n\n@Deserializer('ForAwaitOfStatement')\nexport class ForAwaitOfNode extends AbstractExpressionNode {\n\tstatic fromJSON(node: ForAwaitOfNode, deserializer: NodeDeserializer): ForAwaitOfNode {\n\t\treturn new ForAwaitOfNode(\n\t\t\tdeserializer(node.left) as ForDeclaration,\n\t\t\tdeserializer(node.right),\n\t\t\tdeserializer(node.body),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: ForAwaitOfNode, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.left);\n\t\tvisitNode(node.right);\n\t\tvisitNode(node.body);\n\t}\n\t// variable of iterable\n\tconstructor(\n\t\tprivate left: ForDeclaration,\n\t\tprivate right: ExpressionNode,\n\t\tprivate body: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetLeft() {\n\t\treturn this.left;\n\t}\n\tgetRight() {\n\t\treturn this.right;\n\t}\n\tgetBody() {\n\t\treturn this.body;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`ForAwaitOfNode#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tconst iterable: AsyncIterable<any> = this.right.get(stack);\n\t\tconst forAwaitBody = (iterator: any): any => {\n\t\t\tconst forBlock = stack.pushBlockScope();\n\t\t\tthis.left.declareVariable(stack, iterator);\n\t\t\tconst result = this.body.get(stack);\n\t\t\tstack.clearTo(forBlock);\n\t\t\treturn result;\n\t\t};\n\t\tstack.forAwaitAsyncIterable = { iterable, forAwaitBody };\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.right.dependency(computed);\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.right.dependencyPath(computed);\n\t}\n\ttoString(): string {\n\t\treturn `for (${this.left?.toString()} of ${this.right.toString()}) ${this.body.toString()}`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tleft: this.left.toJSON(),\n\t\t\tright: this.right.toJSON(),\n\t\t\tbody: this.body.toJSON(),\n\t\t};\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"for.js","sourceRoot":"","sources":["../../../../../src/expressions/api/statement/iterations/for.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAM9D;;;;GAIG;IAEU,OAAO;4BADnB,YAAY,CAAC,cAAc,CAAC;;;;sBACA,sBAAsB;uBAA9B,SAAQ,WAAsB;;;;YAAnD,6KAuFC;;;YAvFY,uDAAO;;QAkBV,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,MAAM;QApBf,MAAM,CAAC,QAAQ,CAAC,IAAa,EAAE,YAA8B;YAC5D,OAAO,IAAI,OAAO,CACjB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EACvB,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EACpC,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EACpC,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EACxC,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,CACR,CAAC;QACH,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,IAAa,EAAE,SAAwB;YACnD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;QACD,YACS,IAAoB,EACpB,IAAqB,EACrB,IAAqB,EACrB,MAAuB,EAC/B,KAAwB,EACxB,GAAoB;YACpB,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YANV,SAAI,GAAJ,IAAI,CAAgB;YACpB,SAAI,GAAJ,IAAI,CAAiB;YACrB,SAAI,GAAJ,IAAI,CAAiB;YACrB,WAAM,GAAN,MAAM,CAAiB;QAIhC,CAAC;QACD,OAAO;YACN,OAAO,IAAI,CAAC,IAAI,CAAC;QAClB,CAAC;QACD,OAAO;YACN,OAAO,IAAI,CAAC,IAAI,CAAC;QAClB,CAAC;QACD,OAAO;YACN,OAAO,IAAI,CAAC,IAAI,CAAC;QAClB,CAAC;QACD,SAAS;YACR,OAAO,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QACD,GAAG,CAAC,KAAY,EAAE,KAAU;YAC3B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACzD,CAAC;QACD,GAAG,CAAC,KAAY;YACf,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;YACxC,KAAK,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACpC,kDAAkD;gBAClD,sDAAsD;gBACtD,IAAI,MAAM,YAAY,mBAAmB,EAAE,CAAC;oBAC3C,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;wBAChC,SAAS;oBACV,CAAC;yBAAM,CAAC;wBACP,MAAM;oBACP,CAAC;gBACF,CAAC;gBACD,IAAI,MAAM,YAAY,WAAW,EAAE,CAAC;oBACnC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACxB,OAAO,MAAM,CAAC;gBACf,CAAC;YACF,CAAC;YACD,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,KAAK,CAAC,CAAC;QACf,CAAC;QACD,UAAU,CAAC,QAAe;YACzB,IAAI,UAAU,GAAqB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAClE,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC9E,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC9E,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAClF,OAAO,UAAU,CAAC;QACnB,CAAC;QACD,cAAc,CAAC,QAAe;YAC7B,IAAI,cAAc,GAA0B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC/E,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC1F,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC1F,IAAI,CAAC,MAAM,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC9F,OAAO,cAAc,CAAC;QACvB,CAAC;QACD,QAAQ;YACP,OAAO,QAAQ,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QACnH,CAAC;QACD,MAAM;YACL,OAAO;gBACN,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACxB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE;gBACzB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE;gBACzB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE;aAC7B,CAAC;QACH,CAAC;;;;SAtFW,OAAO;IA4FP,SAAS;4BADrB,YAAY,CAAC,gBAAgB,CAAC;;;;sBACA,sBAAsB;yBAA9B,SAAQ,WAAsB;;;;YAArD,6KA0EC;;;YA1EY,uDAAS;;QAgBZ,IAAI;QACJ,KAAK;QACL,IAAI;QAjBb,MAAM,CAAC,QAAQ,CAAC,IAAe,EAAE,YAA8B;YAC9D,OAAO,IAAI,SAAS,CACnB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAmB,EACzC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EACxB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EACvB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,CACR,CAAC;QACH,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,IAAe,EAAE,SAAwB;YACrD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QACD,YACS,IAAoB,EACpB,KAAqB,EACrB,IAAoB,EAC5B,KAAwB,EACxB,GAAoB;YACpB,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YALV,SAAI,GAAJ,IAAI,CAAgB;YACpB,UAAK,GAAL,KAAK,CAAgB;YACrB,SAAI,GAAJ,IAAI,CAAgB;QAI7B,CAAC;QACD,OAAO;YACN,OAAO,IAAI,CAAC,IAAI,CAAC;QAClB,CAAC;QACD,QAAQ;YACP,OAAO,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;QACD,OAAO;YACN,OAAO,IAAI,CAAC,IAAI,CAAC;QAClB,CAAC;QACD,GAAG,CAAC,KAAY,EAAE,KAAU;YAC3B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC3D,CAAC;QACD,GAAG,CAAC,KAAY;YACf,MAAM,QAAQ,GAAU,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC9C,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;gBACxC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACpC,kDAAkD;gBAClD,sDAAsD;gBACtD,IAAI,MAAM,YAAY,mBAAmB,EAAE,CAAC;oBAC3C,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;wBAChC,SAAS;oBACV,CAAC;yBAAM,CAAC;wBACP,MAAM;oBACP,CAAC;gBACF,CAAC;qBACI,IAAI,MAAM,YAAY,WAAW,EAAE,CAAC;oBACxC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACxB,OAAO,MAAM,CAAC;gBACf,CAAC;gBACD,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC;YACD,OAAO,KAAK,CAAC,CAAC;QACf,CAAC;QACD,UAAU,CAAC,QAAe;YACzB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;QACD,cAAc,CAAC,QAAe;YAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;QACD,QAAQ;YACP,OAAO,QAAQ,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC7F,CAAC;QACD,MAAM;YACL,OAAO;gBACN,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACxB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBAC1B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;aACxB,CAAC;QACH,CAAC;;;;SAzEW,SAAS;IA6ET,SAAS;4BADrB,YAAY,CAAC,gBAAgB,CAAC;;;;sBACA,sBAAsB;yBAA9B,SAAQ,WAAsB;;;;YAArD,6KA2EC;;;YA3EY,uDAAS;;QAiBZ,IAAI;QACJ,KAAK;QACL,IAAI;QAlBb,MAAM,CAAC,QAAQ,CAAC,IAAe,EAAE,YAA8B;YAC9D,OAAO,IAAI,SAAS,CACnB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAmB,EACzC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EACxB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EACvB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,CACR,CAAC;QACH,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,IAAe,EAAE,SAAwB;YACrD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QACD,uBAAuB;QACvB,YACS,IAA4D,EAC5D,KAAqB,EACrB,IAAoB,EAC5B,KAAwB,EACxB,GAAoB;YACpB,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YALV,SAAI,GAAJ,IAAI,CAAwD;YAC5D,UAAK,GAAL,KAAK,CAAgB;YACrB,SAAI,GAAJ,IAAI,CAAgB;QAI7B,CAAC;QACD,OAAO;YACN,OAAO,IAAI,CAAC,IAAI,CAAC;QAClB,CAAC;QACD,QAAQ;YACP,OAAO,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;QACD,OAAO;YACN,OAAO,IAAI,CAAC,IAAI,CAAC;QAClB,CAAC;QACD,GAAG,CAAC,KAAY,EAAE,KAAU;YAC3B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC3D,CAAC;QACD,GAAG,CAAC,KAAY;YACf,MAAM,QAAQ,GAAW,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC/C,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;gBACxC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACpC,kDAAkD;gBAClD,sDAAsD;gBACtD,IAAI,MAAM,YAAY,mBAAmB,EAAE,CAAC;oBAC3C,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;wBAChC,SAAS;oBACV,CAAC;yBAAM,CAAC;wBACP,MAAM;oBACP,CAAC;gBACF,CAAC;qBACI,IAAI,MAAM,YAAY,WAAW,EAAE,CAAC;oBACxC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACxB,OAAO,MAAM,CAAC;gBACf,CAAC;gBACD,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC;YACD,OAAO,KAAK,CAAC,CAAC;QACf,CAAC;QACD,UAAU,CAAC,QAAe;YACzB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;QACD,cAAc,CAAC,QAAe;YAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;QACD,QAAQ;YACP,OAAO,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC5F,CAAC;QACD,MAAM;YACL,OAAO;gBACN,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACxB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBAC1B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;aACxB,CAAC;QACH,CAAC;;;;SA1EW,SAAS;IA8ET,cAAc;4BAD1B,YAAY,CAAC,qBAAqB,CAAC;;;;sBACA,sBAAsB;8BAA9B,SAAQ,WAAsB;;;;YAA1D,6KA+DC;;;YA/DY,uDAAc;;QAiBjB,IAAI;QACJ,KAAK;QACL,IAAI;QAlBb,MAAM,CAAC,QAAQ,CAAC,IAAoB,EAAE,YAA8B;YACnE,OAAO,IAAI,cAAc,CACxB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAmB,EACzC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EACxB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EACvB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,CACR,CAAC;QACH,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,IAAoB,EAAE,SAAwB;YAC1D,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QACD,uBAAuB;QACvB,YACS,IAAoB,EACpB,KAAqB,EACrB,IAAoB,EAC5B,KAAwB,EACxB,GAAoB;YACpB,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YALV,SAAI,GAAJ,IAAI,CAAgB;YACpB,UAAK,GAAL,KAAK,CAAgB;YACrB,SAAI,GAAJ,IAAI,CAAgB;QAI7B,CAAC;QACD,OAAO;YACN,OAAO,IAAI,CAAC,IAAI,CAAC;QAClB,CAAC;QACD,QAAQ;YACP,OAAO,IAAI,CAAC,KAAK,CAAC;QACnB,CAAC;QACD,OAAO;YACN,OAAO,IAAI,CAAC,IAAI,CAAC;QAClB,CAAC;QACD,GAAG,CAAC,KAAY,EAAE,KAAU;YAC3B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAChE,CAAC;QACD,GAAG,CAAC,KAAY;YACf,MAAM,QAAQ,GAAuB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3D,MAAM,YAAY,GAAG,CAAC,QAAa,EAAO,EAAE;gBAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;gBACxC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACpC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACxB,OAAO,MAAM,CAAC;YACf,CAAC,CAAC;YACF,KAAK,CAAC,qBAAqB,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;QAC1D,CAAC;QACD,UAAU,CAAC,QAAe;YACzB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;QACD,cAAc,CAAC,QAAe;YAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC5C,CAAC;QACD,QAAQ;YACP,OAAO,QAAQ,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC7F,CAAC;QACD,MAAM;YACL,OAAO;gBACN,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACxB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBAC1B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;aACxB,CAAC;QACH,CAAC;;;;SA9DW,cAAc","sourcesContent":["import type {\n\tNodeDeserializer, ExpressionNode, ExpressionEventPath,\n\tVisitNodeType, SourceLocation\n} from '../../expression.js';\nimport type { Stack } from '../../../scope/stack.js';\nimport { AbstractExpressionNode, ReturnValue } from '../../abstract.js';\nimport { Deserializer } from '../../deserialize/deserialize.js';\nimport { TerminateReturnType } from '../control/terminate.js';\nimport { VariableDeclarationNode } from '../declarations/declares.js';\nimport { ArrayPattern } from '../../definition/array.js';\nimport { ObjectPattern } from '../../definition/object.js';\n\n\n/**\n * The if statement executes a statement if a specified condition is truthy.\n * If the condition is falsy, another statement can be executed.\n * \n */\n@Deserializer('ForStatement')\nexport class ForNode extends AbstractExpressionNode {\n\tstatic fromJSON(node: ForNode, deserializer: NodeDeserializer): ForNode {\n\t\treturn new ForNode(\n\t\t\tdeserializer(node.body),\n\t\t\tnode.init && deserializer(node.init),\n\t\t\tnode.test && deserializer(node.test),\n\t\t\tnode.update && deserializer(node.update),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: ForNode, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.body);\n\t\tnode.init && visitNode(node.init);\n\t\tnode.test && visitNode(node.test);\n\t\tnode.update && visitNode(node.update);\n\t}\n\tconstructor(\n\t\tprivate body: ExpressionNode,\n\t\tprivate init?: ExpressionNode,\n\t\tprivate test?: ExpressionNode,\n\t\tprivate update?: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetBody() {\n\t\treturn this.body;\n\t}\n\tgetInit() {\n\t\treturn this.init;\n\t}\n\tgetTest() {\n\t\treturn this.test;\n\t}\n\tgetUpdate() {\n\t\treturn this.update;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`ForNode#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tconst forBlock = stack.pushBlockScope();\n\t\tfor (this.init?.get(stack); this.test?.get(stack) ?? true; this.update?.get(stack)) {\n\t\t\tconst result = this.body.get(stack);\n\t\t\t// useless case, as it at the end of for statement\n\t\t\t// an array/block statement, should return last signal\n\t\t\tif (result instanceof TerminateReturnType) {\n\t\t\t\tif (result.type === 'continue') {\n\t\t\t\t\tcontinue;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (result instanceof ReturnValue) {\n\t\t\t\tstack.clearTo(forBlock);\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t\tstack.clearTo(forBlock);\n\t\treturn void 0;\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\tlet dependency: ExpressionNode[] = this.body.dependency(computed);\n\t\tthis.init && (dependency = dependency.concat(this.init.dependency(computed)));\n\t\tthis.test && (dependency = dependency.concat(this.test.dependency(computed)));\n\t\tthis.update && (dependency = dependency.concat(this.update.dependency(computed)));\n\t\treturn dependency;\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\tlet dependencyPath: ExpressionEventPath[] = this.body.dependencyPath(computed);\n\t\tthis.init && (dependencyPath = dependencyPath.concat(this.init.dependencyPath(computed)));\n\t\tthis.test && (dependencyPath = dependencyPath.concat(this.test.dependencyPath(computed)));\n\t\tthis.update && (dependencyPath = dependencyPath.concat(this.update.dependencyPath(computed)));\n\t\treturn dependencyPath;\n\t}\n\ttoString(): string {\n\t\treturn `for (${this.init?.toString()};${this.test?.toString()};${this.init?.toString()}) ${this.body.toString()}`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tbody: this.body.toJSON(),\n\t\t\tinit: this.init?.toJSON(),\n\t\t\ttest: this.test?.toJSON(),\n\t\t\tupdate: this.update?.toJSON(),\n\t\t};\n\t}\n}\n\nexport type ForDeclaration = VariableDeclarationNode | ObjectPattern | ArrayPattern;\n\n@Deserializer('ForOfStatement')\nexport class ForOfNode extends AbstractExpressionNode {\n\tstatic fromJSON(node: ForOfNode, deserializer: NodeDeserializer): ForOfNode {\n\t\treturn new ForOfNode(\n\t\t\tdeserializer(node.left) as ForDeclaration,\n\t\t\tdeserializer(node.right),\n\t\t\tdeserializer(node.body),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: ForOfNode, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.left);\n\t\tvisitNode(node.right);\n\t\tvisitNode(node.body);\n\t}\n\tconstructor(\n\t\tprivate left: ForDeclaration,\n\t\tprivate right: ExpressionNode,\n\t\tprivate body: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetLeft() {\n\t\treturn this.left;\n\t}\n\tgetRight() {\n\t\treturn this.right;\n\t}\n\tgetBody() {\n\t\treturn this.body;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`ForOfNode#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tconst iterable = <any[]>this.right.get(stack);\n\t\tfor (const iterator of iterable) {\n\t\t\tconst forBlock = stack.pushBlockScope();\n\t\t\tthis.left.declareVariable(stack, iterator);\n\t\t\tconst result = this.body.get(stack);\n\t\t\t// useless case, as it at the end of for statement\n\t\t\t// an array/block statement, should return last signal\n\t\t\tif (result instanceof TerminateReturnType) {\n\t\t\t\tif (result.type === 'continue') {\n\t\t\t\t\tcontinue;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (result instanceof ReturnValue) {\n\t\t\t\tstack.clearTo(forBlock);\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tstack.clearTo(forBlock);\n\t\t}\n\t\treturn void 0;\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.right.dependency(computed);\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.right.dependencyPath(computed);\n\t}\n\ttoString(): string {\n\t\treturn `for (${this.left?.toString()} of ${this.right.toString()}) ${this.body.toString()}`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tleft: this.left.toJSON(),\n\t\t\tright: this.right.toJSON(),\n\t\t\tbody: this.body.toJSON(),\n\t\t};\n\t}\n}\n\n@Deserializer('ForInStatement')\nexport class ForInNode extends AbstractExpressionNode {\n\tstatic fromJSON(node: ForInNode, deserializer: NodeDeserializer): ForInNode {\n\t\treturn new ForInNode(\n\t\t\tdeserializer(node.left) as ForDeclaration,\n\t\t\tdeserializer(node.right),\n\t\t\tdeserializer(node.body),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: ForInNode, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.left);\n\t\tvisitNode(node.right);\n\t\tvisitNode(node.body);\n\t}\n\t// variable of iterable\n\tconstructor(\n\t\tprivate left: VariableDeclarationNode | ObjectPattern | ArrayPattern,\n\t\tprivate right: ExpressionNode,\n\t\tprivate body: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetLeft() {\n\t\treturn this.left;\n\t}\n\tgetRight() {\n\t\treturn this.right;\n\t}\n\tgetBody() {\n\t\treturn this.body;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`ForOfNode#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tconst iterable = <object>this.right.get(stack);\n\t\tfor (const iterator in iterable) {\n\t\t\tconst forBlock = stack.pushBlockScope();\n\t\t\tthis.left.declareVariable(stack, iterator);\n\t\t\tconst result = this.body.get(stack);\n\t\t\t// useless case, as it at the end of for statement\n\t\t\t// an array/block statement, should return last signal\n\t\t\tif (result instanceof TerminateReturnType) {\n\t\t\t\tif (result.type === 'continue') {\n\t\t\t\t\tcontinue;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (result instanceof ReturnValue) {\n\t\t\t\tstack.clearTo(forBlock);\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tstack.clearTo(forBlock);\n\t\t}\n\t\treturn void 0;\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.right.dependency(computed);\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.right.dependencyPath(computed);\n\t}\n\ttoString(): string {\n\t\treturn `for (${this.left.toString()} in ${this.right.toString()}) ${this.body.toString()}`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tleft: this.left.toJSON(),\n\t\t\tright: this.right.toJSON(),\n\t\t\tbody: this.body.toJSON(),\n\t\t};\n\t}\n}\n\n@Deserializer('ForAwaitOfStatement')\nexport class ForAwaitOfNode extends AbstractExpressionNode {\n\tstatic fromJSON(node: ForAwaitOfNode, deserializer: NodeDeserializer): ForAwaitOfNode {\n\t\treturn new ForAwaitOfNode(\n\t\t\tdeserializer(node.left) as ForDeclaration,\n\t\t\tdeserializer(node.right),\n\t\t\tdeserializer(node.body),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: ForAwaitOfNode, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.left);\n\t\tvisitNode(node.right);\n\t\tvisitNode(node.body);\n\t}\n\t// variable of iterable\n\tconstructor(\n\t\tprivate left: ForDeclaration,\n\t\tprivate right: ExpressionNode,\n\t\tprivate body: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetLeft() {\n\t\treturn this.left;\n\t}\n\tgetRight() {\n\t\treturn this.right;\n\t}\n\tgetBody() {\n\t\treturn this.body;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`ForAwaitOfNode#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tconst iterable: AsyncIterable<any> = this.right.get(stack);\n\t\tconst forAwaitBody = (iterator: any): any => {\n\t\t\tconst forBlock = stack.pushBlockScope();\n\t\t\tthis.left.declareVariable(stack, iterator);\n\t\t\tconst result = this.body.get(stack);\n\t\t\tstack.clearTo(forBlock);\n\t\t\treturn result;\n\t\t};\n\t\tstack.forAwaitAsyncIterable = { iterable, forAwaitBody };\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.right.dependency(computed);\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.right.dependencyPath(computed);\n\t}\n\ttoString(): string {\n\t\treturn `for (${this.left?.toString()} of ${this.right.toString()}) ${this.body.toString()}`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tleft: this.left.toJSON(),\n\t\t\tright: this.right.toJSON(),\n\t\t\tbody: this.body.toJSON(),\n\t\t};\n\t}\n}\n"]}
|
|
@@ -8,15 +8,19 @@ import { TerminateReturnType } from '../control/terminate.js';
|
|
|
8
8
|
* The condition is evaluated before executing the statement.
|
|
9
9
|
*
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
let WhileNode = (() => {
|
|
12
12
|
let _classDecorators = [Deserializer('WhileStatement')];
|
|
13
13
|
let _classDescriptor;
|
|
14
14
|
let _classExtraInitializers = [];
|
|
15
15
|
let _classThis;
|
|
16
|
-
|
|
16
|
+
let _classSuper = AbstractExpressionNode;
|
|
17
|
+
var WhileNode = class extends _classSuper {
|
|
18
|
+
static { _classThis = this; }
|
|
17
19
|
static {
|
|
18
|
-
|
|
20
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
21
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
19
22
|
WhileNode = _classThis = _classDescriptor.value;
|
|
23
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
20
24
|
__runInitializers(_classThis, _classExtraInitializers);
|
|
21
25
|
}
|
|
22
26
|
test;
|
|
@@ -83,16 +87,21 @@ export let WhileNode = (() => {
|
|
|
83
87
|
};
|
|
84
88
|
return WhileNode = _classThis;
|
|
85
89
|
})();
|
|
86
|
-
export
|
|
87
|
-
|
|
88
|
-
let
|
|
89
|
-
let
|
|
90
|
-
let
|
|
91
|
-
|
|
90
|
+
export { WhileNode };
|
|
91
|
+
let DoWhileNode = (() => {
|
|
92
|
+
let _classDecorators = [Deserializer('DoWhileStatement')];
|
|
93
|
+
let _classDescriptor;
|
|
94
|
+
let _classExtraInitializers = [];
|
|
95
|
+
let _classThis;
|
|
96
|
+
let _classSuper = AbstractExpressionNode;
|
|
97
|
+
var DoWhileNode = class extends _classSuper {
|
|
98
|
+
static { _classThis = this; }
|
|
92
99
|
static {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
100
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
101
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
102
|
+
DoWhileNode = _classThis = _classDescriptor.value;
|
|
103
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
104
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
96
105
|
}
|
|
97
106
|
test;
|
|
98
107
|
body;
|
|
@@ -155,6 +164,7 @@ export let DoWhileNode = (() => {
|
|
|
155
164
|
};
|
|
156
165
|
}
|
|
157
166
|
};
|
|
158
|
-
return DoWhileNode =
|
|
167
|
+
return DoWhileNode = _classThis;
|
|
159
168
|
})();
|
|
169
|
+
export { DoWhileNode };
|
|
160
170
|
//# sourceMappingURL=while.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"while.js","sourceRoot":"","sources":["../../../../../src/expressions/api/statement/iterations/while.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"while.js","sourceRoot":"","sources":["../../../../../src/expressions/api/statement/iterations/while.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tNodeDeserializer, ExpressionNode, ExpressionEventPath,\n\tVisitNodeType, SourceLocation\n} from '../../expression.js';\nimport type { Stack } from '../../../scope/stack.js';\nimport { AbstractExpressionNode, ReturnValue } from '../../abstract.js';\nimport { Deserializer } from '../../deserialize/deserialize.js';\nimport { TerminateReturnType } from '../control/terminate.js';\n\n/**\n * The while statement creates a loop that executes a specified\n * statement as long as the test condition evaluates to true.\n * The condition is evaluated before executing the statement.\n * \n */\n@Deserializer('WhileStatement')\nexport class WhileNode extends AbstractExpressionNode {\n\tstatic fromJSON(node: WhileNode, deserializer: NodeDeserializer): WhileNode {\n\t\treturn new WhileNode(\n\t\t\tdeserializer(node.test),\n\t\t\tdeserializer(node.body),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: WhileNode, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.body);\n\t\tvisitNode(node.test);\n\t}\n\tconstructor(\n\t\tprivate test: ExpressionNode,\n\t\tprivate body: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetTest() {\n\t\treturn this.test;\n\t}\n\tgetBody() {\n\t\treturn this.body;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`WhileNode#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tconst condition = this.test.get(stack);\n\t\tconst whileBlock = stack.pushBlockScope();\n\t\twhile (condition) {\n\t\t\tconst result = this.body.get(stack);\n\t\t\t// useless case, as it at the end of for statement\n\t\t\t// an array/block statement, should return last signal\n\t\t\tif (result instanceof TerminateReturnType) {\n\t\t\t\tif (result.type === 'continue') {\n\t\t\t\t\tcontinue;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (result instanceof ReturnValue) {\n\t\t\t\tstack.clearTo(whileBlock);\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t\tstack.clearTo(whileBlock);\n\t\treturn void 0;\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.test.dependency(computed).concat(this.body.dependency(computed));\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.test.dependencyPath(computed).concat(this.body.dependencyPath(computed));\n\t}\n\ttoString(): string {\n\t\treturn `while (${this.test.toString()}) ${this.body.toString()}`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\ttest: this.test.toJSON(),\n\t\t\tbody: this.body.toJSON()\n\t\t};\n\t}\n}\n\n@Deserializer('DoWhileStatement')\nexport class DoWhileNode extends AbstractExpressionNode {\n\tstatic fromJSON(node: DoWhileNode, deserializer: NodeDeserializer): DoWhileNode {\n\t\treturn new DoWhileNode(\n\t\t\tdeserializer(node.test),\n\t\t\tdeserializer(node.body),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: DoWhileNode, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.test);\n\t\tvisitNode(node.body);\n\t}\n\tconstructor(\n\t\tprivate test: ExpressionNode,\n\t\tprivate body: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetTest() {\n\t\treturn this.test;\n\t}\n\tgetBody() {\n\t\treturn this.body;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`WhileNode#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tconst whileBlock = stack.pushBlockScope();\n\t\tdo {\n\t\t\tconst result = this.body.get(stack);\n\t\t\t// useless case, as it at the end of for statement\n\t\t\t// an array/block statement, should return last signal\n\t\t\tif (result instanceof TerminateReturnType) {\n\t\t\t\tif (result.type === 'continue') {\n\t\t\t\t\tcontinue;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (result instanceof ReturnValue) {\n\t\t\t\tstack.clearTo(whileBlock);\n\t\t\t\treturn result;\n\t\t\t}\n\t\t} while (this.test.get(stack));\n\t\tstack.clearTo(whileBlock);\n\t\treturn void 0;\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.body.dependency(computed).concat(this.test.dependency(computed));\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.body.dependencyPath(computed).concat(this.test.dependencyPath(computed));\n\t}\n\ttoString(): string {\n\t\treturn `do {${this.body.toString()}} while (${this.test.toString()})`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\ttest: this.test.toJSON(),\n\t\t\tbody: this.body.toJSON()\n\t\t};\n\t}\n}\n"]}
|
package/bin/cli.d.ts
ADDED
package/bin/cli.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/expressions/bin/cli.ts"],"names":[],"mappings":""}
|
package/bin/cli.js
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { exit } from 'process';
|
|
3
|
+
import { readFileSync, writeFileSync } from 'fs';
|
|
4
|
+
import { JavaScriptParser, Stack } from '../index.js';
|
|
5
|
+
const CLI_VERSION = '1.0.1';
|
|
6
|
+
const args = process.argv;
|
|
7
|
+
const inputs = args.slice(2);
|
|
8
|
+
const showHelp = inputs.includes('h') || inputs.includes('help');
|
|
9
|
+
if (showHelp) {
|
|
10
|
+
const help = `
|
|
11
|
+
Version ${CLI_VERSION}
|
|
12
|
+
Usage:
|
|
13
|
+
|
|
14
|
+
- expr run [js file/module] [watcher<w> [js watch file]]
|
|
15
|
+
- expr parse [js file/module] out [ast file name]
|
|
16
|
+
- expr version
|
|
17
|
+
- expr help
|
|
18
|
+
|
|
19
|
+
Examples:
|
|
20
|
+
expr run hello.js
|
|
21
|
+
expr run hello.js watcher monitor.js
|
|
22
|
+
expr r hello.js w monitor.js
|
|
23
|
+
expr parse hello.js
|
|
24
|
+
expr parse hello.js out hello.ast
|
|
25
|
+
expr p hello.js o hello.ast
|
|
26
|
+
expr version
|
|
27
|
+
expr v
|
|
28
|
+
expr help
|
|
29
|
+
expr h
|
|
30
|
+
|
|
31
|
+
Options:
|
|
32
|
+
r run run js file
|
|
33
|
+
p parse parse js file to AST object
|
|
34
|
+
o out output path
|
|
35
|
+
w watcher monitor file
|
|
36
|
+
h help print help message
|
|
37
|
+
v version output the version number`;
|
|
38
|
+
console.log(help);
|
|
39
|
+
exit();
|
|
40
|
+
}
|
|
41
|
+
const printVersion = inputs.includes('v') || inputs.includes('version');
|
|
42
|
+
if (printVersion) {
|
|
43
|
+
console.log(CLI_VERSION);
|
|
44
|
+
exit();
|
|
45
|
+
}
|
|
46
|
+
function isContain(small, big) {
|
|
47
|
+
return {
|
|
48
|
+
found: inputs.includes(small) || inputs.includes(big),
|
|
49
|
+
path: inputs.find((v, i, arr) => arr[i - 1] === small || arr[i - 1] === big),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
const isParse = isContain('p', 'parse');
|
|
53
|
+
if (isParse.found && isParse.path) {
|
|
54
|
+
const script = readFileSync(isParse.path, 'utf8').toString();
|
|
55
|
+
const ast = JavaScriptParser.parse(script);
|
|
56
|
+
const json = JSON.stringify(ast);
|
|
57
|
+
const isOut = isContain('o', 'out');
|
|
58
|
+
if (isOut.found && isOut.path) {
|
|
59
|
+
writeFileSync(isOut.path, json);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
console.log(ast);
|
|
63
|
+
}
|
|
64
|
+
exit();
|
|
65
|
+
}
|
|
66
|
+
const isRun = isContain('r', 'run');
|
|
67
|
+
if (isRun.found && isRun.path) {
|
|
68
|
+
const script = readFileSync(isRun.path, 'utf8').toString();
|
|
69
|
+
const ast = JavaScriptParser.parse(script);
|
|
70
|
+
const stack = Stack.for([globalThis]);
|
|
71
|
+
ast.get(stack);
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=cli.js.map
|
package/bin/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/expressions/bin/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,WAAW,GAAG,OAAO,CAAC;AAE5B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAE7B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAEjE,IAAI,QAAQ,EAAE,CAAC;IACd,MAAM,IAAI,GACT;UACQ,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;2CA0BsB,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,IAAI,EAAE,CAAC;AACR,CAAC;AAGD,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACxE,IAAI,YAAY,EAAE,CAAC;IAClB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzB,IAAI,EAAE,CAAC;AACR,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,GAAW;IAC5C,OAAO;QACN,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QACrD,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC;KAC5E,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACxC,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IAE7D,MAAM,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAGjC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAEpC,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAC/B,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,EAAE,CAAC;AACR,CAAC;AAED,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACpC,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;IAE3D,MAAM,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IACtC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAChB,CAAC","sourcesContent":["#!/usr/bin/env node\n\nimport { exit } from 'process';\nimport { readFileSync, writeFileSync } from 'fs';\nimport { JavaScriptParser, Stack } from '../index.js';\n\nconst CLI_VERSION = '1.0.1';\n\nconst args = process.argv;\nconst inputs = args.slice(2);\n\nconst showHelp = inputs.includes('h') || inputs.includes('help');\n\nif (showHelp) {\n\tconst help =\n\t\t`\nVersion ${CLI_VERSION}\nUsage: \n\n\t- expr run [js file/module] [watcher<w> [js watch file]]\n\t- expr parse [js file/module] out [ast file name]\n\t- expr version\n\t- expr help\n\nExamples:\n expr run hello.js\n expr run hello.js watcher monitor.js\n expr r hello.js w monitor.js\n expr parse hello.js \n expr parse hello.js out hello.ast\n expr p hello.js o hello.ast\n expr version\n expr v\n expr help\n expr h\n\nOptions:\n r\t\trun\t\t\t\trun js file\n p\t\tparse\t\t\tparse js file to AST object\n\to\t\tout\t\t\t\toutput path\n\tw\t\twatcher\t\t\tmonitor file\n h\t\thelp\t\t\tprint help message\n v\t\tversion\t\t\toutput the version number`;\n\tconsole.log(help);\n\texit();\n}\n\n\nconst printVersion = inputs.includes('v') || inputs.includes('version');\nif (printVersion) {\n\tconsole.log(CLI_VERSION);\n\texit();\n}\n\nfunction isContain(small: string, big: string) {\n\treturn {\n\t\tfound: inputs.includes(small) || inputs.includes(big),\n\t\tpath: inputs.find((v, i, arr) => arr[i - 1] === small || arr[i - 1] === big),\n\t};\n}\n\nconst isParse = isContain('p', 'parse');\nif (isParse.found && isParse.path) {\n\tconst script = readFileSync(isParse.path, 'utf8').toString();\n\n\tconst ast = JavaScriptParser.parse(script);\n\tconst json = JSON.stringify(ast);\n\n\n\tconst isOut = isContain('o', 'out');\n\n\tif (isOut.found && isOut.path) {\n\t\twriteFileSync(isOut.path, json);\n\t} else {\n\t\tconsole.log(ast);\n\t}\n\texit();\n}\n\nconst isRun = isContain('r', 'run');\nif (isRun.found && isRun.path) {\n\tconst script = readFileSync(isRun.path, 'utf8').toString();\n\n\tconst ast = JavaScriptParser.parse(script);\n\tconst stack = Stack.for([globalThis]);\n\tast.get(stack);\n}\n\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ibyar/expressions",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Aurora expression, an template expression and evaluation, An 100% spec compliant ES2022 JavaScript toolchain,",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/ibyar/aurora/tree/dev/packages/expressions",
|
|
@@ -26,6 +26,9 @@
|
|
|
26
26
|
"exports": {
|
|
27
27
|
".": "./index.js"
|
|
28
28
|
},
|
|
29
|
+
"bin": {
|
|
30
|
+
"expr": "./bin/cli.js"
|
|
31
|
+
},
|
|
29
32
|
"files": [
|
|
30
33
|
"*"
|
|
31
34
|
],
|
|
@@ -33,11 +36,11 @@
|
|
|
33
36
|
"access": "public"
|
|
34
37
|
},
|
|
35
38
|
"dependencies": {
|
|
36
|
-
"@ibyar/decorators": "^1.
|
|
37
|
-
"tslib": "^2.
|
|
39
|
+
"@ibyar/decorators": "^1.2.0",
|
|
40
|
+
"tslib": "^2.6.2"
|
|
38
41
|
},
|
|
39
42
|
"devDependencies": {
|
|
40
|
-
"typescript": "^5.
|
|
43
|
+
"typescript": "^5.3.3"
|
|
41
44
|
},
|
|
42
45
|
"scripts": {
|
|
43
46
|
"build": "tsc --build --verbose"
|
|
@@ -61,5 +64,5 @@
|
|
|
61
64
|
"backend",
|
|
62
65
|
"front-end"
|
|
63
66
|
],
|
|
64
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "85a94555492c9cf4c4a985f5972ebd5009708775"
|
|
65
68
|
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Context, ReactiveScope, ReactiveScopeControl, ReadOnlyScope, Scope } from './scope.js';
|
|
2
|
+
export declare class ScopeBuilder {
|
|
3
|
+
static for<T extends Context>(ctx: T, propertyKeys?: (keyof T)[]): Scope<T>;
|
|
4
|
+
static blockScope<T extends Context>(propertyKeys?: (keyof T)[]): Scope<T>;
|
|
5
|
+
static readOnlyScopeFor<T extends Context>(ctx: T, propertyKeys?: (keyof T)[]): ReadOnlyScope<T>;
|
|
6
|
+
static blockReadOnlyScope<T extends Context>(propertyKeys?: (keyof T)[]): ReadOnlyScope<T>;
|
|
7
|
+
static reactiveScopeFor<T extends Context>(context: T, propertyKeys?: (keyof T)[]): ReactiveScope<T>;
|
|
8
|
+
static blockReactiveScope<T extends Context>(propertyKeys?: (keyof T)[]): ReactiveScope<T>;
|
|
9
|
+
static reactiveScopeForThis<T extends Context>(ctx: T, propertyKeys?: (keyof T)[]): Scope<{
|
|
10
|
+
this: T;
|
|
11
|
+
}>;
|
|
12
|
+
static readOnlyScopeAndReactiveScopeForThis<T extends Context>(ctx: T, propertyKeys?: (keyof T)[]): ReadOnlyScope<{
|
|
13
|
+
this: T;
|
|
14
|
+
}>;
|
|
15
|
+
static reactiveScopeAndScopeForThis<T extends Context>(ctx: T, propertyKeys?: (keyof T)[]): Scope<{
|
|
16
|
+
this: T;
|
|
17
|
+
}>;
|
|
18
|
+
static reactiveScopeControlFor<T extends Context>(context: T, propertyKeys?: (keyof T)[]): ReactiveScopeControl<T>;
|
|
19
|
+
static blockReactiveScopeControl<T extends Context>(propertyKeys?: (keyof T)[]): ReactiveScopeControl<T>;
|
|
20
|
+
static reactiveScopeControlForThis<T extends Context>(ctx: T, propertyKeys?: (keyof T)[]): Scope<{
|
|
21
|
+
this: T;
|
|
22
|
+
}>;
|
|
23
|
+
static readOnlyScopeAndReactiveScopeControlForThis<T extends Context>(ctx: T, propertyKeys?: (keyof T)[]): ReadOnlyScope<{
|
|
24
|
+
this: T;
|
|
25
|
+
}>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/expressions/scope/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEhG,qBAAa,YAAY;IACxB,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE;IAGhE,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE;IAG/D,MAAM,CAAC,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE;IAG7E,MAAM,CAAC,kBAAkB,CAAC,CAAC,SAAS,OAAO,EAAE,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE;IAGvE,MAAM,CAAC,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE;IAGjF,MAAM,CAAC,kBAAkB,CAAC,CAAC,SAAS,OAAO,EAAE,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE;IAGvE,MAAM,CAAC,oBAAoB,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE;;;IASjF,MAAM,CAAC,oCAAoC,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE;;;IASjG,MAAM,CAAC,4BAA4B,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE;;;IASzF,MAAM,CAAC,uBAAuB,CAAC,CAAC,SAAS,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE;IAGxF,MAAM,CAAC,yBAAyB,CAAC,CAAC,SAAS,OAAO,EAAE,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE;IAG9E,MAAM,CAAC,2BAA2B,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE;;;IASxF,MAAM,CAAC,2CAA2C,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE;;;CASxG"}
|
package/scope/builder.js
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { ReactiveScope, ReactiveScopeControl, ReadOnlyScope, Scope } from './scope.js';
|
|
2
|
+
export class ScopeBuilder {
|
|
3
|
+
static for(ctx, propertyKeys) {
|
|
4
|
+
return new Scope(ctx, propertyKeys);
|
|
5
|
+
}
|
|
6
|
+
static blockScope(propertyKeys) {
|
|
7
|
+
return new Scope({}, propertyKeys);
|
|
8
|
+
}
|
|
9
|
+
static readOnlyScopeFor(ctx, propertyKeys) {
|
|
10
|
+
return new ReadOnlyScope(ctx, propertyKeys);
|
|
11
|
+
}
|
|
12
|
+
static blockReadOnlyScope(propertyKeys) {
|
|
13
|
+
return new ReadOnlyScope({}, propertyKeys);
|
|
14
|
+
}
|
|
15
|
+
static reactiveScopeFor(context, propertyKeys) {
|
|
16
|
+
return new ReactiveScope(context, propertyKeys);
|
|
17
|
+
}
|
|
18
|
+
static blockReactiveScope(propertyKeys) {
|
|
19
|
+
return new ReactiveScope({}, propertyKeys);
|
|
20
|
+
}
|
|
21
|
+
static reactiveScopeForThis(ctx, propertyKeys) {
|
|
22
|
+
const thisScope = ReactiveScope.for(ctx, propertyKeys);
|
|
23
|
+
const thisCtx = {
|
|
24
|
+
'this': ctx,
|
|
25
|
+
};
|
|
26
|
+
const rootScope = Scope.for(thisCtx, ['this']);
|
|
27
|
+
rootScope.setInnerScope('this', thisScope);
|
|
28
|
+
return rootScope;
|
|
29
|
+
}
|
|
30
|
+
static readOnlyScopeAndReactiveScopeForThis(ctx, propertyKeys) {
|
|
31
|
+
const thisScope = ReactiveScope.for(ctx, propertyKeys);
|
|
32
|
+
const thisCtx = {
|
|
33
|
+
'this': ctx,
|
|
34
|
+
};
|
|
35
|
+
const rootScope = ReadOnlyScope.for(thisCtx, ['this']);
|
|
36
|
+
rootScope.setInnerScope('this', thisScope);
|
|
37
|
+
return rootScope;
|
|
38
|
+
}
|
|
39
|
+
static reactiveScopeAndScopeForThis(ctx, propertyKeys) {
|
|
40
|
+
const thisScope = ReactiveScope.for(ctx, propertyKeys);
|
|
41
|
+
const thisCtx = {
|
|
42
|
+
'this': ctx,
|
|
43
|
+
};
|
|
44
|
+
const rootScope = Scope.for(thisCtx, ['this']);
|
|
45
|
+
rootScope.setInnerScope('this', thisScope);
|
|
46
|
+
return rootScope;
|
|
47
|
+
}
|
|
48
|
+
static reactiveScopeControlFor(context, propertyKeys) {
|
|
49
|
+
return new ReactiveScopeControl(context, propertyKeys);
|
|
50
|
+
}
|
|
51
|
+
static blockReactiveScopeControl(propertyKeys) {
|
|
52
|
+
return new ReactiveScopeControl({}, propertyKeys);
|
|
53
|
+
}
|
|
54
|
+
static reactiveScopeControlForThis(ctx, propertyKeys) {
|
|
55
|
+
const thisScope = ReactiveScopeControl.for(ctx, propertyKeys);
|
|
56
|
+
const thisCtx = {
|
|
57
|
+
'this': ctx,
|
|
58
|
+
};
|
|
59
|
+
const rootScope = Scope.for(thisCtx, ['this']);
|
|
60
|
+
rootScope.setInnerScope('this', thisScope);
|
|
61
|
+
return rootScope;
|
|
62
|
+
}
|
|
63
|
+
static readOnlyScopeAndReactiveScopeControlForThis(ctx, propertyKeys) {
|
|
64
|
+
const thisScope = ReactiveScopeControl.for(ctx, propertyKeys);
|
|
65
|
+
const thisCtx = {
|
|
66
|
+
'this': ctx,
|
|
67
|
+
};
|
|
68
|
+
const rootScope = ReadOnlyScope.for(thisCtx, ['this']);
|
|
69
|
+
rootScope.setInnerScope('this', thisScope);
|
|
70
|
+
return rootScope;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/expressions/scope/builder.ts"],"names":[],"mappings":"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","sourcesContent":["import { Context, ReactiveScope, ReactiveScopeControl, ReadOnlyScope, Scope } from './scope.js';\n\nexport class ScopeBuilder {\n\tstatic for<T extends Context>(ctx: T, propertyKeys?: (keyof T)[]) {\n\t\treturn new Scope(ctx, propertyKeys);\n\t}\n\tstatic blockScope<T extends Context>(propertyKeys?: (keyof T)[]) {\n\t\treturn new Scope({} as T, propertyKeys);\n\t}\n\tstatic readOnlyScopeFor<T extends Context>(ctx: T, propertyKeys?: (keyof T)[]) {\n\t\treturn new ReadOnlyScope(ctx, propertyKeys);\n\t}\n\tstatic blockReadOnlyScope<T extends Context>(propertyKeys?: (keyof T)[]) {\n\t\treturn new ReadOnlyScope({} as T, propertyKeys);\n\t}\n\tstatic reactiveScopeFor<T extends Context>(context: T, propertyKeys?: (keyof T)[]) {\n\t\treturn new ReactiveScope(context, propertyKeys);\n\t}\n\tstatic blockReactiveScope<T extends Context>(propertyKeys?: (keyof T)[]) {\n\t\treturn new ReactiveScope({} as T, propertyKeys);\n\t}\n\tstatic reactiveScopeForThis<T extends Context>(ctx: T, propertyKeys?: (keyof T)[]) {\n\t\tconst thisScope = ReactiveScope.for(ctx, propertyKeys);\n\t\tconst thisCtx = {\n\t\t\t'this': ctx,\n\t\t};\n\t\tconst rootScope = Scope.for(thisCtx, ['this']);\n\t\trootScope.setInnerScope('this', thisScope);\n\t\treturn rootScope;\n\t}\n\tstatic readOnlyScopeAndReactiveScopeForThis<T extends Context>(ctx: T, propertyKeys?: (keyof T)[]) {\n\t\tconst thisScope = ReactiveScope.for(ctx, propertyKeys);\n\t\tconst thisCtx = {\n\t\t\t'this': ctx,\n\t\t};\n\t\tconst rootScope = ReadOnlyScope.for(thisCtx, ['this']);\n\t\trootScope.setInnerScope('this', thisScope);\n\t\treturn rootScope;\n\t}\n\tstatic reactiveScopeAndScopeForThis<T extends Context>(ctx: T, propertyKeys?: (keyof T)[]) {\n\t\tconst thisScope = ReactiveScope.for(ctx, propertyKeys);\n\t\tconst thisCtx = {\n\t\t\t'this': ctx,\n\t\t};\n\t\tconst rootScope = Scope.for(thisCtx, ['this']);\n\t\trootScope.setInnerScope('this', thisScope);\n\t\treturn rootScope;\n\t}\n\tstatic reactiveScopeControlFor<T extends Context>(context: T, propertyKeys?: (keyof T)[]) {\n\t\treturn new ReactiveScopeControl(context, propertyKeys);\n\t}\n\tstatic blockReactiveScopeControl<T extends Context>(propertyKeys?: (keyof T)[]) {\n\t\treturn new ReactiveScopeControl({} as T, propertyKeys);\n\t}\n\tstatic reactiveScopeControlForThis<T extends Context>(ctx: T, propertyKeys?: (keyof T)[]) {\n\t\tconst thisScope = ReactiveScopeControl.for(ctx, propertyKeys);\n\t\tconst thisCtx = {\n\t\t\t'this': ctx,\n\t\t};\n\t\tconst rootScope = Scope.for(thisCtx, ['this']);\n\t\trootScope.setInnerScope('this', thisScope);\n\t\treturn rootScope;\n\t}\n\tstatic readOnlyScopeAndReactiveScopeControlForThis<T extends Context>(ctx: T, propertyKeys?: (keyof T)[]) {\n\t\tconst thisScope = ReactiveScopeControl.for(ctx, propertyKeys);\n\t\tconst thisCtx = {\n\t\t\t'this': ctx,\n\t\t};\n\t\tconst rootScope = ReadOnlyScope.for(thisCtx, ['this']);\n\t\trootScope.setInnerScope('this', thisScope);\n\t\treturn rootScope;\n\t}\n}\n"]}
|
package/scope/event.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../../src/expressions/scope/event.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAkB,MAAM,YAAY,CAAC;AAG3D,SAAS,eAAe,CAAC,UAAoB,EAAE,MAA0B,EAAE,KAAqB,EAAE,WAAuC;IACxI,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAC9B,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../../src/expressions/scope/event.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAkB,MAAM,YAAY,CAAC;AAG3D,SAAS,eAAe,CAAC,UAAoB,EAAE,MAA0B,EAAE,KAAqB,EAAE,WAAuC;IACxI,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAC9B,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO;QACR,CAAC;QACD,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO;QACR,CAAC;QACD,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACpF,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAA0B,EAAE,KAAY;IAC3E,MAAM,WAAW,GAA+B,EAAE,CAAC;IACnD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAClC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAU,SAAS,CAAC,CAAC;QAClD,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO;QACR,CAAC;QACD,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACpF,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,MAA0B,EAAE,KAAY;IACnF,MAAM,SAAS,GAAG,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACrD,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,aAAa,CAAuC,CAAC;AAC3G,CAAC","sourcesContent":["import { ExpressionEventMap } from '../api/expression.js';\nimport { ReactiveScope, Scope, Context } from './scope.js';\nimport { Stack } from './stack.js';\n\nfunction visitInnerScope(eventNames: string[], events: ExpressionEventMap, scope: Scope<Context>, scopeTuples: [string, Scope<Context>][]) {\n\teventNames.forEach(eventName => {\n\t\tif (eventName.startsWith(':')) {\n\t\t\treturn;\n\t\t}\n\t\tscopeTuples.push([eventName, scope]);\n\t\tconst nextEvents = Object.keys(events[eventName]);\n\t\tif (!nextEvents.length) {\n\t\t\treturn;\n\t\t}\n\t\tconst innerScope = scope.getInnerScope(eventName) ?? scope.setInnerScope(eventName);\n\t\tvisitInnerScope(nextEvents, events[eventName], innerScope, scopeTuples);\n\t});\n}\n\nexport function findScopeByEventMap(events: ExpressionEventMap, stack: Stack): [string, Scope<Context>][] {\n\tconst scopeTuples: [string, Scope<Context>][] = [];\n\tconst rootEventNames = Object.keys(events);\n\trootEventNames.forEach(eventName => {\n\t\tconst scope = stack.findScope<Context>(eventName);\n\t\tscopeTuples.push([eventName, scope]);\n\t\tconst nextEvents = Object.keys(events[eventName]);\n\t\tif (!nextEvents.length) {\n\t\t\treturn;\n\t\t}\n\t\tconst eventScope = scope.getInnerScope(eventName) ?? scope.setInnerScope(eventName);\n\t\tvisitInnerScope(nextEvents, events[eventName], eventScope, scopeTuples);\n\t});\n\treturn scopeTuples;\n}\n\nexport function findReactiveScopeByEventMap(events: ExpressionEventMap, stack: Stack): [string, ReactiveScope<Context>][] {\n\tconst allScopes = findScopeByEventMap(events, stack);\n\treturn allScopes.filter(tuple => tuple[1] instanceof ReactiveScope) as [string, ReactiveScope<Context>][];\n}\n"]}
|
package/scope/finalizer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"finalizer.js","sourceRoot":"","sources":["../../../src/expressions/scope/finalizer.ts"],"names":[],"mappings":"AACA,MAAM,gBAAgB,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,oBAAoB,CACpF,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"finalizer.js","sourceRoot":"","sources":["../../../src/expressions/scope/finalizer.ts"],"names":[],"mappings":"AACA,MAAM,gBAAgB,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,oBAAoB,CACpF,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,CAAC;AAAC,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACzE,CAAC;AAGF,MAAM,UAAU,iBAAiB,CAAC,MAAc,EAAE,OAAgB,EAAE,eAAwB;IAC3F,gBAAgB,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;AAC9D,CAAC;AAGD,MAAM,UAAU,mBAAmB,CAAC,eAAuB;IAC1D,gBAAgB,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;AAC/C,CAAC","sourcesContent":["type Actions = (() => void)[];\nconst actionsFinalizer = !FinalizationRegistry ? undefined : new FinalizationRegistry<Actions>(\n\tactions => actions.forEach(action => { try { action(); } catch (e) { } })\n);\n\n\nexport function finalizerRegister(target: object, actions: Actions, unregisterToken?: object): void {\n\tactionsFinalizer?.register(target, actions, unregisterToken);\n}\n\n\nexport function finalizerUnregister(unregisterToken: object): void {\n\tactionsFinalizer?.unregister(unregisterToken);\n}\n"]}
|