@ibyar/expressions 0.3.0 → 0.3.8
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/LICENSE +1 -1
- package/README.md +79 -6
- package/api/abstract.d.ts +5 -7
- package/api/abstract.js +2 -5
- package/api/abstract.js.map +1 -1
- package/api/app/class.d.ts +99 -8
- package/api/app/class.js +250 -29
- package/api/app/class.js.map +1 -1
- package/api/app/program.d.ts +1 -2
- package/api/app/program.js +1 -4
- package/api/app/program.js.map +1 -1
- package/api/computing/call.d.ts +4 -4
- package/api/computing/call.js +20 -22
- package/api/computing/call.js.map +1 -1
- package/api/computing/new.d.ts +1 -2
- package/api/computing/new.js +4 -7
- package/api/computing/new.js.map +1 -1
- package/api/computing/rest.d.ts +16 -0
- package/api/computing/rest.js +40 -0
- package/api/computing/rest.js.map +1 -0
- package/api/computing/return.d.ts +1 -2
- package/api/computing/return.js +2 -5
- package/api/computing/return.js.map +1 -1
- package/api/computing/spread.d.ts +1 -2
- package/api/computing/spread.js +3 -9
- package/api/computing/spread.js.map +1 -1
- package/api/computing/throw.d.ts +3 -6
- package/api/computing/throw.js +5 -14
- package/api/computing/throw.js.map +1 -1
- package/api/definition/array.d.ts +12 -10
- package/api/definition/array.js +44 -16
- package/api/definition/array.js.map +1 -1
- package/api/definition/bind.d.ts +21 -0
- package/api/definition/bind.js +81 -0
- package/api/definition/bind.js.map +1 -0
- package/api/definition/comment.d.ts +1 -2
- package/api/definition/comment.js +1 -4
- package/api/definition/comment.js.map +1 -1
- package/api/definition/function.d.ts +12 -15
- package/api/definition/function.js +49 -58
- package/api/definition/function.js.map +1 -1
- package/api/definition/member.d.ts +8 -5
- package/api/definition/member.js +40 -31
- package/api/definition/member.js.map +1 -1
- package/api/definition/object.d.ts +16 -17
- package/api/definition/object.js +24 -16
- package/api/definition/object.js.map +1 -1
- package/api/definition/statement.d.ts +1 -2
- package/api/definition/statement.js +2 -5
- package/api/definition/statement.js.map +1 -1
- package/api/definition/values.d.ts +12 -11
- package/api/definition/values.js +17 -12
- package/api/definition/values.js.map +1 -1
- package/api/expression.d.ts +8 -4
- package/api/expression.js.map +1 -1
- package/api/index.d.ts +7 -6
- package/api/index.js +7 -6
- package/api/index.js.map +1 -1
- package/api/module/export.d.ts +1 -2
- package/api/module/export.js +1 -4
- package/api/module/export.js.map +1 -1
- package/api/module/import.d.ts +1 -2
- package/api/module/import.js +1 -4
- package/api/module/import.js.map +1 -1
- package/api/module/module.d.ts +1 -2
- package/api/module/module.js +2 -5
- package/api/module/module.js.map +1 -1
- package/api/operators/assignment.js +2 -2
- package/api/operators/assignment.js.map +1 -1
- package/api/operators/await.d.ts +1 -2
- package/api/operators/await.js +2 -5
- package/api/operators/await.js.map +1 -1
- package/api/operators/binary.js +4 -4
- package/api/operators/binary.js.map +1 -1
- package/api/operators/chaining.d.ts +9 -13
- package/api/operators/chaining.js +14 -48
- package/api/operators/chaining.js.map +1 -1
- package/api/operators/comma.d.ts +1 -2
- package/api/operators/comma.js +2 -5
- package/api/operators/comma.js.map +1 -1
- package/api/operators/grouping.d.ts +1 -2
- package/api/operators/grouping.js +2 -5
- package/api/operators/grouping.js.map +1 -1
- package/api/operators/logical.js.map +1 -1
- package/api/operators/pipeline.d.ts +4 -5
- package/api/operators/pipeline.js +23 -25
- package/api/operators/pipeline.js.map +1 -1
- package/api/operators/ternary.d.ts +1 -2
- package/api/operators/ternary.js +1 -4
- package/api/operators/ternary.js.map +1 -1
- package/api/operators/unary.d.ts +1 -2
- package/api/operators/unary.js +2 -5
- package/api/operators/unary.js.map +1 -1
- package/api/operators/update.d.ts +1 -2
- package/api/operators/update.js +2 -5
- package/api/operators/update.js.map +1 -1
- package/api/statement/{controlflow → control}/block.d.ts +1 -2
- package/api/statement/{controlflow → control}/block.js +2 -5
- package/api/statement/control/block.js.map +1 -0
- package/api/statement/{controlflow → control}/empty.d.ts +1 -2
- package/api/statement/{controlflow → control}/empty.js +1 -4
- package/api/statement/control/empty.js.map +1 -0
- package/api/statement/{controlflow → control}/if.d.ts +1 -2
- package/api/statement/{controlflow → control}/if.js +2 -5
- package/api/statement/control/if.js.map +1 -0
- package/api/statement/{controlflow → control}/switch.d.ts +2 -4
- package/api/statement/{controlflow → control}/switch.js +5 -11
- package/api/statement/control/switch.js.map +1 -0
- package/api/statement/{controlflow → control}/terminate.d.ts +1 -2
- package/api/statement/{controlflow → control}/terminate.js +1 -4
- package/api/statement/control/terminate.js.map +1 -0
- package/api/statement/declarations/declares.d.ts +13 -14
- package/api/statement/declarations/declares.js +10 -9
- package/api/statement/declarations/declares.js.map +1 -1
- package/api/statement/iterations/for.d.ts +14 -14
- package/api/statement/iterations/for.js +12 -24
- package/api/statement/iterations/for.js.map +1 -1
- package/api/statement/iterations/while.d.ts +2 -4
- package/api/statement/iterations/while.js +4 -10
- package/api/statement/iterations/while.js.map +1 -1
- package/package.json +18 -4
- package/scope/scope.d.ts +23 -3
- package/scope/scope.js +67 -1
- package/scope/scope.js.map +1 -1
- package/scope/stack.d.ts +14 -3
- package/scope/stack.js +61 -1
- package/scope/stack.js.map +1 -1
- package/v8/app.js.map +1 -1
- package/v8/nodes.d.ts +1 -2
- package/v8/nodes.js +2 -11
- package/v8/nodes.js.map +1 -1
- package/v8/parser.d.ts +5 -4
- package/v8/parser.js +165 -69
- package/v8/parser.js.map +1 -1
- package/v8/stream.js +20 -6
- package/v8/stream.js.map +1 -1
- package/v8/token.d.ts +3 -0
- package/v8/token.js +9 -0
- package/v8/token.js.map +1 -1
- package/api/operators/destruct.d.ts +0 -19
- package/api/operators/destruct.js +0 -95
- package/api/operators/destruct.js.map +0 -1
- package/api/statement/controlflow/block.js.map +0 -1
- package/api/statement/controlflow/empty.js.map +0 -1
- package/api/statement/controlflow/if.js.map +0 -1
- package/api/statement/controlflow/switch.js.map +0 -1
- package/api/statement/controlflow/terminate.js.map +0 -1
package/api/definition/values.js
CHANGED
|
@@ -22,13 +22,17 @@ let Identifier = Identifier_1 = class Identifier extends AbstractExpressionNode
|
|
|
22
22
|
}
|
|
23
23
|
return stack.get(this.name);
|
|
24
24
|
}
|
|
25
|
+
findScope(stack, scope) {
|
|
26
|
+
if (scope) {
|
|
27
|
+
return scope.getScope(this.name);
|
|
28
|
+
}
|
|
29
|
+
scope = stack.findScope(this.name);
|
|
30
|
+
return scope.getScope(this.name);
|
|
31
|
+
}
|
|
25
32
|
declareVariable(stack, scopeType, propertyValue) {
|
|
26
33
|
return stack.declareVariable(scopeType, this.name, propertyValue);
|
|
27
34
|
}
|
|
28
|
-
|
|
29
|
-
return [this.toString()];
|
|
30
|
-
}
|
|
31
|
-
event(parent) {
|
|
35
|
+
events(parent) {
|
|
32
36
|
if (parent) {
|
|
33
37
|
return [parent + this.toString()];
|
|
34
38
|
}
|
|
@@ -63,10 +67,14 @@ let Literal = Literal_1 = class Literal extends AbstractExpressionNode {
|
|
|
63
67
|
get() {
|
|
64
68
|
return this.value;
|
|
65
69
|
}
|
|
66
|
-
|
|
67
|
-
|
|
70
|
+
findScope(stack, scope) {
|
|
71
|
+
if (scope) {
|
|
72
|
+
return scope.getScope(this.value);
|
|
73
|
+
}
|
|
74
|
+
scope = stack.findScope(this.value);
|
|
75
|
+
return scope.getScope(this.value);
|
|
68
76
|
}
|
|
69
|
-
|
|
77
|
+
events() {
|
|
70
78
|
return [];
|
|
71
79
|
}
|
|
72
80
|
toString() {
|
|
@@ -145,11 +153,8 @@ export class TemplateLiteralExpressionNode extends AbstractExpressionNode {
|
|
|
145
153
|
const values = this.expressions.map(expr => expr.get(stack));
|
|
146
154
|
return tagged(templateStringsArray, ...values);
|
|
147
155
|
}
|
|
148
|
-
|
|
149
|
-
return this.expressions.flatMap(expr => expr.
|
|
150
|
-
}
|
|
151
|
-
event() {
|
|
152
|
-
return this.expressions.flatMap(expr => expr.event());
|
|
156
|
+
events() {
|
|
157
|
+
return this.expressions.flatMap(expr => expr.events());
|
|
153
158
|
}
|
|
154
159
|
toString() {
|
|
155
160
|
let str = this.tag?.toString() || '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"values.js","sourceRoot":"","sources":["../../../../src/expressions/api/definition/values.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CanDeclareVariable, ExpressionNode, NodeDeserializer } from '../expression.js';\nimport type { ScopeType } from '../../scope/scope.js';\nimport type { Stack } from '../../scope/stack.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\nimport { AbstractExpressionNode } from '../abstract.js';\n\n/**\n * An identifier is a sequence of characters in the code that identifies a variable, function, or property.\n * In JavaScript, identifiers are case-sensitive and can contain Unicode letters, $, _, and digits (0-9),\n * but may not start with a digit.\n * An identifier differs from a string in that a string is data,\n * while an identifier is part of the code. In JavaScript,\n * there is no way to convert identifiers to strings,\n * but sometimes it is possible to parse strings into identifiers.\n */\n@Deserializer('Identifier')\nexport class Identifier extends AbstractExpressionNode implements CanDeclareVariable {\n\tstatic fromJSON(node: Identifier): Identifier {\n\t\treturn new Identifier(node.name);\n\t}\n\tconstructor(private name: string | number) {\n\t\tsuper();\n\t}\n\tgetName() {\n\t\treturn this.name;\n\t}\n\tset(stack: Stack, value: any) {\n\t\treturn stack.set(this.name, value) ? value : void 0;\n\t}\n\tget(stack: Stack, thisContext?: any) {\n\t\tif (thisContext) {\n\t\t\treturn thisContext[this.name];\n\t\t}\n\t\treturn stack.get(this.name);\n\t}\n\tdeclareVariable(stack: Stack, scopeType: ScopeType, propertyValue: any): any {\n\t\treturn stack.declareVariable(scopeType, this.name, propertyValue);\n\t}\n\tentry(): string[] {\n\t\treturn [this.toString()];\n\t}\n\tevent(parent?: string): string[] {\n\t\tif (parent) {\n\t\t\treturn [parent + this.toString()];\n\t\t}\n\t\treturn [this.toString()];\n\t}\n\ttoString(): string {\n\t\treturn String(this.name);\n\t}\n\ttoJson(): object {\n\t\treturn { name: this.name };\n\t}\n}\n\n@Deserializer('Literal')\nexport class Literal<T> extends AbstractExpressionNode {\n\tstatic fromJSON(node: Literal<any>):\n\t\tLiteral<string>\n\t\t| Literal<number>\n\t\t| Literal<bigint>\n\t\t| Literal<boolean>\n\t\t| Literal<RegExp>\n\t\t| Literal<null | undefined> {\n\t\treturn new Literal(node.value);\n\t}\n\tconstructor(protected value: T) {\n\t\tsuper();\n\t}\n\tgetValue() {\n\t\treturn this.value;\n\t}\n\tset() {\n\t\tthrow new Error(`${this.constructor.name}#set() has no implementation.`);\n\t}\n\tget(): T {\n\t\treturn this.value;\n\t}\n\tentry(): string[] {\n\t\treturn [];\n\t}\n\tevent(): string[] {\n\t\treturn [];\n\t}\n\ttoString(): string {\n\t\treturn String(this.value);\n\t}\n\ttoJson(): object {\n\t\treturn { value: this.value };\n\t}\n}\n\n@Deserializer('StringLiteral')\nexport class StringLiteral extends Literal<string> {\n\tstatic fromJSON(node: StringLiteral): StringLiteral {\n\t\treturn new StringLiteral(node.value, node.quote);\n\t}\n\tprivate quote: string;\n\tconstructor(value: string, quote?: string) {\n\t\tsuper(value);\n\t\tconst firstChar = value.charAt(0);\n\t\tif (quote) {\n\t\t\tthis.quote = quote;\n\t\t\tthis.value = value;\n\t\t} else if (firstChar === '\"' || firstChar == `'` || firstChar === '`') {\n\t\t\tthis.quote = firstChar;\n\t\t\tthis.value = `\"${value.substring(1, value.length - 1)}\"`;\n\t\t} else {\n\t\t\tthis.quote = '';\n\t\t\tthis.value = value;\n\t\t}\n\t}\n\tgetQuote() {\n\t\treturn this.quote;\n\t}\n\ttoString(): string {\n\t\treturn `${this.quote}${this.value}${this.quote}`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tvalue: this.value,\n\t\t\tquote: this.quote\n\t\t};\n\t}\n}\n\nclass TemplateArray extends Array<string> implements TemplateStringsArray {\n\traw: readonly string[];\n\tconstructor(strings: string[]) {\n\t\tsuper(...strings);\n\t\tthis.raw = strings;\n\t}\n}\n\nexport class TemplateLiteralExpressionNode extends AbstractExpressionNode {\n\tstatic fromJSON(node: TemplateLiteralExpressionNode, deserializer: NodeDeserializer): TemplateLiteralExpressionNode {\n\t\treturn new TemplateLiteralExpressionNode(\n\t\t\tnode.quasis,\n\t\t\tnode.expressions.map(deserializer),\n\t\t\tnode.tag ? deserializer(node.tag) : void 0\n\t\t);\n\t}\n\tconstructor(private quasis: string[], private expressions: ExpressionNode[], private tag?: ExpressionNode,) {\n\t\tsuper();\n\t}\n\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`TemplateLiteralExpressionNode#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tconst tagged: Function = this.tag?.get(stack) || String.raw;\n\t\tconst templateStringsArray = new TemplateArray(this.quasis);\n\t\ttemplateStringsArray.raw = templateStringsArray;\n\t\tconst values = this.expressions.map(expr => expr.get(stack));\n\t\treturn tagged(templateStringsArray, ...values);\n\t}\n\tentry(): string[] {\n\t\treturn this.expressions.flatMap(expr => expr.entry());\n\t}\n\tevent(): string[] {\n\t\treturn this.expressions.flatMap(expr => expr.event());\n\t}\n\ttoString(): string {\n\t\tlet str = this.tag?.toString() || '';\n\t\tstr += '`';\n\t\tlet i = 0;\n\t\tfor (; i < this.quasis.length - 1; i++) {\n\t\t\tstr += this.quasis[i];\n\t\t\tstr += '${';\n\t\t\tstr += this.expressions[i].toString();\n\t\t\tstr += '}';\n\t\t}\n\t\tstr += this.quasis[i];\n\t\tstr += '`';\n\t\treturn str;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tquasis: this.quasis,\n\t\t\texpressions: this.expressions.map(expr => expr.toJSON()),\n\t\t\ttag: this.tag?.toJSON(),\n\t\t};\n\t}\n}\n\n@Deserializer('TemplateLiteral')\nexport class TemplateLiteral extends TemplateLiteralExpressionNode {\n\tconstructor(quasis: string[], expressions: ExpressionNode[]) {\n\t\tsuper(quasis, expressions);\n\t}\n}\n\n@Deserializer('TaggedTemplateExpression')\nexport class TaggedTemplateExpression extends TemplateLiteralExpressionNode {\n\tconstructor(tag: ExpressionNode, quasis: string[], expressions: ExpressionNode[]) {\n\t\tsuper(quasis, expressions, tag);\n\t}\n}\n\n\n@Deserializer('NumberLiteral')\nexport class NumberLiteral extends Literal<number> {\n\tstatic fromJSON(node: NumberLiteral): NumberLiteral {\n\t\treturn new NumberLiteral(node.value);\n\t}\n\tconstructor(value: number) {\n\t\tsuper(value);\n\t}\n}\n\n@Deserializer('BigIntLiteral')\nexport class BigIntLiteral extends Literal<bigint> {\n\tstatic fromJSON(node: BigIntLiteral): BigIntLiteral {\n\t\treturn new BigIntLiteral(BigInt(String(node.value)));\n\t}\n\ttoString(): string {\n\t\treturn `${this.value}n`;\n\t}\n\ttoJson(): object {\n\t\treturn { value: this.value.toString() };\n\t}\n}\n@Deserializer('RegExpLiteral')\nexport class RegExpLiteral extends Literal<RegExp> {\n\tstatic fromJSON(node: RegExpLiteral & { regex: { pattern: string, flags: string } }): RegExpLiteral {\n\t\treturn new RegExpLiteral(new RegExp(node.regex.pattern, node.regex.flags));\n\t}\n\ttoString(): string {\n\t\treturn `${this.value}n`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tregex: {\n\t\t\t\tpattern: this.value.source,\n\t\t\t\tflags: this.value.flags\n\t\t\t}\n\t\t};;\n\t}\n}\n\nexport const TRUE = String(true);\nexport const FALSE = String(false);\n@Deserializer('BooleanLiteral')\nexport class BooleanLiteral extends Literal<boolean> {\n\tstatic fromJSON(node: BooleanLiteral): BooleanLiteral {\n\t\tswitch (String(node.value)) {\n\t\t\tcase TRUE: return TrueNode;\n\t\t\tcase FALSE:\n\t\t\tdefault:\n\t\t\t\treturn FalseNode;\n\t\t}\n\t}\n}\n\nexport const NULL = String(null);\nexport const UNDEFINED = String(undefined);\n\n@Deserializer('NullishLiteral')\nexport class NullishLiteral extends Literal<null | undefined> {\n\tstatic fromJSON(node: NullishLiteral): NullishLiteral {\n\t\tswitch (String(node.value)) {\n\t\t\tcase NULL: return NullNode;\n\t\t\tcase UNDEFINED:\n\t\t\tdefault: return UndefinedNode;\n\t\t}\n\t}\n\n\ttoString(): string {\n\t\tif (typeof this.value === 'undefined') {\n\t\t\treturn UNDEFINED;\n\t\t}\n\t\treturn NULL;\n\t}\n\ttoJson(): object {\n\t\treturn { value: this.toString() };\n\t}\n}\n\n@Deserializer('ThisExpression')\nexport class ThisExpression extends Identifier {\n\tstatic fromJSON(node: ThisExpression): ThisExpression {\n\t\treturn ThisNode;\n\t}\n\tconstructor() {\n\t\tsuper('this');\n\t}\n}\n\nexport const NullNode = Object.freeze(new NullishLiteral(null)) as NullishLiteral;\nexport const UndefinedNode = Object.freeze(new NullishLiteral(undefined)) as NullishLiteral;\nexport const TrueNode = Object.freeze(new BooleanLiteral(true)) as BooleanLiteral;\nexport const FalseNode = Object.freeze(new BooleanLiteral(false)) as BooleanLiteral;\nexport const ThisNode = Object.freeze(new ThisExpression()) as ThisExpression;\nexport const GlobalThisNode = Object.freeze(new Identifier('globalThis')) as Identifier;\nexport const SymbolNode = Object.freeze(new Identifier('Symbol')) as Identifier;\nexport const OfNode = Object.freeze(new Identifier('of')) as Identifier;\nexport const AsNode = Object.freeze(new Identifier('as')) as Identifier;\nexport const GetIdentifier = Object.freeze(new Identifier('get')) as Identifier;\nexport const SetIdentifier = Object.freeze(new Identifier('set')) as Identifier;\nexport const AsyncIdentifier = Object.freeze(new Identifier('async')) as Identifier;\nexport const AwaitIdentifier = Object.freeze(new Identifier('await')) as Identifier;\nexport const ConstructorIdentifier = Object.freeze(new Identifier('constructor')) as Identifier;\nexport const NameIdentifier = Object.freeze(new Identifier('name')) as Identifier;\nexport const EvalIdentifier = Object.freeze(new Identifier('eval')) as Identifier;\nexport const ArgumentsIdentifier = Object.freeze(new Identifier('arguments')) as Identifier;\n"]}
|
|
1
|
+
{"version":3,"file":"values.js","sourceRoot":"","sources":["../../../../src/expressions/api/definition/values.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tCanDeclareExpression, ExpressionNode,\n\tNodeDeserializer, CanFindScope\n} from '../expression.js';\nimport type { Scope, ScopeType } from '../../scope/scope.js';\nimport type { Stack } from '../../scope/stack.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\nimport { AbstractExpressionNode } from '../abstract.js';\n\n/**\n * An identifier is a sequence of characters in the code that identifies a variable, function, or property.\n * In JavaScript, identifiers are case-sensitive and can contain Unicode letters, $, _, and digits (0-9),\n * but may not start with a digit.\n * An identifier differs from a string in that a string is data,\n * while an identifier is part of the code. In JavaScript,\n * there is no way to convert identifiers to strings,\n * but sometimes it is possible to parse strings into identifiers.\n */\n@Deserializer('Identifier')\nexport class Identifier extends AbstractExpressionNode implements CanDeclareExpression, CanFindScope {\n\tstatic fromJSON(node: Identifier): Identifier {\n\t\treturn new Identifier(node.name);\n\t}\n\tconstructor(protected name: string | number) {\n\t\tsuper();\n\t}\n\tgetName() {\n\t\treturn this.name;\n\t}\n\tset(stack: Stack, value: any) {\n\t\treturn stack.set(this.name, value) ? value : void 0;\n\t}\n\tget(stack: Stack, thisContext?: any) {\n\t\tif (thisContext) {\n\t\t\treturn thisContext[this.name];\n\t\t}\n\t\treturn stack.get(this.name);\n\t}\n\tfindScope<T extends object>(stack: Stack): Scope<T>;\n\tfindScope<T extends object>(stack: Stack, scope: Scope<any>): Scope<T>;\n\tfindScope<T extends object>(stack: Stack, scope?: Scope<any>): Scope<T> | undefined {\n\t\tif (scope) {\n\t\t\treturn scope.getScope(this.name);\n\t\t}\n\t\tscope = stack.findScope(this.name);\n\t\treturn scope.getScope(this.name);\n\t}\n\tdeclareVariable(stack: Stack, scopeType: ScopeType, propertyValue: any): any {\n\t\treturn stack.declareVariable(scopeType, this.name, propertyValue);\n\t}\n\tevents(parent?: string): string[] {\n\t\tif (parent) {\n\t\t\treturn [parent + this.toString()];\n\t\t}\n\t\treturn [this.toString()];\n\t}\n\ttoString(): string {\n\t\treturn String(this.name);\n\t}\n\ttoJson(): object {\n\t\treturn { name: this.name };\n\t}\n}\n\n@Deserializer('Literal')\nexport class Literal<T> extends AbstractExpressionNode implements CanFindScope {\n\tstatic fromJSON(node: Literal<any>):\n\t\tLiteral<string>\n\t\t| Literal<number>\n\t\t| Literal<bigint>\n\t\t| Literal<boolean>\n\t\t| Literal<RegExp>\n\t\t| Literal<null | undefined> {\n\t\treturn new Literal(node.value);\n\t}\n\tconstructor(protected value: T) {\n\t\tsuper();\n\t}\n\tgetValue() {\n\t\treturn this.value;\n\t}\n\tset() {\n\t\tthrow new Error(`${this.constructor.name}#set() has no implementation.`);\n\t}\n\tget(): T {\n\t\treturn this.value;\n\t}\n\tfindScope<V extends object>(stack: Stack): Scope<V>;\n\tfindScope<V extends object>(stack: Stack, scope: Scope<any>): Scope<V>;\n\tfindScope<V extends object>(stack: Stack, scope?: Scope<any>): Scope<V> | undefined {\n\t\tif (scope) {\n\t\t\treturn scope.getScope(this.value as any);\n\t\t}\n\t\tscope = stack.findScope(this.value as any);\n\t\treturn scope.getScope(this.value as any);\n\t}\n\tevents(): string[] {\n\t\treturn [];\n\t}\n\ttoString(): string {\n\t\treturn String(this.value);\n\t}\n\ttoJson(): object {\n\t\treturn { value: this.value };\n\t}\n}\n\n@Deserializer('StringLiteral')\nexport class StringLiteral extends Literal<string> {\n\tstatic fromJSON(node: StringLiteral): StringLiteral {\n\t\treturn new StringLiteral(node.value, node.quote);\n\t}\n\tprivate quote: string;\n\tconstructor(value: string, quote?: string) {\n\t\tsuper(value);\n\t\tconst firstChar = value.charAt(0);\n\t\tif (quote) {\n\t\t\tthis.quote = quote;\n\t\t\tthis.value = value;\n\t\t} else if (firstChar === '\"' || firstChar == `'` || firstChar === '`') {\n\t\t\tthis.quote = firstChar;\n\t\t\tthis.value = `\"${value.substring(1, value.length - 1)}\"`;\n\t\t} else {\n\t\t\tthis.quote = '';\n\t\t\tthis.value = value;\n\t\t}\n\t}\n\tgetQuote() {\n\t\treturn this.quote;\n\t}\n\ttoString(): string {\n\t\treturn `${this.quote}${this.value}${this.quote}`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tvalue: this.value,\n\t\t\tquote: this.quote\n\t\t};\n\t}\n}\n\nclass TemplateArray extends Array<string> implements TemplateStringsArray {\n\traw: readonly string[];\n\tconstructor(strings: string[]) {\n\t\tsuper(...strings);\n\t\tthis.raw = strings;\n\t}\n}\n\nexport class TemplateLiteralExpressionNode extends AbstractExpressionNode {\n\tstatic fromJSON(node: TemplateLiteralExpressionNode, deserializer: NodeDeserializer): TemplateLiteralExpressionNode {\n\t\treturn new TemplateLiteralExpressionNode(\n\t\t\tnode.quasis,\n\t\t\tnode.expressions.map(deserializer),\n\t\t\tnode.tag ? deserializer(node.tag) : void 0\n\t\t);\n\t}\n\tconstructor(private quasis: string[], private expressions: ExpressionNode[], private tag?: ExpressionNode,) {\n\t\tsuper();\n\t}\n\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`TemplateLiteralExpressionNode#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tconst tagged: Function = this.tag?.get(stack) || String.raw;\n\t\tconst templateStringsArray = new TemplateArray(this.quasis);\n\t\ttemplateStringsArray.raw = templateStringsArray;\n\t\tconst values = this.expressions.map(expr => expr.get(stack));\n\t\treturn tagged(templateStringsArray, ...values);\n\t}\n\tevents(): string[] {\n\t\treturn this.expressions.flatMap(expr => expr.events());\n\t}\n\ttoString(): string {\n\t\tlet str = this.tag?.toString() || '';\n\t\tstr += '`';\n\t\tlet i = 0;\n\t\tfor (; i < this.quasis.length - 1; i++) {\n\t\t\tstr += this.quasis[i];\n\t\t\tstr += '${';\n\t\t\tstr += this.expressions[i].toString();\n\t\t\tstr += '}';\n\t\t}\n\t\tstr += this.quasis[i];\n\t\tstr += '`';\n\t\treturn str;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tquasis: this.quasis,\n\t\t\texpressions: this.expressions.map(expr => expr.toJSON()),\n\t\t\ttag: this.tag?.toJSON(),\n\t\t};\n\t}\n}\n\n@Deserializer('TemplateLiteral')\nexport class TemplateLiteral extends TemplateLiteralExpressionNode {\n\tconstructor(quasis: string[], expressions: ExpressionNode[]) {\n\t\tsuper(quasis, expressions);\n\t}\n}\n\n@Deserializer('TaggedTemplateExpression')\nexport class TaggedTemplateExpression extends TemplateLiteralExpressionNode {\n\tconstructor(tag: ExpressionNode, quasis: string[], expressions: ExpressionNode[]) {\n\t\tsuper(quasis, expressions, tag);\n\t}\n}\n\n\n@Deserializer('NumberLiteral')\nexport class NumberLiteral extends Literal<number> {\n\tstatic fromJSON(node: NumberLiteral): NumberLiteral {\n\t\treturn new NumberLiteral(node.value);\n\t}\n\tconstructor(value: number) {\n\t\tsuper(value);\n\t}\n}\n\n@Deserializer('BigIntLiteral')\nexport class BigIntLiteral extends Literal<bigint> {\n\tstatic fromJSON(node: BigIntLiteral): BigIntLiteral {\n\t\treturn new BigIntLiteral(BigInt(String(node.value)));\n\t}\n\ttoString(): string {\n\t\treturn `${this.value}n`;\n\t}\n\ttoJson(): object {\n\t\treturn { value: this.value.toString() };\n\t}\n}\n@Deserializer('RegExpLiteral')\nexport class RegExpLiteral extends Literal<RegExp> {\n\tstatic fromJSON(node: RegExpLiteral & { regex: { pattern: string, flags: string } }): RegExpLiteral {\n\t\treturn new RegExpLiteral(new RegExp(node.regex.pattern, node.regex.flags));\n\t}\n\ttoString(): string {\n\t\treturn `${this.value}n`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tregex: {\n\t\t\t\tpattern: this.value.source,\n\t\t\t\tflags: this.value.flags\n\t\t\t}\n\t\t};;\n\t}\n}\n\nexport const TRUE = String(true);\nexport const FALSE = String(false);\n@Deserializer('BooleanLiteral')\nexport class BooleanLiteral extends Literal<boolean> {\n\tstatic fromJSON(node: BooleanLiteral): BooleanLiteral {\n\t\tswitch (String(node.value)) {\n\t\t\tcase TRUE: return TrueNode;\n\t\t\tcase FALSE:\n\t\t\tdefault:\n\t\t\t\treturn FalseNode;\n\t\t}\n\t}\n}\n\nexport const NULL = String(null);\nexport const UNDEFINED = String(undefined);\n\n@Deserializer('NullishLiteral')\nexport class NullishLiteral extends Literal<null | undefined> {\n\tstatic fromJSON(node: NullishLiteral): NullishLiteral {\n\t\tswitch (String(node.value)) {\n\t\t\tcase NULL: return NullNode;\n\t\t\tcase UNDEFINED:\n\t\t\tdefault: return UndefinedNode;\n\t\t}\n\t}\n\n\ttoString(): string {\n\t\tif (typeof this.value === 'undefined') {\n\t\t\treturn UNDEFINED;\n\t\t}\n\t\treturn NULL;\n\t}\n\ttoJson(): object {\n\t\treturn { value: this.toString() };\n\t}\n}\n\n@Deserializer('ThisExpression')\nexport class ThisExpression extends Identifier {\n\tstatic fromJSON(node: ThisExpression): ThisExpression {\n\t\treturn ThisNode;\n\t}\n\tconstructor() {\n\t\tsuper('this');\n\t}\n}\n\nexport const NullNode = Object.freeze(new NullishLiteral(null)) as NullishLiteral;\nexport const UndefinedNode = Object.freeze(new NullishLiteral(undefined)) as NullishLiteral;\nexport const TrueNode = Object.freeze(new BooleanLiteral(true)) as BooleanLiteral;\nexport const FalseNode = Object.freeze(new BooleanLiteral(false)) as BooleanLiteral;\nexport const ThisNode = Object.freeze(new ThisExpression()) as ThisExpression;\nexport const GlobalThisNode = Object.freeze(new Identifier('globalThis')) as Identifier;\nexport const SymbolNode = Object.freeze(new Identifier('Symbol')) as Identifier;\nexport const OfNode = Object.freeze(new Identifier('of')) as Identifier;\nexport const AsNode = Object.freeze(new Identifier('as')) as Identifier;\nexport const GetIdentifier = Object.freeze(new Identifier('get')) as Identifier;\nexport const SetIdentifier = Object.freeze(new Identifier('set')) as Identifier;\nexport const AsyncIdentifier = Object.freeze(new Identifier('async')) as Identifier;\nexport const AwaitIdentifier = Object.freeze(new Identifier('await')) as Identifier;\nexport const ConstructorIdentifier = Object.freeze(new Identifier('constructor')) as Identifier;\nexport const NameIdentifier = Object.freeze(new Identifier('name')) as Identifier;\nexport const EvalIdentifier = Object.freeze(new Identifier('eval')) as Identifier;\nexport const ArgumentsIdentifier = Object.freeze(new Identifier('arguments')) as Identifier;\n"]}
|
package/api/expression.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ScopeType } from '../scope/scope.js';
|
|
1
|
+
import type { Scope, ScopeType } from '../scope/scope.js';
|
|
2
2
|
import type { Stack } from '../scope/stack.js';
|
|
3
3
|
export declare type NodeType = {
|
|
4
4
|
type: string;
|
|
@@ -9,8 +9,7 @@ export declare type NodeJsonType = {
|
|
|
9
9
|
export interface ExpressionNode {
|
|
10
10
|
set(stack: Stack, value: any): any;
|
|
11
11
|
get(stack: Stack, thisContext?: any): any;
|
|
12
|
-
|
|
13
|
-
event(parent?: string): string[];
|
|
12
|
+
events(parent?: string): string[];
|
|
14
13
|
toString(): string;
|
|
15
14
|
toJSON(key?: string): NodeJsonType;
|
|
16
15
|
getClass(): NodeExpressionClass<ExpressionNode>;
|
|
@@ -22,7 +21,12 @@ export declare type NodeDeserializer<T = ExpressionNode> = (node: T) => T;
|
|
|
22
21
|
export interface NodeExpressionClass<T extends ExpressionNode> extends TypeOf<T> {
|
|
23
22
|
fromJSON(node: T, deserializer: NodeDeserializer): T;
|
|
24
23
|
}
|
|
25
|
-
export interface
|
|
24
|
+
export interface CanDeclareExpression extends ExpressionNode {
|
|
26
25
|
declareVariable(stack: Stack, scopeType: ScopeType, propertyValue?: any): any;
|
|
27
26
|
}
|
|
27
|
+
export interface CanFindScope {
|
|
28
|
+
findScope<T extends object>(stack: Stack): Scope<T>;
|
|
29
|
+
findScope<T extends object>(stack: Stack, scope: Scope<any>): Scope<T>;
|
|
30
|
+
findScope<T extends object>(stack: Stack, scope?: Scope<any>): Scope<T> | undefined;
|
|
31
|
+
}
|
|
28
32
|
export {};
|
package/api/expression.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression.js","sourceRoot":"","sources":["../../../src/expressions/api/expression.ts"],"names":[],"mappings":"","sourcesContent":["import type { ScopeType } from '../scope/scope.js';\nimport type { Stack } from '../scope/stack.js';\n\nexport type NodeType = { type: string };\nexport type NodeJsonType = { [key: string]: any } & NodeType;\n\nexport interface ExpressionNode {\n\tset(stack: Stack, value: any): any;\n\tget(stack: Stack, thisContext?: any): any;\n\
|
|
1
|
+
{"version":3,"file":"expression.js","sourceRoot":"","sources":["../../../src/expressions/api/expression.ts"],"names":[],"mappings":"","sourcesContent":["import type { Scope, ScopeType } from '../scope/scope.js';\nimport type { Stack } from '../scope/stack.js';\n\nexport type NodeType = { type: string };\nexport type NodeJsonType = { [key: string]: any } & NodeType;\n\nexport interface ExpressionNode {\n\n\t/**\n\t * assign the value to this expression in stack.\n\t * \n\t * most ExpressionNode will not implement this method, and will throw an exception.\n\t * @param stack \n\t * @param value \n\t */\n\tset(stack: Stack, value: any): any;\n\n\t/**\n\t * execute/get the code for this expression and return the result value.\n\t * @param stack \n\t * @param thisContext \n\t */\n\tget(stack: Stack, thisContext?: any): any;\n\n\t/**\n\t * get all the events form this expression\n\t * @param parent \n\t */\n\tevents(parent?: string): string[];\n\n\t/**\n\t * re-write this expression as a javascript source \n\t */\n\ttoString(): string;\n\n\t/**\n\t * used to map this object to represent an [ESTree](https://github.com/estree/estree) json object\n\t * @param key \n\t */\n\ttoJSON(key?: string): NodeJsonType;\n\n\t/**\n\t * just a helper method to force class that implement this interface to\n\t * have a static method `fromJSON` to help reconstruct this ExpressionNode\n\t * with all necessary implementation to execute the code\n\t */\n\tgetClass(): NodeExpressionClass<ExpressionNode>;\n}\n\ninterface TypeOf<T> {\n\tnew(...params: any[]): T;\n}\n\nexport type NodeDeserializer<T = ExpressionNode> = (node: T) => T;\n\n/**\n * this is how to:\n * describe a class with it's static functions and properties\n * in the interface add getClass method\n */\nexport interface NodeExpressionClass<T extends ExpressionNode> extends TypeOf<T> {\n\tfromJSON(node: T, deserializer: NodeDeserializer): T;\n}\n\nexport interface CanDeclareExpression extends ExpressionNode {\n\t/**\n\t * declare variable in the current local scope (block),\n\t * or closest function scope (global) scop,\n\t * the propertyName will be calculated at runtime\n\t * @param stack the stack which an identifier will be declared\n\t * @param propertyValue the initial value of identifier\n\t * @param scope which scop to declare this identifier\n\t */\n\tdeclareVariable(stack: Stack, scopeType: ScopeType, propertyValue?: any): any;\n}\n\n\n/**\n * An interface meant to be implemented by MemberExpression,\n * Identifier and ChainExpression and all Literal expressions\n */\nexport interface CanFindScope {\n\t/**\n\t * try to search for scope of this expression, is meant to be used \n\t * @param stack \n\t */\n\tfindScope<T extends object>(stack: Stack): Scope<T>;\n\tfindScope<T extends object>(stack: Stack, scope: Scope<any>): Scope<T>;\n\tfindScope<T extends object>(stack: Stack, scope?: Scope<any>): Scope<T> | undefined;\n}\n"]}
|
package/api/index.d.ts
CHANGED
|
@@ -6,19 +6,20 @@ export * from './definition/array.js';
|
|
|
6
6
|
export * from './definition/comment.js';
|
|
7
7
|
export * from './definition/function.js';
|
|
8
8
|
export * from './definition/member.js';
|
|
9
|
+
export * from './definition/bind.js';
|
|
9
10
|
export * from './definition/object.js';
|
|
10
11
|
export * from './definition/statement.js';
|
|
11
12
|
export * from './computing/call.js';
|
|
12
13
|
export * from './computing/new.js';
|
|
13
14
|
export * from './computing/return.js';
|
|
14
15
|
export * from './computing/spread.js';
|
|
16
|
+
export * from './computing/rest.js';
|
|
15
17
|
export * from './computing/throw.js';
|
|
16
18
|
export * from './operators/assignment.js';
|
|
17
19
|
export * from './operators/await.js';
|
|
18
20
|
export * from './operators/binary.js';
|
|
19
21
|
export * from './operators/chaining.js';
|
|
20
22
|
export * from './operators/comma.js';
|
|
21
|
-
export * from './operators/destruct.js';
|
|
22
23
|
export * from './operators/grouping.js';
|
|
23
24
|
export * from './operators/logical.js';
|
|
24
25
|
export * from './operators/pipeline.js';
|
|
@@ -26,11 +27,11 @@ export * from './operators/ternary.js';
|
|
|
26
27
|
export * from './operators/types.js';
|
|
27
28
|
export * from './operators/unary.js';
|
|
28
29
|
export * from './operators/update.js';
|
|
29
|
-
export * from './statement/
|
|
30
|
-
export * from './statement/
|
|
31
|
-
export * from './statement/
|
|
32
|
-
export * from './statement/
|
|
33
|
-
export * from './statement/
|
|
30
|
+
export * from './statement/control/block.js';
|
|
31
|
+
export * from './statement/control/empty.js';
|
|
32
|
+
export * from './statement/control/if.js';
|
|
33
|
+
export * from './statement/control/switch.js';
|
|
34
|
+
export * from './statement/control/terminate.js';
|
|
34
35
|
export * from './statement/declarations/declares.js';
|
|
35
36
|
export * from './statement/iterations/for.js';
|
|
36
37
|
export * from './statement/iterations/while.js';
|
package/api/index.js
CHANGED
|
@@ -6,19 +6,20 @@ export * from './definition/array.js';
|
|
|
6
6
|
export * from './definition/comment.js';
|
|
7
7
|
export * from './definition/function.js';
|
|
8
8
|
export * from './definition/member.js';
|
|
9
|
+
export * from './definition/bind.js';
|
|
9
10
|
export * from './definition/object.js';
|
|
10
11
|
export * from './definition/statement.js';
|
|
11
12
|
export * from './computing/call.js';
|
|
12
13
|
export * from './computing/new.js';
|
|
13
14
|
export * from './computing/return.js';
|
|
14
15
|
export * from './computing/spread.js';
|
|
16
|
+
export * from './computing/rest.js';
|
|
15
17
|
export * from './computing/throw.js';
|
|
16
18
|
export * from './operators/assignment.js';
|
|
17
19
|
export * from './operators/await.js';
|
|
18
20
|
export * from './operators/binary.js';
|
|
19
21
|
export * from './operators/chaining.js';
|
|
20
22
|
export * from './operators/comma.js';
|
|
21
|
-
export * from './operators/destruct.js';
|
|
22
23
|
export * from './operators/grouping.js';
|
|
23
24
|
export * from './operators/logical.js';
|
|
24
25
|
export * from './operators/pipeline.js';
|
|
@@ -26,11 +27,11 @@ export * from './operators/ternary.js';
|
|
|
26
27
|
export * from './operators/types.js';
|
|
27
28
|
export * from './operators/unary.js';
|
|
28
29
|
export * from './operators/update.js';
|
|
29
|
-
export * from './statement/
|
|
30
|
-
export * from './statement/
|
|
31
|
-
export * from './statement/
|
|
32
|
-
export * from './statement/
|
|
33
|
-
export * from './statement/
|
|
30
|
+
export * from './statement/control/block.js';
|
|
31
|
+
export * from './statement/control/empty.js';
|
|
32
|
+
export * from './statement/control/if.js';
|
|
33
|
+
export * from './statement/control/switch.js';
|
|
34
|
+
export * from './statement/control/terminate.js';
|
|
34
35
|
export * from './statement/declarations/declares.js';
|
|
35
36
|
export * from './statement/iterations/for.js';
|
|
36
37
|
export * from './statement/iterations/while.js';
|
package/api/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/expressions/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAE9B,cAAc,8BAA8B,CAAC;AAE7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AAIrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/expressions/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAE9B,cAAc,8BAA8B,CAAC;AAE7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AAIrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AAGjD,cAAc,sCAAsC,CAAC;AAErD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC","sourcesContent":["export * from './expression.js';\nexport * from './abstract.js';\n\nexport * from './deserialize/deserialize.js';\n\nexport * from './definition/values.js';\nexport * from './definition/array.js';\nexport * from './definition/comment.js';\nexport * from './definition/function.js';\nexport * from './definition/member.js';\nexport * from './definition/bind.js';\nexport * from './definition/object.js';\nexport * from './definition/statement.js';\n\n\nexport * from './computing/call.js';\nexport * from './computing/new.js';\nexport * from './computing/return.js';\nexport * from './computing/spread.js';\nexport * from './computing/rest.js';\nexport * from './computing/throw.js';\n\n\n\nexport * from './operators/assignment.js';\nexport * from './operators/await.js';\nexport * from './operators/binary.js';\nexport * from './operators/chaining.js';\nexport * from './operators/comma.js';\nexport * from './operators/grouping.js';\nexport * from './operators/logical.js';\nexport * from './operators/pipeline.js';\nexport * from './operators/ternary.js';\nexport * from './operators/types.js';\nexport * from './operators/unary.js';\nexport * from './operators/update.js';\n\n\nexport * from './statement/control/block.js';\nexport * from './statement/control/empty.js';\nexport * from './statement/control/if.js';\nexport * from './statement/control/switch.js';\nexport * from './statement/control/terminate.js';\n\n\nexport * from './statement/declarations/declares.js';\n\nexport * from './statement/iterations/for.js';\nexport * from './statement/iterations/while.js';\n\n// :: bind operator\n\n// |:> pipeline bind operator\n// :|>\n// |>: \n// ::|>\n\n"]}
|
package/api/module/export.d.ts
CHANGED
|
@@ -25,8 +25,7 @@ export declare class ExportNode extends AbstractExpressionNode {
|
|
|
25
25
|
getExportList(): ExportAliasName[] | undefined;
|
|
26
26
|
set(stack: Stack): void;
|
|
27
27
|
get(stack: Stack): void;
|
|
28
|
-
|
|
29
|
-
event(parent?: string): string[];
|
|
28
|
+
events(parent?: string): string[];
|
|
30
29
|
toString(): string;
|
|
31
30
|
toJson(): object;
|
|
32
31
|
}
|
package/api/module/export.js
CHANGED
|
@@ -52,10 +52,7 @@ let ExportNode = ExportNode_1 = class ExportNode extends AbstractExpressionNode
|
|
|
52
52
|
get(stack) {
|
|
53
53
|
throw new Error(`ExportNode.#get() has no implementation.`);
|
|
54
54
|
}
|
|
55
|
-
|
|
56
|
-
return [];
|
|
57
|
-
}
|
|
58
|
-
event(parent) {
|
|
55
|
+
events(parent) {
|
|
59
56
|
return [];
|
|
60
57
|
}
|
|
61
58
|
toString() {
|
package/api/module/export.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../../../src/expressions/api/module/export.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,MAAM,OAAO,eAAe;IAC3B,YAAmB,UAA0B,EAAY,UAA2B;QAAjE,eAAU,GAAV,UAAU,CAAgB;QAAY,eAAU,GAAV,UAAU,CAAiB;IAAI,CAAC;IAEzF,IAAW,SAAS;QACnB,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC;IAC3C,CAAC;IAED,IAAW,SAAS,CAAC,UAA0B;QAC9C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC9B,CAAC;IAED,QAAQ;QACP,IAAI,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;SACxE;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IACnC,CAAC;IAED,MAAM;QACL,OAAO;YACN,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACpC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE;SACpC,CAAC;IACH,CAAC;CACD;AAoCD,IAAa,UAAU,kBAAvB,MAAa,UAAW,SAAQ,sBAAsB;IASrD,YACS,UAA8B,EAC9B,UAA4B,EAC5B,gBAAkC,EAClC,UAA2B;QACnC,KAAK,EAAE,CAAC;QAJA,eAAU,GAAV,UAAU,CAAoB;QAC9B,eAAU,GAAV,UAAU,CAAkB;QAC5B,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,eAAU,GAAV,UAAU,CAAiB;IAEpC,CAAC;IAdD,MAAM,CAAC,QAAQ,CAAC,IAAgB,EAAE,YAA8B;QAC/D,OAAO,IAAI,YAAU,CACpB,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAC9G,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EACjI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EACnJ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CACxD,CAAC;IACH,CAAC;IAQD,aAAa;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IACD,mBAAmB;QAClB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC9B,CAAC;IACD,aAAa;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IACD,GAAG,CAAC,KAAY;QACf,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC7D,CAAC;IACD,GAAG,CAAC,KAAY;QACf,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC7D,CAAC;IACD,
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../../../src/expressions/api/module/export.ts"],"names":[],"mappings":"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","sourcesContent":["import type { NodeDeserializer, ExpressionNode } from '../expression.js';\nimport type { Stack } from '../../scope/stack.js';\nimport { AbstractExpressionNode } from '../abstract.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\n\nexport class ExportAliasName {\n\tconstructor(public exportName: ExpressionNode, protected _aliasName?: ExpressionNode) { }\n\n\tpublic get aliasName(): ExpressionNode {\n\t\treturn this._aliasName || this.exportName;\n\t}\n\n\tpublic set aliasName(_aliasName: ExpressionNode) {\n\t\tthis._aliasName = _aliasName;\n\t}\n\n\ttoString() {\n\t\tif (this._aliasName) {\n\t\t\treturn `${this.exportName.toString()} as ${this._aliasName.toString()}`;\n\t\t}\n\t\treturn this.exportName.toString();\n\t}\n\n\ttoJSON() {\n\t\treturn {\n\t\t\texportName: this.exportName.toJSON(),\n\t\t\taliasName: this._aliasName?.toJSON()\n\t\t};\n\t}\n}\n\n/**\n * There are two types of exports:\n * 1- Named Exports (Zero or more exports per module)\n * 2- Default Exports (One per module)\n * \n * // Exporting individual features\n * export let name1, name2, …, nameN; // also var, const\n * export let name1 = …, name2 = …, …, nameN; // also var, const\n * export function functionName(){...}\n * export class ClassName {...}\n * \n * // Export list\n * export { name1, name2, …, nameN };\n * \n * // Renaming exports\n * export { variable1 as name1, variable2 as name2, …, nameN };\n * \n * // Exporting destructed assignments with renaming\n * export const { name1, name2: bar } = o;\n * \n * // Default exports\n * export default expression;\n * export default function (…) { … } // also class, function*\n * export default function name1(…) { … } // also class, function*\n * export { name1 as default, … };\n * \n * // Aggregating modules\n * export * from …; // does not set the default export\n * export * as name1 from …; // Draft ECMAScript® 2O21\n * export { name1, name2, …, nameN } from …;\n * export { import1 as name1, import2 as name2, …, nameN } from …;\n * export { default, … } from …;\n */\n@Deserializer('export')\nexport class ExportNode extends AbstractExpressionNode {\n\tstatic fromJSON(node: ExportNode, deserializer: NodeDeserializer): ExportNode {\n\t\treturn new ExportNode(\n\t\t\tnode.exportList?.map(expo => new ExportAliasName(deserializer(expo.exportName), deserializer(expo.aliasName))),\n\t\t\tnode.starExport ? new ExportAliasName(deserializer(node.starExport.exportName), deserializer(node.starExport.aliasName)) : void 0,\n\t\t\tnode.exportExpression ? new ExportAliasName(deserializer(node.exportExpression.exportName), deserializer(node.exportExpression.aliasName)) : void 0,\n\t\t\tnode.moduleName ? deserializer(node.moduleName) : void 0\n\t\t);\n\t}\n\tconstructor(\n\t\tprivate exportList?: ExportAliasName[],\n\t\tprivate starExport?: ExportAliasName,\n\t\tprivate exportExpression?: ExportAliasName,\n\t\tprivate moduleName?: ExpressionNode) {\n\t\tsuper();\n\t}\n\tgetModuleName() {\n\t\treturn this.moduleName;\n\t}\n\tgetExportExpression() {\n\t\treturn this.exportExpression;\n\t}\n\tgetExportList() {\n\t\treturn this.exportList;\n\t}\n\tset(stack: Stack) {\n\t\tthrow new Error(`ExportNode.#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tthrow new Error(`ExportNode.#get() has no implementation.`);\n\t}\n\tevents(parent?: string): string[] {\n\t\treturn [];\n\t}\n\ttoString() {\n\t\t// Aggregating modules\n\t\tif (this.exportList && this.moduleName) {\n\t\t\treturn `export { ${this.exportList.map(expo => expo.toString()).join(', ')} } from '${this.moduleName.toString()}';`;\n\t\t}\n\t\tif (this.starExport && this.moduleName) {\n\t\t\treturn `export ${this.starExport.toString()} from '${this.moduleName.toString()}';`;\n\t\t}\n\n\t\tif (this.exportList) {\n\t\t\treturn `export { ${this.exportList.map(expo => expo.toString()).join(', ')} };`;\n\t\t}\n\t\tif (this.exportExpression) {\n\t\t\treturn `export ${this.exportExpression.toString()};`;\n\t\t}\n\t\tthrow new Error(`not enough params found,at least 'exportExpression' should be initialized.`);\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\texportList: this.exportList?.map(expression => expression.toJSON()),\n\t\t\tstarExport: this.starExport?.toJSON(),\n\t\t\texportExpression: this.exportExpression?.toJSON(),\n\t\t\tmoduleName: this.moduleName?.toJSON(),\n\t\t};\n\t}\n}\n"]}
|
package/api/module/import.d.ts
CHANGED
|
@@ -26,8 +26,7 @@ export declare class ImportNode extends AbstractExpressionNode {
|
|
|
26
26
|
getImportAliasNames(): ImportAliasName[] | undefined;
|
|
27
27
|
set(stack: Stack): void;
|
|
28
28
|
get(stack: Stack): void;
|
|
29
|
-
|
|
30
|
-
event(parent?: string): string[];
|
|
29
|
+
events(parent?: string): string[];
|
|
31
30
|
toString(): string;
|
|
32
31
|
toJson(): object;
|
|
33
32
|
}
|
package/api/module/import.js
CHANGED
|
@@ -55,10 +55,7 @@ let ImportNode = ImportNode_1 = class ImportNode extends AbstractExpressionNode
|
|
|
55
55
|
get(stack) {
|
|
56
56
|
throw new Error(`ImportNode.#get() has no implementation.`);
|
|
57
57
|
}
|
|
58
|
-
|
|
59
|
-
return [];
|
|
60
|
-
}
|
|
61
|
-
event(parent) {
|
|
58
|
+
events(parent) {
|
|
62
59
|
return [];
|
|
63
60
|
}
|
|
64
61
|
toString() {
|
package/api/module/import.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../../../src/expressions/api/module/import.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,MAAM,OAAO,eAAe;IAC3B,YAAmB,UAA0B,EAAY,UAA2B;QAAjE,eAAU,GAAV,UAAU,CAAgB;QAAY,eAAU,GAAV,UAAU,CAAiB;IAAI,CAAC;IAEzF,IAAW,SAAS;QACnB,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC;IAC3C,CAAC;IAED,IAAW,SAAS,CAAC,UAA0B;QAC9C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC9B,CAAC;IAED,QAAQ;QACP,IAAI,IAAI,CAAC,UAAU,EAAE;YACpB,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;SACxE;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IACnC,CAAC;IAED,MAAM;QACL,OAAO;YACN,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACpC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE;SACpC,CAAC;IACH,CAAC;CACD;AAiBD,IAAa,UAAU,kBAAvB,MAAa,UAAW,SAAQ,sBAAsB;IASrD,YACS,UAA0B,EAC1B,aAA8B,EAC9B,SAA0B,EAC1B,gBAAoC;QAC5C,KAAK,EAAE,CAAC;QAJA,eAAU,GAAV,UAAU,CAAgB;QAC1B,kBAAa,GAAb,aAAa,CAAiB;QAC9B,cAAS,GAAT,SAAS,CAAiB;QAC1B,qBAAgB,GAAhB,gBAAgB,CAAoB;IAE7C,CAAC;IAdD,MAAM,CAAC,QAAQ,CAAC,IAAgB,EAAE,YAA8B;QAC/D,OAAO,IAAI,YAAU,CACpB,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAC7B,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAC9D,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EACtD,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CACpH,CAAC;IACH,CAAC;IAQD,aAAa;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IACD,gBAAgB;QACf,OAAO,IAAI,CAAC,aAAa,CAAC;IAC3B,CAAC;IACD,YAAY;QACX,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IACD,mBAAmB;QAClB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC9B,CAAC;IACD,GAAG,CAAC,KAAY;QACf,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC7D,CAAC;IACD,GAAG,CAAC,KAAY;QACf,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC7D,CAAC;IACD,
|
|
1
|
+
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../../../src/expressions/api/module/import.ts"],"names":[],"mappings":"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","sourcesContent":["import type { NodeDeserializer, ExpressionNode } from '../expression.js';\nimport type { Stack } from '../../scope/stack.js';\nimport { AbstractExpressionNode } from '../abstract.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\n\nexport class ImportAliasName {\n\tconstructor(public importName: ExpressionNode, protected _aliasName?: ExpressionNode) { }\n\n\tpublic get aliasName(): ExpressionNode {\n\t\treturn this._aliasName || this.importName;\n\t}\n\n\tpublic set aliasName(_aliasName: ExpressionNode) {\n\t\tthis._aliasName = _aliasName;\n\t}\n\n\ttoString() {\n\t\tif (this._aliasName) {\n\t\t\treturn `${this.importName.toString()} as ${this._aliasName.toString()}`;\n\t\t}\n\t\treturn this.importName.toString();\n\t}\n\n\ttoJSON() {\n\t\treturn {\n\t\t\texportName: this.importName.toJSON(),\n\t\t\taliasName: this._aliasName?.toJSON()\n\t\t};\n\t}\n}\n\n\n/**\n * import defaultExport from \"module-name\";\\n\n * import * as name from \"module-name\";\\n\n * import { export1 } from \"module-name\";\n * import { export1 as alias1 } from \"module-name\";\n * import { export1 , export2 } from \"module-name\";\n * import { foo , bar } from \"module-name/path/to/specific/un-exported/file\";\n * import { export1 , export2 as alias2 , [...] } from \"module-name\";\n * import defaultExport, { export1 [ , [...] ] } from \"module-name\";\n * import defaultExport, * as name from \"module-name\";\n * import \"module-name\";\n * var promise = import(\"module-name\");\n */\n@Deserializer('import')\nexport class ImportNode extends AbstractExpressionNode {\n\tstatic fromJSON(node: ImportNode, deserializer: NodeDeserializer): ImportNode {\n\t\treturn new ImportNode(\n\t\t\tdeserializer(node.moduleName),\n\t\t\tnode.defaultExport ? deserializer(node.defaultExport) : void 0,\n\t\t\tnode.namespace ? deserializer(node.namespace) : void 0,\n\t\t\tnode.importAliasNames?.map(expo => new ImportAliasName(deserializer(expo.importName), deserializer(expo.aliasName))),\n\t\t);\n\t}\n\tconstructor(\n\t\tprivate moduleName: ExpressionNode,\n\t\tprivate defaultExport?: ExpressionNode,\n\t\tprivate namespace?: ExpressionNode,\n\t\tprivate importAliasNames?: ImportAliasName[]) {\n\t\tsuper();\n\t}\n\tgetModuleName() {\n\t\treturn this.moduleName;\n\t}\n\tgetDefaultExport() {\n\t\treturn this.defaultExport;\n\t}\n\tgetNamespace() {\n\t\treturn this.namespace;\n\t}\n\tgetImportAliasNames() {\n\t\treturn this.importAliasNames;\n\t}\n\tset(stack: Stack) {\n\t\tthrow new Error(`ImportNode.#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tthrow new Error(`ImportNode.#get() has no implementation.`);\n\t}\n\tevents(parent?: string): string[] {\n\t\treturn [];\n\t}\n\ttoString() {\n\t\tif (this.defaultExport && this.namespace && this.importAliasNames) {\n\t\t\t// import defaultExport, * as name, { export1 , export2 as alias2 , [...] } from \"module-name;\n\t\t\treturn `import ${this.defaultExport.toString()}, * as ${this.namespace.toString()}, { ${this.importAliasNames.map(expo => expo.toString()).join(', ')} } from '${this.moduleName.toString()}';`;\n\t\t}\n\n\t\tif (this.defaultExport && this.importAliasNames) {\n\t\t\t// import defaultExport, { export1 , export2 as alias2 , [...] } from \"module-name;\n\t\t\treturn `import ${this.defaultExport.toString()}, { ${this.importAliasNames.map(expo => expo.toString()).join(', ')} } from '${this.moduleName.toString()}';`;\n\n\t\t}\n\t\tif (this.namespace && this.importAliasNames) {\n\n\t\t\t// import * as name, { export1 , export2 as alias2 , [...] } from \"module-name;\n\t\t\treturn `import * as ${this.namespace.toString()}, { ${this.importAliasNames.map(expo => expo.toString()).join(', ')} } from '${this.moduleName.toString()}';`;\n\t\t}\n\t\tif (this.namespace && this.defaultExport) {\n\n\t\t\t// import defaultExport, * as name from \"module-name;\n\t\t\treturn `import ${this.defaultExport.toString()}, * as ${this.namespace.toString()} from '${this.moduleName.toString()}';`;\n\t\t}\n\n\t\tif (this.importAliasNames) {\n\n\t\t\t// import { export1 , export2 as alias2 , [...] } from \"module-name;\n\t\t\treturn `import { ${this.importAliasNames.map(expo => expo.toString()).join(', ')} } from '${this.moduleName.toString()}';`;\n\t\t}\n\t\tif (this.defaultExport) {\n\n\t\t\t// import defaultExport from \"module-name;\n\t\t\treturn `import ${this.defaultExport.toString()} from '${this.moduleName.toString()}';`;\n\t\t}\n\t\tif (this.namespace) {\n\n\t\t\t// import * as name from \"module-name;\n\t\t\treturn `import * as ${this.namespace.toString()} from '${this.moduleName.toString()}';`;\n\t\t}\n\n\t\treturn `import '${this.moduleName.toString()}'`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tmoduleName: this.moduleName.toJSON(),\n\t\t\tdefaultExport: this.defaultExport?.toJSON(),\n\t\t\tnamespace: this.namespace?.toJSON(),\n\t\t\texportAliasNames: this.importAliasNames?.map(expression => expression.toJSON()),\n\t\t};\n\t}\n}\n"]}
|
package/api/module/module.d.ts
CHANGED
|
@@ -16,8 +16,7 @@ export declare class ModuleNode extends AbstractExpressionNode {
|
|
|
16
16
|
getBody(): ExpressionNode[];
|
|
17
17
|
set(stack: Stack): void;
|
|
18
18
|
get(stack: Stack): void;
|
|
19
|
-
|
|
20
|
-
event(parent?: string): string[];
|
|
19
|
+
events(parent?: string): string[];
|
|
21
20
|
toString(): string;
|
|
22
21
|
toJson(): object;
|
|
23
22
|
}
|
package/api/module/module.js
CHANGED
|
@@ -28,11 +28,8 @@ let ModuleNode = ModuleNode_1 = class ModuleNode extends AbstractExpressionNode
|
|
|
28
28
|
get(stack) {
|
|
29
29
|
throw new Error(`ModuleNode.#get() has no implementation.`);
|
|
30
30
|
}
|
|
31
|
-
|
|
32
|
-
return this.body.flatMap(exp => exp.
|
|
33
|
-
}
|
|
34
|
-
event(parent) {
|
|
35
|
-
return this.body.flatMap(exp => exp.event());
|
|
31
|
+
events(parent) {
|
|
32
|
+
return this.body.flatMap(exp => exp.events());
|
|
36
33
|
}
|
|
37
34
|
toString() {
|
|
38
35
|
const importString = this.importList.map(imp => imp.toString()).join('\n');
|
package/api/module/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../src/expressions/api/module/module.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,IAAa,UAAU,kBAAvB,MAAa,UAAW,SAAQ,sBAAsB;IASrD,YACS,UAA4B,EAC5B,UAA4B,EAC5B,IAAsB,EACtB,IAAoC;QAC5C,KAAK,EAAE,CAAC;QAJA,eAAU,GAAV,UAAU,CAAkB;QAC5B,eAAU,GAAV,UAAU,CAAkB;QAC5B,SAAI,GAAJ,IAAI,CAAkB;QACtB,SAAI,GAAJ,IAAI,CAAgC;IAE7C,CAAC;IAdD,MAAM,CAAC,QAAQ,CAAC,IAAgB,EAAE,YAA8B;QAC/D,OAAO,IAAI,YAAU,CACpB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EACjC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EACjC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAC3B,IAAI,CAAC,IAAI,CACT,CAAC;IACH,CAAC;IAQD,aAAa;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IACD,aAAa;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IACD,OAAO;QACN,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IACD,GAAG,CAAC,KAAY;QACf,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC7D,CAAC;IACD,GAAG,CAAC,KAAY;QACf,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC7D,CAAC;IACD,
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../src/expressions/api/module/module.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,IAAa,UAAU,kBAAvB,MAAa,UAAW,SAAQ,sBAAsB;IASrD,YACS,UAA4B,EAC5B,UAA4B,EAC5B,IAAsB,EACtB,IAAoC;QAC5C,KAAK,EAAE,CAAC;QAJA,eAAU,GAAV,UAAU,CAAkB;QAC5B,eAAU,GAAV,UAAU,CAAkB;QAC5B,SAAI,GAAJ,IAAI,CAAkB;QACtB,SAAI,GAAJ,IAAI,CAAgC;IAE7C,CAAC;IAdD,MAAM,CAAC,QAAQ,CAAC,IAAgB,EAAE,YAA8B;QAC/D,OAAO,IAAI,YAAU,CACpB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EACjC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EACjC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAC3B,IAAI,CAAC,IAAI,CACT,CAAC;IACH,CAAC;IAQD,aAAa;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IACD,aAAa;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IACD,OAAO;QACN,OAAO,IAAI,CAAC,IAAI,CAAC;IAClB,CAAC;IACD,GAAG,CAAC,KAAY;QACf,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC7D,CAAC;IACD,GAAG,CAAC,KAAY;QACf,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,CAAC,MAAe;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC;IACD,QAAQ;QACP,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,OAAO,GAAG,YAAY,KAAK,YAAY,KAAK,UAAU,IAAI,CAAC;IAC5D,CAAC;IACD,MAAM;QACL,OAAO;YACN,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAClE,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAClE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACtD,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC3C,CAAC;IACH,CAAC;CACD,CAAA;AAhDY,UAAU;IADtB,YAAY,CAAC,QAAQ,CAAC;;GACV,UAAU,CAgDtB;SAhDY,UAAU","sourcesContent":["import type { ExpressionNode, NodeDeserializer } from '../expression.js';\nimport type { Stack } from '../../scope/stack.js';\nimport { AbstractExpressionNode } from '../abstract.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\n\n@Deserializer('module')\nexport class ModuleNode extends AbstractExpressionNode {\n\tstatic fromJSON(node: ModuleNode, deserializer: NodeDeserializer): ModuleNode {\n\t\treturn new ModuleNode(\n\t\t\tnode.exportList.map(deserializer),\n\t\t\tnode.importList.map(deserializer),\n\t\t\tnode.body.map(deserializer),\n\t\t\tnode.meta\n\t\t);\n\t}\n\tconstructor(\n\t\tprivate exportList: ExpressionNode[],\n\t\tprivate importList: ExpressionNode[],\n\t\tprivate body: ExpressionNode[],\n\t\tprivate meta: { name: string, url: string, }) {\n\t\tsuper();\n\t}\n\tgetExportList() {\n\t\treturn this.exportList;\n\t}\n\tgetImportList() {\n\t\treturn this.importList;\n\t}\n\tgetBody() {\n\t\treturn this.body;\n\t}\n\tset(stack: Stack) {\n\t\tthrow new Error(`ModuleNode.#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tthrow new Error(`ModuleNode.#get() has no implementation.`);\n\t}\n\tevents(parent?: string): string[] {\n\t\treturn this.body.flatMap(exp => exp.events());\n\t}\n\ttoString(): string {\n\t\tconst importString = this.importList.map(imp => imp.toString()).join('\\n');\n\t\tconst exportString = this.exportList.map(expo => expo.toString()).join('\\n');\n\t\tconst bodyString = this.body.map(exp => exp.toString()).join('\\n');\n\t\treturn `${importString}\\n${exportString}\\n${bodyString}\\n`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\texportList: this.exportList.map(expression => expression.toJSON()),\n\t\t\timportList: this.importList.map(expression => expression.toJSON()),\n\t\t\tbody: this.body.map(expression => expression.toJSON()),\n\t\t\tmeta: JSON.parse(JSON.stringify(this.meta)),\n\t\t};\n\t}\n}\n"]}
|
|
@@ -34,7 +34,6 @@ AssignmentExpression.Evaluations = {
|
|
|
34
34
|
'**=': (evalNode) => { return evalNode.left **= evalNode.right; },
|
|
35
35
|
'/=': (evalNode) => { return evalNode.left /= evalNode.right; },
|
|
36
36
|
'%=': (evalNode) => { return evalNode.left %= evalNode.right; },
|
|
37
|
-
'%%=': (evalNode) => { return evalNode.left %= ((evalNode.left % evalNode.right) + evalNode.right) % evalNode.right; },
|
|
38
37
|
'+=': (evalNode) => { return evalNode.left += evalNode.right; },
|
|
39
38
|
'-=': (evalNode) => { return evalNode.left -= evalNode.right; },
|
|
40
39
|
'<<=': (evalNode) => { return evalNode.left <<= evalNode.right; },
|
|
@@ -43,6 +42,7 @@ AssignmentExpression.Evaluations = {
|
|
|
43
42
|
'&=': (evalNode) => { return evalNode.left &= evalNode.right; },
|
|
44
43
|
'^=': (evalNode) => { return evalNode.left ^= evalNode.right; },
|
|
45
44
|
'|=': (evalNode) => { return evalNode.left |= evalNode.right; },
|
|
45
|
+
'%%=': (evalNode) => { return evalNode.left %= ((evalNode.left % evalNode.right) + evalNode.right) % evalNode.right; },
|
|
46
46
|
'>?=': (evalNode) => { return evalNode.left = evalNode.left > evalNode.right ? evalNode.left : evalNode.right; },
|
|
47
47
|
'<?=': (evalNode) => { return evalNode.left = evalNode.left > evalNode.right ? evalNode.right : evalNode.left; },
|
|
48
48
|
};
|
|
@@ -70,7 +70,7 @@ AssignmentExpression.LogicalEvaluations = {
|
|
|
70
70
|
exp.set(context, value);
|
|
71
71
|
}
|
|
72
72
|
return value;
|
|
73
|
-
}
|
|
73
|
+
},
|
|
74
74
|
};
|
|
75
75
|
AssignmentExpression = AssignmentExpression_1 = __decorate([
|
|
76
76
|
Deserializer('AssignmentExpression'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assignment.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/assignment.ts"],"names":[],"mappings":";;AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAU7D,IAAa,oBAAoB,4BAAjC,MAAa,oBAAqB,SAAQ,mBAAuC;IAiEhF,YAAY,QAA4B,EAAE,IAAoB,EAAE,KAAqB;QACpF,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAlED,MAAM,CAAC,QAAQ,CAAC,IAA0B,EAAE,YAA8B;QACzE,OAAO,IAAI,sBAAoB,CAC9B,IAAI,CAAC,QAAQ,EACb,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EACvB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CACxB,CAAC;IACH,CAAC;IA6DD,GAAG,CAAC,KAAY,EAAE,KAAU;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IACD,GAAG,CAAC,KAAY;QACf,QAAQ,IAAI,CAAC,QAAQ,EAAE;YACtB,KAAK,KAAK,CAAC;YACX,KAAK,KAAK,CAAC;YACX,KAAK,KAAK;gBACT,OAAO,sBAAoB,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC5E;QACD,MAAM,QAAQ,GAAiB;YAC9B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAC1B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;SAC5B,CAAC;QACF,MAAM,KAAK,GAAG,sBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;QACxE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACvB,OAAO,KAAK,CAAC;IACd,CAAC;CACD,CAAA;AA9EO,gCAAW,GAAiB;IAElC,GAAG,EAAE,CAAC,QAAsB,EAAE,EAAE,GAAG,OAAO,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3E,IAAI,EAAE,CAAC,QAAsB,EAAE,EAAE,GAAG,OAAO,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E,KAAK,EAAE,CAAC,QAAsB,EAAE,EAAE,GAAG,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAE/E,IAAI,EAAE,CAAC,QAAsB,EAAE,EAAE,GAAG,OAAO,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E,IAAI,EAAE,CAAC,QAAsB,EAAE,EAAE,GAAG,OAAO,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"assignment.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/assignment.ts"],"names":[],"mappings":"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","sourcesContent":["import type { EvaluateNode, EvaluateType } from './types.js';\nimport type { NodeDeserializer, ExpressionNode } from '../expression.js';\nimport type { Stack } from '../../scope/stack.js';\nimport { InfixExpressionNode } from '../abstract.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\n\nexport type AssignmentOperator =\n\t'=' | '+=' | '-=' | '*=' | '**=' | '/=' | '%='\n\t| '<<=' | '>>=' | '>>>='\n\t| '|=' | '^=' | '&='\n\t| '||=' | '&&=' | '??='\n\t| '%%=' | '>?=' | '<?=';\n\n@Deserializer('AssignmentExpression')\nexport class AssignmentExpression extends InfixExpressionNode<AssignmentOperator> {\n\tstatic fromJSON(node: AssignmentExpression, deserializer: NodeDeserializer): AssignmentExpression {\n\t\treturn new AssignmentExpression(\n\t\t\tnode.operator,\n\t\t\tdeserializer(node.left),\n\t\t\tdeserializer(node.right)\n\t\t);\n\t}\n\tstatic Evaluations: EvaluateType = {\n\n\t\t'=': (evalNode: EvaluateNode) => { return evalNode.left = evalNode.right; },\n\t\t'*=': (evalNode: EvaluateNode) => { return evalNode.left *= evalNode.right; },\n\t\t'**=': (evalNode: EvaluateNode) => { return evalNode.left **= evalNode.right; },\n\n\t\t'/=': (evalNode: EvaluateNode) => { return evalNode.left /= evalNode.right; },\n\t\t'%=': (evalNode: EvaluateNode) => { return evalNode.left %= evalNode.right; },\n\n\t\t'+=': (evalNode: EvaluateNode) => { return evalNode.left += evalNode.right; },\n\t\t'-=': (evalNode: EvaluateNode) => { return evalNode.left -= evalNode.right; },\n\n\t\t'<<=': (evalNode: EvaluateNode) => { return evalNode.left <<= evalNode.right; },\n\t\t'>>=': (evalNode: EvaluateNode) => { return evalNode.left >>= evalNode.right; },\n\t\t'>>>=': (evalNode: EvaluateNode) => { return evalNode.left >>>= evalNode.right; },\n\n\t\t'&=': (evalNode: EvaluateNode) => { return evalNode.left &= evalNode.right; },\n\t\t'^=': (evalNode: EvaluateNode) => { return evalNode.left ^= evalNode.right; },\n\t\t'|=': (evalNode: EvaluateNode) => { return evalNode.left |= evalNode.right; },\n\n\t\t'%%=': (evalNode: EvaluateNode) => { return evalNode.left %= ((evalNode.left % evalNode.right) + evalNode.right) % evalNode.right; },\n\t\t'>?=': (evalNode: EvaluateNode) => { return evalNode.left = evalNode.left > evalNode.right ? evalNode.left : evalNode.right; },\n\t\t'<?=': (evalNode: EvaluateNode) => { return evalNode.left = evalNode.left > evalNode.right ? evalNode.right : evalNode.left; },\n\n\t};\n\n\tstatic LogicalEvaluations: { [key: string]: (exp: AssignmentExpression, context: any) => any } = {\n\n\t\t'&&=': (exp: AssignmentExpression, context: any) => {\n\t\t\tlet value = exp.left.get(context);\n\t\t\tif (value) {\n\t\t\t\tvalue = exp.right.get(context);\n\t\t\t\texp.set(context, value);\n\t\t\t}\n\t\t\treturn value;\n\t\t},\n\n\t\t'||=': (exp: AssignmentExpression, context: any) => {\n\t\t\tlet value = exp.left.get(context);\n\t\t\tif (!value) {\n\t\t\t\tvalue = exp.right.get(context);\n\t\t\t\texp.set(context, value);\n\t\t\t}\n\t\t\treturn value;\n\t\t},\n\n\t\t'??=': (exp: AssignmentExpression, context: any) => {\n\t\t\tlet value = exp.left.get(context);\n\t\t\tif (value === undefined || value === null) {\n\t\t\t\tvalue = exp.right.get(context);\n\t\t\t\texp.set(context, value);\n\t\t\t}\n\t\t\treturn value;\n\t\t},\n\n\t};\n\n\tconstructor(operator: AssignmentOperator, left: ExpressionNode, right: ExpressionNode) {\n\t\tsuper(operator, left, right);\n\t}\n\tset(stack: Stack, value: any) {\n\t\treturn this.left.set(stack, value);\n\t}\n\tget(stack: Stack): any {\n\t\tswitch (this.operator) {\n\t\t\tcase '&&=':\n\t\t\tcase '||=':\n\t\t\tcase '??=':\n\t\t\t\treturn AssignmentExpression.LogicalEvaluations[this.operator](this, stack);\n\t\t}\n\t\tconst evalNode: EvaluateNode = {\n\t\t\tleft: this.left.get(stack),\n\t\t\tright: this.right.get(stack)\n\t\t};\n\t\tconst value = AssignmentExpression.Evaluations[this.operator](evalNode);\n\t\tthis.set(stack, value);\n\t\treturn value;\n\t}\n}\n"]}
|
package/api/operators/await.d.ts
CHANGED
|
@@ -7,8 +7,7 @@ export declare class AwaitExpression extends AbstractExpressionNode {
|
|
|
7
7
|
constructor(argument: ExpressionNode);
|
|
8
8
|
getArgument(): ExpressionNode;
|
|
9
9
|
set(stack: Stack, value: any): void;
|
|
10
|
-
|
|
11
|
-
event(parent?: string): string[];
|
|
10
|
+
events(parent?: string): string[];
|
|
12
11
|
get(stack: Stack, thisContext?: any): AwaitPromise;
|
|
13
12
|
toString(): string;
|
|
14
13
|
toJson(): object;
|
package/api/operators/await.js
CHANGED
|
@@ -16,11 +16,8 @@ let AwaitExpression = AwaitExpression_1 = class AwaitExpression extends Abstract
|
|
|
16
16
|
set(stack, value) {
|
|
17
17
|
throw new Error('AwaitExpression#set() has no implementation.');
|
|
18
18
|
}
|
|
19
|
-
|
|
20
|
-
return this.argument.
|
|
21
|
-
}
|
|
22
|
-
event(parent) {
|
|
23
|
-
return this.argument.event(parent);
|
|
19
|
+
events(parent) {
|
|
20
|
+
return this.argument.events(parent);
|
|
24
21
|
}
|
|
25
22
|
get(stack, thisContext) {
|
|
26
23
|
const promise = this.argument.get(stack);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"await.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/await.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAItE,IAAa,eAAe,uBAA5B,MAAa,eAAgB,SAAQ,sBAAsB;IAI1D,YAAoB,QAAwB;QAC3C,KAAK,EAAE,CAAC;QADW,aAAQ,GAAR,QAAQ,CAAgB;IAE5C,CAAC;IALD,MAAM,CAAC,QAAQ,CAAC,IAAqB,EAAE,UAA4B;QAClE,OAAO,IAAI,iBAAe,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,CAAC;IAID,WAAW;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IACD,GAAG,CAAC,KAAY,EAAE,KAAU;QAC3B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACjE,CAAC;IACD,
|
|
1
|
+
{"version":3,"file":"await.js","sourceRoot":"","sources":["../../../../src/expressions/api/operators/await.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAItE,IAAa,eAAe,uBAA5B,MAAa,eAAgB,SAAQ,sBAAsB;IAI1D,YAAoB,QAAwB;QAC3C,KAAK,EAAE,CAAC;QADW,aAAQ,GAAR,QAAQ,CAAgB;IAE5C,CAAC;IALD,MAAM,CAAC,QAAQ,CAAC,IAAqB,EAAE,UAA4B;QAClE,OAAO,IAAI,iBAAe,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,CAAC;IAID,WAAW;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IACD,GAAG,CAAC,KAAY,EAAE,KAAU;QAC3B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,CAAC,MAAe;QACrB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IACD,GAAG,CAAC,KAAY,EAAE,WAAiB;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IACD,QAAQ;QACP,OAAO,SAAS,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;IAC5C,CAAC;IACD,MAAM;QACL,OAAO;YACN,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;SAChC,CAAC;IACH,CAAC;CACD,CAAA;AA5BY,eAAe;IAD3B,YAAY,CAAC,iBAAiB,CAAC;;GACnB,eAAe,CA4B3B;SA5BY,eAAe","sourcesContent":["import type { NodeDeserializer, ExpressionNode } from '../expression.js';\nimport type { Stack } from '../../scope/stack.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\nimport { AbstractExpressionNode, AwaitPromise } from '../abstract.js';\n\n\n@Deserializer('AwaitExpression')\nexport class AwaitExpression extends AbstractExpressionNode {\n\tstatic fromJSON(node: AwaitExpression, serializer: NodeDeserializer): AwaitExpression {\n\t\treturn new AwaitExpression(serializer(node.argument));\n\t}\n\tconstructor(private argument: ExpressionNode) {\n\t\tsuper();\n\t}\n\tgetArgument() {\n\t\treturn this.argument;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error('AwaitExpression#set() has no implementation.');\n\t}\n\tevents(parent?: string): string[] {\n\t\treturn this.argument.events(parent);\n\t}\n\tget(stack: Stack, thisContext?: any) {\n\t\tconst promise = this.argument.get(stack);\n\t\treturn new AwaitPromise(promise);\n\t}\n\ttoString() {\n\t\treturn `await ${this.argument.toString()}`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\targument: this.argument.toJSON()\n\t\t};\n\t}\n}\n"]}
|