@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.
Files changed (141) hide show
  1. package/README.md +48 -1
  2. package/api/abstract.js.map +1 -1
  3. package/api/class/class.js +143 -93
  4. package/api/class/class.js.map +1 -1
  5. package/api/class/decorator.js +8 -3
  6. package/api/class/decorator.js.map +1 -1
  7. package/api/computing/call.js +8 -3
  8. package/api/computing/call.js.map +1 -1
  9. package/api/computing/debugger.js +8 -3
  10. package/api/computing/debugger.js.map +1 -1
  11. package/api/computing/new.js +8 -3
  12. package/api/computing/new.js.map +1 -1
  13. package/api/computing/rest.js +8 -3
  14. package/api/computing/rest.js.map +1 -1
  15. package/api/computing/return.js +8 -3
  16. package/api/computing/return.js.map +1 -1
  17. package/api/computing/spread.js +8 -3
  18. package/api/computing/spread.js.map +1 -1
  19. package/api/computing/throw.js +38 -23
  20. package/api/computing/throw.js.map +1 -1
  21. package/api/computing/yield.js +8 -3
  22. package/api/computing/yield.js.map +1 -1
  23. package/api/definition/array.js +23 -13
  24. package/api/definition/array.js.map +1 -1
  25. package/api/definition/bind.js +8 -3
  26. package/api/definition/bind.js.map +1 -1
  27. package/api/definition/comment.js +8 -3
  28. package/api/definition/comment.js.map +1 -1
  29. package/api/definition/function.js +53 -33
  30. package/api/definition/function.js.map +1 -1
  31. package/api/definition/member.js +8 -3
  32. package/api/definition/member.js.map +1 -1
  33. package/api/definition/object.js +38 -23
  34. package/api/definition/object.js.map +1 -1
  35. package/api/definition/statement.js +8 -3
  36. package/api/definition/statement.js.map +1 -1
  37. package/api/definition/values.js +68 -43
  38. package/api/definition/values.js.map +1 -1
  39. package/api/deserialize/deserialize.js.map +1 -1
  40. package/api/expression.d.ts +3 -0
  41. package/api/expression.d.ts.map +1 -1
  42. package/api/expression.js.map +1 -1
  43. package/api/module/common.js +8 -3
  44. package/api/module/common.js.map +1 -1
  45. package/api/module/export.js +53 -33
  46. package/api/module/export.js.map +1 -1
  47. package/api/module/import.js +68 -43
  48. package/api/module/import.js.map +1 -1
  49. package/api/operators/assignment.js +6 -2
  50. package/api/operators/assignment.js.map +1 -1
  51. package/api/operators/await.js +8 -3
  52. package/api/operators/await.js.map +1 -1
  53. package/api/operators/binary.js +6 -2
  54. package/api/operators/binary.js.map +1 -1
  55. package/api/operators/chaining.js +8 -3
  56. package/api/operators/chaining.js.map +1 -1
  57. package/api/operators/comma.js +8 -3
  58. package/api/operators/comma.js.map +1 -1
  59. package/api/operators/grouping.js +8 -3
  60. package/api/operators/grouping.js.map +1 -1
  61. package/api/operators/logical.js +6 -2
  62. package/api/operators/logical.js.map +1 -1
  63. package/api/operators/pipeline.js +8 -3
  64. package/api/operators/pipeline.js.map +1 -1
  65. package/api/operators/ternary.js +8 -3
  66. package/api/operators/ternary.js.map +1 -1
  67. package/api/operators/unary.js +6 -2
  68. package/api/operators/unary.js.map +1 -1
  69. package/api/operators/update.js +6 -2
  70. package/api/operators/update.js.map +1 -1
  71. package/api/program.js +8 -3
  72. package/api/program.js.map +1 -1
  73. package/api/statement/control/block.js +8 -3
  74. package/api/statement/control/block.js.map +1 -1
  75. package/api/statement/control/empty.js +8 -3
  76. package/api/statement/control/empty.js.map +1 -1
  77. package/api/statement/control/if.js +8 -3
  78. package/api/statement/control/if.js.map +1 -1
  79. package/api/statement/control/switch.js +38 -23
  80. package/api/statement/control/switch.js.map +1 -1
  81. package/api/statement/control/terminate.js +38 -23
  82. package/api/statement/control/terminate.js.map +1 -1
  83. package/api/statement/control/with.js +8 -3
  84. package/api/statement/control/with.js.map +1 -1
  85. package/api/statement/declarations/declares.js +23 -13
  86. package/api/statement/declarations/declares.js.map +1 -1
  87. package/api/statement/iterations/for.js +53 -33
  88. package/api/statement/iterations/for.js.map +1 -1
  89. package/api/statement/iterations/while.js +23 -13
  90. package/api/statement/iterations/while.js.map +1 -1
  91. package/bin/cli.d.ts +3 -0
  92. package/bin/cli.d.ts.map +1 -0
  93. package/bin/cli.js +73 -0
  94. package/bin/cli.js.map +1 -0
  95. package/package.json +8 -5
  96. package/scope/builder.d.ts +27 -0
  97. package/scope/builder.d.ts.map +1 -0
  98. package/scope/builder.js +73 -0
  99. package/scope/builder.js.map +1 -0
  100. package/scope/event.js.map +1 -1
  101. package/scope/finalizer.js.map +1 -1
  102. package/scope/index.d.ts +1 -0
  103. package/scope/index.d.ts.map +1 -1
  104. package/scope/index.js +1 -0
  105. package/scope/index.js.map +1 -1
  106. package/scope/pool.js.map +1 -1
  107. package/scope/proxy.js.map +1 -1
  108. package/scope/scope.d.ts.map +1 -1
  109. package/scope/scope.js +4 -3
  110. package/scope/scope.js.map +1 -1
  111. package/scope/signal.d.ts +75 -0
  112. package/scope/signal.d.ts.map +1 -0
  113. package/scope/signal.js +226 -0
  114. package/scope/signal.js.map +1 -0
  115. package/scope/stack.d.ts +1 -1
  116. package/scope/stack.d.ts.map +1 -1
  117. package/scope/stack.js +1 -1
  118. package/scope/stack.js.map +1 -1
  119. package/scope/variable.d.ts +1 -0
  120. package/scope/variable.d.ts.map +1 -0
  121. package/scope/variable.js +2 -0
  122. package/scope/variable.js.map +1 -0
  123. package/scope/variables.d.ts +66 -0
  124. package/scope/variables.d.ts.map +1 -0
  125. package/scope/variables.js +214 -0
  126. package/scope/variables.js.map +1 -0
  127. package/v8/enums.d.ts +5 -5
  128. package/v8/enums.d.ts.map +1 -1
  129. package/v8/enums.js +2 -4
  130. package/v8/enums.js.map +1 -1
  131. package/v8/factory.js.map +1 -1
  132. package/v8/inline.js.map +1 -1
  133. package/v8/parser.js.map +1 -1
  134. package/v8/stream.js +1 -2
  135. package/v8/stream.js.map +1 -1
  136. package/v8/token.js +1 -2
  137. package/v8/token.js.map +1 -1
  138. package/visit/visitor.js.map +1 -1
  139. package/v8/nodes.d.ts +0 -0
  140. package/v8/nodes.js +0 -2
  141. package/v8/nodes.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"class.js","sourceRoot":"","sources":["../../../../src/expressions/api/class/class.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tDeclarationExpression, ExpressionEventPath, ExpressionNode,\n\tNodeDeserializer, SourceLocation, VisitNodeType\n} from '../expression.js';\nimport { Stack } from '../../scope/stack.js';\nimport { AbstractExpressionNode } from '../abstract.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\nimport { Identifier } from '../definition/values.js';\nimport { FunctionExpression } from '../definition/function.js';\nimport { BlockStatement } from '../statement/control/block.js';\nimport { TypeOf } from '../utils.js';\nimport { Decorator } from './decorator.js';\nimport { CallExpression } from '../computing/call.js';\n\nconst TEMP_CLASS_NAME: unique symbol = Symbol('TempClassName');\nconst PRIVATE_SYMBOL: unique symbol = Symbol('#');;\n\ninterface ClassConstructor {\n\t/**\n\t * A reference to the prototype.\n\t */\n\treadonly prototype: ClassInstance;\n\n\t/**\n\t * private static properties and methods\n\t */\n\t[PRIVATE_SYMBOL]: Record<PropertyKey, any>;\n\n\t/**\n\t * public static class properties\n\t */\n\t[key: PropertyKey]: any;\n}\n\ndeclare var ClassInstance: ClassConstructor;\ninterface ClassInstance {\n\n\t/**\n\t * private instance properties and methods\n\t */\n\t[PRIVATE_SYMBOL]: Record<PropertyKey, any>;\n\n\t/**\n\t * public instance properties\n\t */\n\t[key: PropertyKey]: any;\n}\n\n\ntype PropertyInitializer = () => { key: PropertyKey, value: any, isPrivate: boolean };\n\nclass ClassInitializer {\n\n\t/**\n\t * register class public static properties and methods\n\t */\n\tprivate staticInitializer: Record<PropertyKey, PropertyDescriptor & ThisType<any>> = {};\n\n\t/**\n\t * register class private static properties and methods\n\t */\n\tprivate staticPrivateInitializer: Record<PropertyKey, PropertyDescriptor & ThisType<any>> = {};\n\n\t/**\n\t * register static initialization block\n\t */\n\tprivate staticInitializerBlock: (() => void)[] = [];\n\n\t/**\n\t * register class constructor function\n\t */\n\tprivate instanceConstructor?: Function;\n\n\t/**\n\t * register super parameter resolver\n\t */\n\tprivate superParameterResolver: ((params: any[]) => any[]) = (params: any[]) => params;\n\n\t/**\n\t * register in class property\n\t */\n\tprivate instanceMethod: Record<PropertyKey, PropertyDescriptor & ThisType<any>> = {};\n\n\t/**\n\t * register method in instance private space\n\t */\n\tprivate privateInstanceMethod: Record<PropertyKey, PropertyDescriptor & ThisType<any>> = {};\n\n\t/**\n\t * register property in instance itself\n\t */\n\tprivate instanceInitializer: PropertyInitializer[] = [];\n\n\taddStaticInitializer(key: PropertyKey, attributes: PropertyDescriptor & ThisType<any>) {\n\t\tReflect.set(this.staticInitializer, key, attributes)\n\t}\n\taddStaticPrivateInitializer(key: PropertyKey, attributes: PropertyDescriptor & ThisType<any>) {\n\t\tReflect.set(this.staticPrivateInitializer, key, attributes)\n\t}\n\taddStaticInitializerBlock(block: () => void) {\n\t\tthis.staticInitializerBlock.push(block);\n\t}\n\tsetConstructor(cstr: Function) {\n\t\tthis.instanceConstructor = cstr;\n\t}\n\tsetParameterResolver(resolver: (params: any[]) => any[]) {\n\t\tthis.superParameterResolver = resolver;\n\t}\n\taddInstanceMethod(key: PropertyKey, attributes: PropertyDescriptor & ThisType<any>) {\n\t\tReflect.set(this.instanceMethod, key, attributes);\n\t}\n\taddPrivateInstanceMethod(key: PropertyKey, attributes: PropertyDescriptor & ThisType<any>) {\n\t\tReflect.set(this.privateInstanceMethod, key, attributes);\n\t}\n\taddInstanceInitializer(initializer: PropertyInitializer) {\n\t\tthis.instanceInitializer.push(initializer);\n\t}\n\tinitClass(classConstructor: ClassConstructor) {\n\t\tObject.defineProperties(classConstructor, this.staticInitializer);\n\t\tObject.defineProperties(classConstructor[PRIVATE_SYMBOL], this.staticPrivateInitializer);\n\t\tObject.defineProperties(classConstructor.prototype, this.instanceMethod);\n\t\tthis.staticInitializerBlock.forEach(block => block());\n\t}\n\tgetSuperArguments(args: any[]) {\n\t\treturn this.superParameterResolver(args);\n\t}\n\tinitInstance(instance: ClassInstance) {\n\t\tObject.defineProperties(instance[PRIVATE_SYMBOL], this.privateInstanceMethod);\n\t\tthis.instanceInitializer.forEach(initializer => {\n\t\t\tconst definition = initializer();\n\t\t\tconst target = definition.isPrivate ? instance[PRIVATE_SYMBOL] : instance;\n\t\t\ttarget[definition.key] = definition.value;\n\t\t});\n\t\tthis.instanceConstructor?.apply(instance);\n\t}\n}\n\n\n/**\n * A `super` pseudo-expression.\n */\n@Deserializer('Super')\nexport class Super extends AbstractExpressionNode {\n\tstatic fromJSON(node: Super): Super {\n\t\treturn new Super(node.range, node.loc);\n\t}\n\tconstructor(range?: [number, number], loc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error('Super.#set() Method not implemented.');\n\t}\n\tget(stack: Stack, thisContext?: any) {\n\t\treturn stack.get('super');\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\tthrow new Error('Super.#dependency() Method not implemented.');\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\tthrow new Error('Super.#dependencyPath() Method not implemented.');\n\t}\n\ttoString(): string {\n\t\treturn `super`;\n\t}\n\ttoJson(): { [key: string]: any; } {\n\t\treturn {};\n\t}\n}\n\n/**\n * MetaProperty node represents\n * - `new.target` meta property in ES2015.\n * - `import.meta` meta property in ES2030.\n * \n * In the future, it will represent other meta properties as well.\n */\n@Deserializer('MetaProperty')\nexport class MetaProperty extends AbstractExpressionNode {\n\tstatic fromJSON(node: MetaProperty, deserializer: NodeDeserializer<any>): MetaProperty {\n\t\treturn new MetaProperty(\n\t\t\tdeserializer(node.meta),\n\t\t\tdeserializer(node.property),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: MetaProperty, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.meta);\n\t\tvisitNode(node.property);\n\t}\n\tconstructor(private meta: Identifier, private property: Identifier, range?: [number, number], loc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetMeta() {\n\t\treturn this.meta;\n\t}\n\tgetProperty() {\n\t\treturn this.property;\n\t}\n\tget(stack: Stack) {\n\t\tconst metaRef = this.meta.get(stack);\n\t\tif (metaRef === undefined || metaRef === null) {\n\t\t\tthrow new TypeError(`Cannot read meta property '${this.property.toString()}' of ${metaRef}, reading [${this.toString()}]`);\n\t\t}\n\t\treturn this.property.get(stack, metaRef);\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`MetaProperty#set() has no implementation.`);\n\t}\n\tdependency(computed?: true | undefined): ExpressionNode[] {\n\t\treturn [];\n\t}\n\tdependencyPath(computed?: true | undefined): ExpressionEventPath[] {\n\t\treturn [];\n\t}\n\ttoString(): string {\n\t\treturn `${this.meta.toString()}.${this.property.toString()}`;\n\t}\n\ttoJson(): { [key: string]: any; } {\n\t\treturn {\n\t\t\tmeta: this.meta.toJSON(),\n\t\t\tproperty: this.property.toJSON(),\n\t\t};\n\t}\n}\n\n/**\n * A private identifier refers to private class elements. For a private name `#a`, its name is `a`.\n */\n@Deserializer('PrivateIdentifier')\nexport class PrivateIdentifier extends Identifier {\n\tstatic fromJSON(node: PrivateIdentifier): PrivateIdentifier {\n\t\treturn new PrivateIdentifier(\n\t\t\tnode.name as string,\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tget(stack: Stack, thisContext: ClassInstance) {\n\t\treturn thisContext[PRIVATE_SYMBOL][this.name];\n\t}\n\tset(stack: Stack, value: any) {\n\t\tconst thisContext = stack.lastScope().getContext();\n\t\treturn thisContext[PRIVATE_SYMBOL][this.name] = value;\n\t}\n\ttoString(): string {\n\t\treturn `#${this.name}`;\n\t}\n}\n\n/**\n * A static block static { } is a block statement serving as an additional static initializer.\n */\n@Deserializer('StaticBlock')\nexport class StaticBlock extends BlockStatement {\n\tstatic fromJSON(node: StaticBlock, deserializer: NodeDeserializer<any>): StaticBlock {\n\t\treturn new StaticBlock(deserializer(node.body), node.range, node.loc);\n\t}\n\tget(stack: Stack, classInitializer?: ClassInitializer): void {\n\t\tclassInitializer?.addStaticInitializerBlock(super.get(stack));\n\t}\n\ttoString(): string {\n\t\treturn `static ${super.toString()}`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tbody: this.body.map(node => node.toJSON())\n\t\t};\n\t}\n}\n\nexport abstract class AbstractDefinition extends AbstractExpressionNode {\n\tprotected 'static': boolean;\n\tconstructor(\n\t\tprotected key: ExpressionNode | PrivateIdentifier,\n\t\tprotected decorators: Decorator[],\n\t\tprotected computed: boolean,\n\t\tisStatic: boolean,\n\t\tprotected value?: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t\tthis.static = isStatic;\n\t}\n\tgetKey() {\n\t\treturn this.key;\n\t}\n\tgetValue() {\n\t\treturn this.value;\n\t}\n\tisComputed() {\n\t\treturn this.computed;\n\t}\n\tisStatic() {\n\t\treturn this.static;\n\t}\n\tisPrivate() {\n\t\treturn this.key instanceof PrivateIdentifier;\n\t}\n\tgetDecorators() {\n\t\treturn this.decorators;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error('AbstractDefinition.#set() Method not implemented.');\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn [];\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn [];\n\t}\n\tgetKeyName(stack: Stack) {\n\t\tif (this.computed) {\n\t\t\t// private properties can't be computed\n\t\t\treturn (this.key as ExpressionNode).get(stack);\n\t\t}\n\t\tif (this.key instanceof Identifier) {\n\t\t\treturn this.key.getName();\n\t\t}\n\t\treturn this.key.toString();\n\t}\n\tabstract get(stack: Stack, initializer?: ClassInitializer): void;\n\tabstract toString(): string;\n\tabstract toJson(): { [key: string]: any; };\n}\n\nexport type MethodDefinitionKind = 'constructor' | 'method' | 'set' | 'get';\n\n/**\n * - When key is a PrivateIdentifier, computed must be false and kind can not be \"constructor\".\n */\n@Deserializer('MethodDefinition')\nexport class MethodDefinition extends AbstractDefinition {\n\tstatic fromJSON(node: MethodDefinition, deserializer: NodeDeserializer<any>): MethodDefinition {\n\t\treturn new MethodDefinition(\n\t\t\tnode.kind,\n\t\t\tdeserializer(node.key),\n\t\t\tdeserializer(node.value),\n\t\t\tnode.decorators.map(deserializer),\n\t\t\tnode.computed,\n\t\t\tnode.static,\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: MethodDefinition, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.key);\n\t\tvisitNode(node.value);\n\t\tnode.decorators.forEach(visitNode);\n\t}\n\tdeclare protected 'static': boolean;\n\tdeclare value: FunctionExpression;\n\tafterInstanceConstruct: any;\n\tconstructor(\n\t\tprivate kind: MethodDefinitionKind,\n\t\tkey: ExpressionNode | PrivateIdentifier,\n\t\tvalue: FunctionExpression,\n\t\tdecorators: Decorator[],\n\t\tcomputed: boolean,\n\t\tisStatic: boolean,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(key, decorators, computed, isStatic, value, range, loc);\n\t}\n\tgetKind() {\n\t\treturn this.kind;\n\t}\n\tgetValue() {\n\t\treturn this.value;\n\t}\n\tget(stack: Stack, initializer: ClassInitializer): void {\n\t\tif (this.kind === 'constructor') {\n\t\t\tthis.initConstructor(stack, initializer);\n\t\t\treturn;\n\t\t}\n\t\tconst name: string = this.getKeyName(stack);\n\t\tconst value = this.value?.get(stack);\n\t\tconst attributes = this.getPropertyAttributes(value);\n\t\tif (this.isStatic() && this.isPrivate()) {\n\t\t\tinitializer.addStaticPrivateInitializer(name, attributes);\n\t\t} else if (this.isStatic()) {\n\t\t\tinitializer.addStaticInitializer(name, attributes);\n\t\t} else if (this.isPrivate()) {\n\t\t\tinitializer.addPrivateInstanceMethod(name, attributes);\n\t\t} else {\n\t\t\tinitializer.addInstanceMethod(name, attributes);\n\t\t}\n\t}\n\n\tprivate getPropertyAttributes(value: any): PropertyDescriptor & ThisType<any> {\n\t\tswitch (this.kind) {\n\t\t\tcase 'set': return {\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: false,\n\t\t\t\tset: value,\n\t\t\t};\n\t\t\tcase 'get': return {\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: false,\n\t\t\t\tget: value,\n\t\t\t};\n\t\t\tdefault:\n\t\t\tcase 'method': return {\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: false,\n\t\t\t\tvalue: value\n\t\t\t};\n\t\t}\n\t}\n\tprivate initConstructor(stack: Stack, initializer: ClassInitializer) {\n\t\tconst body = (this.value.getBody() as BlockStatement).getBody();\n\t\tlet superIndex = body\n\t\t\t.findIndex(call => call instanceof CallExpression && call.getCallee() instanceof Super);\n\t\tconst blockAfterSuper = new BlockStatement(body.slice(superIndex + 1));\n\t\tinitializer.setConstructor(function (this: ClassInstance, params: any[]) {\n\t\t\tconst scope = stack.pushBlockScope();\n\t\t\tblockAfterSuper.get(stack);\n\t\t\tstack.clearTo(scope);\n\t\t});\n\t\tif (superIndex >= 0) {\n\t\t\tconst blockBeforeSuper = new BlockStatement(body.slice(0, superIndex));\n\t\t\tconst superCall = body[superIndex] as CallExpression;\n\t\t\tconst cstrExpr = this;\n\t\t\tinitializer.setParameterResolver(function (params: any[]) {\n\t\t\t\tconst scope = stack.pushBlockScope();\n\t\t\t\tcstrExpr.value.defineFunctionArguments(stack, params);\n\t\t\t\tblockBeforeSuper.get(stack);\n\t\t\t\tconst parameters = superCall.getCallParameters(stack);\n\t\t\t\tstack.clearTo(scope);\n\t\t\t\treturn parameters;\n\t\t\t});\n\t\t}\n\t}\n\ttoString(): string {\n\t\tlet str = this.decorators.map(decorator => decorator.toString()).join(' ');\n\t\tif (str.length) {\n\t\t\tstr += ' ';\n\t\t}\n\t\tif (this.static) {\n\t\t\tstr += 'static ';\n\t\t}\n\t\tconst methodName = this.key.toString();\n\t\tswitch (this.kind) {\n\t\t\tcase 'get':\n\t\t\t\tstr += 'get ' + methodName;\n\t\t\t\tbreak;\n\t\t\tcase 'set':\n\t\t\t\tstr += 'set ' + methodName;\n\t\t\t\tbreak;\n\t\t\tcase 'method':\n\t\t\t\tif (this.value.getAsync() && this.value.getGenerator()) {\n\t\t\t\t\tstr += 'async *';\n\t\t\t\t}\n\t\t\t\telse if (this.value.getAsync()) {\n\t\t\t\t\tstr += 'async ';\n\t\t\t\t} else if (this.value.getGenerator()) {\n\t\t\t\t\tstr += '*';\n\t\t\t\t}\n\t\t\t\tstr += methodName;\n\t\t\t\tbreak;\n\t\t\tcase 'constructor':\n\t\t\t\tstr += 'constructor';\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t\tstr += this.value.paramsAndBodyToString();\n\t\treturn str;\n\t}\n\ttoJson(): { [key: string]: any; } {\n\t\treturn {\n\t\t\tkind: this.kind,\n\t\t\tkey: this.key.toJSON(),\n\t\t\tvalue: this.value.toJSON(),\n\t\t\tdecorators: this.decorators.map(decorator => decorator.toJSON()),\n\t\t\tcomputed: this.computed,\n\t\t\tstatic: this.static,\n\t\t};\n\t}\n}\n\n/**\n * - When key is a PrivateIdentifier, computed must be false.\n */\n@Deserializer('PropertyDefinition')\nexport class PropertyDefinition extends AbstractDefinition {\n\tstatic fromJSON(node: PropertyDefinition, deserializer: NodeDeserializer<any>): PropertyDefinition {\n\t\treturn new PropertyDefinition(\n\t\t\tdeserializer(node.key),\n\t\t\tnode.decorators.map(deserializer),\n\t\t\tnode.computed,\n\t\t\tnode.static,\n\t\t\tnode.value && deserializer(node.value),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: PropertyDefinition, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.key);\n\t\tnode.value && visitNode(node.value);\n\t}\n\tconstructor(\n\t\tkey: ExpressionNode | PrivateIdentifier,\n\t\tdecorators: Decorator[],\n\t\tcomputed: boolean,\n\t\tisStatic: boolean,\n\t\tvalue?: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(key, decorators, computed, isStatic, value, range, loc);\n\t}\n\tget(stack: Stack, initializer: ClassInitializer): void {\n\t\tconst name: string = this.getKeyName(stack);\n\t\tif (!this.isStatic()) {\n\t\t\tinitializer.addInstanceInitializer(() => ({ isPrivate: this.isPrivate(), key: name, value: this.value?.get(stack) }));\n\t\t\treturn;\n\t\t}\n\t\tconst value = this.value?.get(stack);\n\t\tconst attributes = { writable: true, configurable: true, enumerable: true, value };\n\t\tif (this.isPrivate()) {\n\t\t\tinitializer.addStaticPrivateInitializer(name, attributes);\n\t\t} else {\n\t\t\tinitializer.addStaticInitializer(name, attributes);\n\t\t}\n\t}\n\ttoString(): string {\n\t\tconst decorators = this.decorators.map(decorator => decorator.toString()).join('\\n');\n\t\tconst name = this.computed ? `[${this.key.toString()}]` : this.key.toString();\n\t\treturn `${decorators.length ? decorators + ' ' : ''}${this.static ? 'static ' : ''}${name}${this.value ? ` = ${this.value.toString()}` : ''};`\n\t}\n\ttoJson(): { [key: string]: any; } {\n\t\treturn {\n\t\t\tkey: this.key.toJSON(),\n\t\t\tvalue: this.value?.toJSON(),\n\t\t\tdecorators: this.decorators.map(decorator => decorator.toJSON()),\n\t\t\tcomputed: this.computed,\n\t\t\tstatic: this.static,\n\t\t};\n\t}\n}\n\n\n\n@Deserializer('AccessorProperty')\nexport class AccessorProperty extends AbstractDefinition {\n\tstatic fromJSON(node: AccessorProperty, deserializer: NodeDeserializer): AccessorProperty {\n\t\treturn new AccessorProperty(\n\t\t\tdeserializer(node.key),\n\t\t\tnode.decorators.map(deserializer) as Decorator[],\n\t\t\tnode.computed,\n\t\t\tnode.static,\n\t\t\tnode.value ? deserializer(node.value) : void 0,\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: AccessorProperty, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.key);\n\t\tnode.value && visitNode(node.value);\n\t\tnode.decorators.forEach(visitNode);\n\t}\n\tconstructor(\n\t\tkey: ExpressionNode,\n\t\tdecorators: Decorator[],\n\t\tcomputed: boolean,\n\t\tisStatic: boolean,\n\t\tvalue?: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(key, decorators, computed, isStatic, value, range, loc);\n\t}\n\tget(stack: Stack, initializer: ClassInitializer): void {\n\t\tconst name: string = this.getKeyName(stack);\n\t\tconst accessorAttributes = {\n\t\t\twritable: false,\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tset: function (this: ClassInstance, value: any) {\n\t\t\t\tthis[PRIVATE_SYMBOL][name] = value;\n\t\t\t},\n\t\t\tget: function (this: ClassInstance) {\n\t\t\t\treturn this[PRIVATE_SYMBOL][name];\n\t\t\t},\n\t\t};\n\t\tif (!this.isStatic()) {\n\t\t\tinitializer.addInstanceInitializer(() => ({ isPrivate: true, key: name, value: this.value?.get(stack) }));\n\t\t\tinitializer.addInstanceMethod(name, accessorAttributes);\n\t\t\treturn;\n\t\t}\n\t\tconst value = this.value?.get(stack);\n\t\tconst valueAttribute = { writable: true, configurable: true, enumerable: true, value };\n\t\tinitializer.addStaticInitializer(name, accessorAttributes);\n\t\tinitializer.addStaticPrivateInitializer(name, valueAttribute);\n\t}\n\ttoString(): string {\n\t\tconst decorators = this.decorators.map(decorator => decorator.toString()).join('\\n');\n\t\tconst name = this.computed ? `[${this.key.toString()}]` : this.key.toString();\n\t\treturn `${decorators.length ? decorators.concat(' ') : ''}${this.static ? 'static ' : ''}accessor ${name}${this.value ? ` = ${this.value.toString()}` : ''};`\n\t}\n\ttoJson(): { [key: string]: any; } {\n\t\treturn {\n\t\t\tkey: this.key.toJSON(),\n\t\t\tdecorators: this.decorators.map(decorator => decorator.toJSON()),\n\t\t\tcomputed: this.computed,\n\t\t\tstatic: this.static,\n\t\t\tvalue: this.value?.toJSON(),\n\t\t};\n\t}\n}\n\n\n@Deserializer('ClassBody')\nexport class ClassBody extends AbstractExpressionNode {\n\tstatic fromJSON(node: ClassBody, deserializer: NodeDeserializer<any>): ClassBody {\n\t\treturn new ClassBody(\n\t\t\tnode.body.map(deserializer),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: ClassBody, visitNode: VisitNodeType): void {\n\t\tnode.body.forEach(visitNode);\n\t}\n\tconstructor(\n\t\tprivate body: (MethodDefinition | PropertyDefinition | AccessorProperty | StaticBlock)[],\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\tset(stack: Stack, value: any) {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tget(stack: Stack, initializer: ClassInitializer) {\n\t\tthis.body.forEach(definition => definition.get(stack, initializer));\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\ttoString(): string {\n\t\treturn this.body.map(definition => `\\t${definition.toString()}`).join('\\n');\n\t}\n\ttoJson(): { [key: string]: any; } {\n\t\treturn {\n\t\t\tbody: this.body.map(method => method.toJSON())\n\t\t};\n\t}\n}\n\nexport class Class extends AbstractExpressionNode {\n\tconstructor(\n\t\tprotected body: ClassBody,\n\t\tprotected decorators: Decorator[],\n\t\tprotected id?: Identifier,\n\t\tprotected superClass?: 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\tgetDecorators() {\n\t\treturn this.decorators;\n\t}\n\tgetId() {\n\t\treturn this.id;\n\t}\n\tgetSuperClass() {\n\t\treturn this.superClass;\n\t}\n\tset(stack: Stack) {\n\t\tthrow new Error(`Class.#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\t// freeze stack\n\t\tstack = stack.copyStack();\n\t\tconst className = this.id?.getName() as string ?? TEMP_CLASS_NAME;\n\t\tconst SuperClass = this.superClass?.get(stack) as TypeOf<any> | undefined ?? class { };\n\t\tconst initializer = new ClassInitializer();\n\t\tconst ClassConstructor: ClassConstructor = this.createClass(SuperClass, className, initializer);\n\n\t\t// build class body\n\t\tstack.pushBlockScopeFor({\n\t\t\t'this': ClassConstructor,\n\t\t\t'super': SuperClass,\n\t\t});\n\t\tthis.body.get(stack, initializer);\n\t\tinitializer.initClass(ClassConstructor);\n\t\treturn ClassConstructor;\n\t}\n\n\tprivate createClass(parentClass: TypeOf<any>, className: string | symbol, initializer: ClassInitializer) {\n\t\tconst nameClassDeclaration: Record<PropertyKey, ClassConstructor> = {\n\t\t\t[className]: class extends parentClass {\n\t\t\t\tstatic [Symbol.toStringTag] = className;\n\t\t\t\tstatic [PRIVATE_SYMBOL]: { [key: string | number | symbol]: any } = {};\n\t\t\t\t[PRIVATE_SYMBOL]: { [key: string | number | symbol]: any } = {};\n\t\t\t\tconstructor(...params: any[]) {\n\t\t\t\t\tconst parameters = initializer.getSuperArguments(params);\n\t\t\t\t\tsuper(...parameters);\n\t\t\t\t\tinitializer.initInstance(this);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn nameClassDeclaration[className];\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\ttoString() {\n\t\tconst decorators = this.decorators.map(decorator => decorator.toString()).join('\\n');\n\t\tlet classDeclaration = 'class ';\n\t\tif (this.id) {\n\t\t\tclassDeclaration += this.id.toString();\n\t\t}\n\t\tif (this.superClass) {\n\t\t\tclassDeclaration += ' extends ' + this.superClass.toString();\n\t\t}\n\t\treturn `${decorators}${classDeclaration} {\\n${this.body.toString()}\\n}`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tbody: this.body.toJSON(),\n\t\t\tdecorators: this.decorators.map(decorator => decorator.toJSON()),\n\t\t\tid: this.id?.toJSON(),\n\t\t\tsuperClass: this.superClass?.toJSON(),\n\t\t};\n\t}\n}\n\n@Deserializer('ClassDeclaration')\nexport class ClassDeclaration extends Class implements DeclarationExpression {\n\tstatic fromJSON(node: ClassDeclaration, deserializer: NodeDeserializer<any>): ClassDeclaration {\n\t\treturn new ClassDeclaration(\n\t\t\tdeserializer(node.body),\n\t\t\tnode.decorators.map(deserializer),\n\t\t\tdeserializer(node.id),\n\t\t\tnode.superClass && deserializer(node.superClass),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: ClassDeclaration, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.body);\n\t\tnode.decorators.forEach(visitNode);\n\t\tvisitNode(node.id);\n\t\tnode.superClass && visitNode(node.superClass);\n\t}\n\tdeclare protected id: Identifier;\n\tconstructor(\n\t\tbody: ClassBody,\n\t\tdecorators: Decorator[],\n\t\tid: Identifier,\n\t\tsuperClass?: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(body, decorators, id, superClass, range, loc);\n\t}\n\tdeclareVariable(stack: Stack, propertyValue?: any) {\n\t\tstack.declareVariable(this.id.getName(), propertyValue);\n\t}\n\tgetDeclarationName(): string {\n\t\treturn this.id.getDeclarationName()!;\n\t}\n\n\toverride get(stack: Stack) {\n\t\tconst classConstructor = super.get(stack);\n\t\tthis.id.declareVariable(stack, classConstructor);\n\t\treturn classConstructor;\n\t}\n}\n\n@Deserializer('ClassExpression')\nexport class ClassExpression extends Class {\n\tstatic fromJSON(node: ClassExpression, deserializer: NodeDeserializer<any>): ClassExpression {\n\t\treturn new ClassExpression(\n\t\t\tdeserializer(node.body),\n\t\t\tnode.decorators.map(deserializer),\n\t\t\tnode.id && deserializer(node.id),\n\t\t\tnode.superClass && deserializer(node.superClass),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: ClassExpression, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.body);\n\t\tnode.decorators.forEach(visitNode);\n\t\tnode.id && visitNode(node.id);\n\t\tnode.superClass && visitNode(node.superClass);\n\t}\n\n\tconstructor(\n\t\tbody: ClassBody,\n\t\tdecorators: Decorator[],\n\t\tid?: Identifier,\n\t\tsuperClass?: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(body, decorators, id, superClass, range, loc);\n\t}\n\n}\n"]}
1
+ {"version":3,"file":"class.js","sourceRoot":"","sources":["../../../../src/expressions/api/class/class.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tDeclarationExpression, ExpressionEventPath, ExpressionNode,\n\tNodeDeserializer, SourceLocation, VisitNodeType\n} from '../expression.js';\nimport { Stack } from '../../scope/stack.js';\nimport { AbstractExpressionNode } from '../abstract.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\nimport { Identifier } from '../definition/values.js';\nimport { FunctionExpression } from '../definition/function.js';\nimport { BlockStatement } from '../statement/control/block.js';\nimport { TypeOf } from '../utils.js';\nimport { Decorator } from './decorator.js';\nimport { CallExpression } from '../computing/call.js';\n\nconst TEMP_CLASS_NAME: unique symbol = Symbol('TempClassName');\nconst PRIVATE_SYMBOL: unique symbol = Symbol('#');;\n\ninterface ClassConstructor {\n\t/**\n\t * A reference to the prototype.\n\t */\n\treadonly prototype: ClassInstance;\n\n\t/**\n\t * private static properties and methods\n\t */\n\t[PRIVATE_SYMBOL]: Record<PropertyKey, any>;\n\n\t/**\n\t * public static class properties\n\t */\n\t[key: PropertyKey]: any;\n}\n\ndeclare var ClassInstance: ClassConstructor;\ninterface ClassInstance {\n\n\t/**\n\t * private instance properties and methods\n\t */\n\t[PRIVATE_SYMBOL]: Record<PropertyKey, any>;\n\n\t/**\n\t * public instance properties\n\t */\n\t[key: PropertyKey]: any;\n}\n\n\ntype PropertyInitializer = () => { key: PropertyKey, value: any, isPrivate: boolean };\n\nclass ClassInitializer {\n\n\t/**\n\t * register class public static properties and methods\n\t */\n\tprivate staticInitializer: Record<PropertyKey, PropertyDescriptor & ThisType<any>> = {};\n\n\t/**\n\t * register class private static properties and methods\n\t */\n\tprivate staticPrivateInitializer: Record<PropertyKey, PropertyDescriptor & ThisType<any>> = {};\n\n\t/**\n\t * register static initialization block\n\t */\n\tprivate staticInitializerBlock: (() => void)[] = [];\n\n\t/**\n\t * register class constructor function\n\t */\n\tprivate instanceConstructor?: Function;\n\n\t/**\n\t * register super parameter resolver\n\t */\n\tprivate superParameterResolver: ((params: any[]) => any[]) = (params: any[]) => params;\n\n\t/**\n\t * register in class property\n\t */\n\tprivate instanceMethod: Record<PropertyKey, PropertyDescriptor & ThisType<any>> = {};\n\n\t/**\n\t * register method in instance private space\n\t */\n\tprivate privateInstanceMethod: Record<PropertyKey, PropertyDescriptor & ThisType<any>> = {};\n\n\t/**\n\t * register property in instance itself\n\t */\n\tprivate instanceInitializer: PropertyInitializer[] = [];\n\n\taddStaticInitializer(key: PropertyKey, attributes: PropertyDescriptor & ThisType<any>) {\n\t\tReflect.set(this.staticInitializer, key, attributes)\n\t}\n\taddStaticPrivateInitializer(key: PropertyKey, attributes: PropertyDescriptor & ThisType<any>) {\n\t\tReflect.set(this.staticPrivateInitializer, key, attributes)\n\t}\n\taddStaticInitializerBlock(block: () => void) {\n\t\tthis.staticInitializerBlock.push(block);\n\t}\n\tsetConstructor(cstr: Function) {\n\t\tthis.instanceConstructor = cstr;\n\t}\n\tsetParameterResolver(resolver: (params: any[]) => any[]) {\n\t\tthis.superParameterResolver = resolver;\n\t}\n\taddInstanceMethod(key: PropertyKey, attributes: PropertyDescriptor & ThisType<any>) {\n\t\tReflect.set(this.instanceMethod, key, attributes);\n\t}\n\taddPrivateInstanceMethod(key: PropertyKey, attributes: PropertyDescriptor & ThisType<any>) {\n\t\tReflect.set(this.privateInstanceMethod, key, attributes);\n\t}\n\taddInstanceInitializer(initializer: PropertyInitializer) {\n\t\tthis.instanceInitializer.push(initializer);\n\t}\n\tinitClass(classConstructor: ClassConstructor) {\n\t\tObject.defineProperties(classConstructor, this.staticInitializer);\n\t\tObject.defineProperties(classConstructor[PRIVATE_SYMBOL], this.staticPrivateInitializer);\n\t\tObject.defineProperties(classConstructor.prototype, this.instanceMethod);\n\t\tthis.staticInitializerBlock.forEach(block => block());\n\t}\n\tgetSuperArguments(args: any[]) {\n\t\treturn this.superParameterResolver(args);\n\t}\n\tinitInstance(instance: ClassInstance) {\n\t\tObject.defineProperties(instance[PRIVATE_SYMBOL], this.privateInstanceMethod);\n\t\tthis.instanceInitializer.forEach(initializer => {\n\t\t\tconst definition = initializer();\n\t\t\tconst target = definition.isPrivate ? instance[PRIVATE_SYMBOL] : instance;\n\t\t\ttarget[definition.key] = definition.value;\n\t\t});\n\t\tthis.instanceConstructor?.apply(instance);\n\t}\n}\n\n\n/**\n * A `super` pseudo-expression.\n */\n@Deserializer('Super')\nexport class Super extends AbstractExpressionNode {\n\tstatic fromJSON(node: Super): Super {\n\t\treturn new Super(node.range, node.loc);\n\t}\n\tconstructor(range?: [number, number], loc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error('Super.#set() Method not implemented.');\n\t}\n\tget(stack: Stack, thisContext?: any) {\n\t\treturn stack.get('super');\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\tthrow new Error('Super.#dependency() Method not implemented.');\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\tthrow new Error('Super.#dependencyPath() Method not implemented.');\n\t}\n\ttoString(): string {\n\t\treturn `super`;\n\t}\n\ttoJson(): { [key: string]: any; } {\n\t\treturn {};\n\t}\n}\n\n/**\n * MetaProperty node represents\n * - `new.target` meta property in ES2015.\n * - `import.meta` meta property in ES2030.\n * \n * In the future, it will represent other meta properties as well.\n */\n@Deserializer('MetaProperty')\nexport class MetaProperty extends AbstractExpressionNode {\n\tstatic fromJSON(node: MetaProperty, deserializer: NodeDeserializer<any>): MetaProperty {\n\t\treturn new MetaProperty(\n\t\t\tdeserializer(node.meta),\n\t\t\tdeserializer(node.property),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: MetaProperty, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.meta);\n\t\tvisitNode(node.property);\n\t}\n\tconstructor(private meta: Identifier, private property: Identifier, range?: [number, number], loc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetMeta() {\n\t\treturn this.meta;\n\t}\n\tgetProperty() {\n\t\treturn this.property;\n\t}\n\tget(stack: Stack) {\n\t\tconst metaRef = this.meta.get(stack);\n\t\tif (metaRef === undefined || metaRef === null) {\n\t\t\tthrow new TypeError(`Cannot read meta property '${this.property.toString()}' of ${metaRef}, reading [${this.toString()}]`);\n\t\t}\n\t\treturn this.property.get(stack, metaRef);\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`MetaProperty#set() has no implementation.`);\n\t}\n\tdependency(computed?: true | undefined): ExpressionNode[] {\n\t\treturn [];\n\t}\n\tdependencyPath(computed?: true | undefined): ExpressionEventPath[] {\n\t\treturn [];\n\t}\n\ttoString(): string {\n\t\treturn `${this.meta.toString()}.${this.property.toString()}`;\n\t}\n\ttoJson(): { [key: string]: any; } {\n\t\treturn {\n\t\t\tmeta: this.meta.toJSON(),\n\t\t\tproperty: this.property.toJSON(),\n\t\t};\n\t}\n}\n\n/**\n * A private identifier refers to private class elements. For a private name `#a`, its name is `a`.\n */\n@Deserializer('PrivateIdentifier')\nexport class PrivateIdentifier extends Identifier {\n\tstatic fromJSON(node: PrivateIdentifier): PrivateIdentifier {\n\t\treturn new PrivateIdentifier(\n\t\t\tnode.name as string,\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tget(stack: Stack, thisContext: ClassInstance) {\n\t\treturn thisContext[PRIVATE_SYMBOL][this.name];\n\t}\n\tset(stack: Stack, value: any) {\n\t\tconst thisContext = stack.lastScope().getContext();\n\t\treturn thisContext[PRIVATE_SYMBOL][this.name] = value;\n\t}\n\ttoString(): string {\n\t\treturn `#${this.name}`;\n\t}\n}\n\n/**\n * A static block static { } is a block statement serving as an additional static initializer.\n */\n@Deserializer('StaticBlock')\nexport class StaticBlock extends BlockStatement {\n\tstatic fromJSON(node: StaticBlock, deserializer: NodeDeserializer<any>): StaticBlock {\n\t\treturn new StaticBlock(deserializer(node.body), node.range, node.loc);\n\t}\n\tget(stack: Stack, classInitializer?: ClassInitializer): void {\n\t\tclassInitializer?.addStaticInitializerBlock(super.get(stack));\n\t}\n\ttoString(): string {\n\t\treturn `static ${super.toString()}`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tbody: this.body.map(node => node.toJSON())\n\t\t};\n\t}\n}\n\nexport abstract class AbstractDefinition extends AbstractExpressionNode {\n\tprotected 'static': boolean;\n\tconstructor(\n\t\tprotected key: ExpressionNode | PrivateIdentifier,\n\t\tprotected decorators: Decorator[],\n\t\tprotected computed: boolean,\n\t\tisStatic: boolean,\n\t\tprotected value?: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t\tthis.static = isStatic;\n\t}\n\tgetKey() {\n\t\treturn this.key;\n\t}\n\tgetValue() {\n\t\treturn this.value;\n\t}\n\tisComputed() {\n\t\treturn this.computed;\n\t}\n\tisStatic() {\n\t\treturn this.static;\n\t}\n\tisPrivate() {\n\t\treturn this.key instanceof PrivateIdentifier;\n\t}\n\tgetDecorators() {\n\t\treturn this.decorators;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error('AbstractDefinition.#set() Method not implemented.');\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn [];\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn [];\n\t}\n\tgetKeyName(stack: Stack) {\n\t\tif (this.computed) {\n\t\t\t// private properties can't be computed\n\t\t\treturn (this.key as ExpressionNode).get(stack);\n\t\t}\n\t\tif (this.key instanceof Identifier) {\n\t\t\treturn this.key.getName();\n\t\t}\n\t\treturn this.key.toString();\n\t}\n\tabstract get(stack: Stack, initializer?: ClassInitializer): void;\n\tabstract toString(): string;\n\tabstract toJson(): { [key: string]: any; };\n}\n\nexport type MethodDefinitionKind = 'constructor' | 'method' | 'set' | 'get';\n\n/**\n * - When key is a PrivateIdentifier, computed must be false and kind can not be \"constructor\".\n */\n@Deserializer('MethodDefinition')\nexport class MethodDefinition extends AbstractDefinition {\n\tstatic fromJSON(node: MethodDefinition, deserializer: NodeDeserializer<any>): MethodDefinition {\n\t\treturn new MethodDefinition(\n\t\t\tnode.kind,\n\t\t\tdeserializer(node.key),\n\t\t\tdeserializer(node.value),\n\t\t\tnode.decorators.map(deserializer),\n\t\t\tnode.computed,\n\t\t\tnode.static,\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: MethodDefinition, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.key);\n\t\tvisitNode(node.value);\n\t\tnode.decorators.forEach(visitNode);\n\t}\n\tdeclare protected 'static': boolean;\n\tdeclare value: FunctionExpression;\n\tafterInstanceConstruct: any;\n\tconstructor(\n\t\tprivate kind: MethodDefinitionKind,\n\t\tkey: ExpressionNode | PrivateIdentifier,\n\t\tvalue: FunctionExpression,\n\t\tdecorators: Decorator[],\n\t\tcomputed: boolean,\n\t\tisStatic: boolean,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(key, decorators, computed, isStatic, value, range, loc);\n\t}\n\tgetKind() {\n\t\treturn this.kind;\n\t}\n\tgetValue() {\n\t\treturn this.value;\n\t}\n\tget(stack: Stack, initializer: ClassInitializer): void {\n\t\tif (this.kind === 'constructor') {\n\t\t\tthis.initConstructor(stack, initializer);\n\t\t\treturn;\n\t\t}\n\t\tconst name: string = this.getKeyName(stack);\n\t\tconst value = this.value?.get(stack);\n\t\tconst attributes = this.getPropertyAttributes(value);\n\t\tif (this.isStatic() && this.isPrivate()) {\n\t\t\tinitializer.addStaticPrivateInitializer(name, attributes);\n\t\t} else if (this.isStatic()) {\n\t\t\tinitializer.addStaticInitializer(name, attributes);\n\t\t} else if (this.isPrivate()) {\n\t\t\tinitializer.addPrivateInstanceMethod(name, attributes);\n\t\t} else {\n\t\t\tinitializer.addInstanceMethod(name, attributes);\n\t\t}\n\t}\n\n\tprivate getPropertyAttributes(value: any): PropertyDescriptor & ThisType<any> {\n\t\tswitch (this.kind) {\n\t\t\tcase 'set': return {\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: false,\n\t\t\t\tset: value,\n\t\t\t};\n\t\t\tcase 'get': return {\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: false,\n\t\t\t\tget: value,\n\t\t\t};\n\t\t\tdefault:\n\t\t\tcase 'method': return {\n\t\t\t\twritable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: false,\n\t\t\t\tvalue: value\n\t\t\t};\n\t\t}\n\t}\n\tprivate initConstructor(stack: Stack, initializer: ClassInitializer) {\n\t\tconst body = (this.value.getBody() as BlockStatement).getBody();\n\t\tlet superIndex = body\n\t\t\t.findIndex(call => call instanceof CallExpression && call.getCallee() instanceof Super);\n\t\tconst blockAfterSuper = new BlockStatement(body.slice(superIndex + 1));\n\t\tinitializer.setConstructor(function (this: ClassInstance, params: any[]) {\n\t\t\tconst scope = stack.pushBlockScope();\n\t\t\tblockAfterSuper.get(stack);\n\t\t\tstack.clearTo(scope);\n\t\t});\n\t\tif (superIndex >= 0) {\n\t\t\tconst blockBeforeSuper = new BlockStatement(body.slice(0, superIndex));\n\t\t\tconst superCall = body[superIndex] as CallExpression;\n\t\t\tconst cstrExpr = this;\n\t\t\tinitializer.setParameterResolver(function (params: any[]) {\n\t\t\t\tconst scope = stack.pushBlockScope();\n\t\t\t\tcstrExpr.value.defineFunctionArguments(stack, params);\n\t\t\t\tblockBeforeSuper.get(stack);\n\t\t\t\tconst parameters = superCall.getCallParameters(stack);\n\t\t\t\tstack.clearTo(scope);\n\t\t\t\treturn parameters;\n\t\t\t});\n\t\t}\n\t}\n\ttoString(): string {\n\t\tlet str = this.decorators.map(decorator => decorator.toString()).join(' ');\n\t\tif (str.length) {\n\t\t\tstr += ' ';\n\t\t}\n\t\tif (this.static) {\n\t\t\tstr += 'static ';\n\t\t}\n\t\tconst methodName = this.key.toString();\n\t\tswitch (this.kind) {\n\t\t\tcase 'get':\n\t\t\t\tstr += 'get ' + methodName;\n\t\t\t\tbreak;\n\t\t\tcase 'set':\n\t\t\t\tstr += 'set ' + methodName;\n\t\t\t\tbreak;\n\t\t\tcase 'method':\n\t\t\t\tif (this.value.getAsync() && this.value.getGenerator()) {\n\t\t\t\t\tstr += 'async *';\n\t\t\t\t}\n\t\t\t\telse if (this.value.getAsync()) {\n\t\t\t\t\tstr += 'async ';\n\t\t\t\t} else if (this.value.getGenerator()) {\n\t\t\t\t\tstr += '*';\n\t\t\t\t}\n\t\t\t\tstr += methodName;\n\t\t\t\tbreak;\n\t\t\tcase 'constructor':\n\t\t\t\tstr += 'constructor';\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t\tstr += this.value.paramsAndBodyToString();\n\t\treturn str;\n\t}\n\ttoJson(): { [key: string]: any; } {\n\t\treturn {\n\t\t\tkind: this.kind,\n\t\t\tkey: this.key.toJSON(),\n\t\t\tvalue: this.value.toJSON(),\n\t\t\tdecorators: this.decorators.map(decorator => decorator.toJSON()),\n\t\t\tcomputed: this.computed,\n\t\t\tstatic: this.static,\n\t\t};\n\t}\n}\n\n/**\n * - When key is a PrivateIdentifier, computed must be false.\n */\n@Deserializer('PropertyDefinition')\nexport class PropertyDefinition extends AbstractDefinition {\n\tstatic fromJSON(node: PropertyDefinition, deserializer: NodeDeserializer<any>): PropertyDefinition {\n\t\treturn new PropertyDefinition(\n\t\t\tdeserializer(node.key),\n\t\t\tnode.decorators.map(deserializer),\n\t\t\tnode.computed,\n\t\t\tnode.static,\n\t\t\tnode.value && deserializer(node.value),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: PropertyDefinition, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.key);\n\t\tnode.value && visitNode(node.value);\n\t}\n\tconstructor(\n\t\tkey: ExpressionNode | PrivateIdentifier,\n\t\tdecorators: Decorator[],\n\t\tcomputed: boolean,\n\t\tisStatic: boolean,\n\t\tvalue?: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(key, decorators, computed, isStatic, value, range, loc);\n\t}\n\tget(stack: Stack, initializer: ClassInitializer): void {\n\t\tconst name: string = this.getKeyName(stack);\n\t\tif (!this.isStatic()) {\n\t\t\tinitializer.addInstanceInitializer(() => ({ isPrivate: this.isPrivate(), key: name, value: this.value?.get(stack) }));\n\t\t\treturn;\n\t\t}\n\t\tconst value = this.value?.get(stack);\n\t\tconst attributes = { writable: true, configurable: true, enumerable: true, value };\n\t\tif (this.isPrivate()) {\n\t\t\tinitializer.addStaticPrivateInitializer(name, attributes);\n\t\t} else {\n\t\t\tinitializer.addStaticInitializer(name, attributes);\n\t\t}\n\t}\n\ttoString(): string {\n\t\tconst decorators = this.decorators.map(decorator => decorator.toString()).join('\\n');\n\t\tconst name = this.computed ? `[${this.key.toString()}]` : this.key.toString();\n\t\treturn `${decorators.length ? decorators + ' ' : ''}${this.static ? 'static ' : ''}${name}${this.value ? ` = ${this.value.toString()}` : ''};`\n\t}\n\ttoJson(): { [key: string]: any; } {\n\t\treturn {\n\t\t\tkey: this.key.toJSON(),\n\t\t\tvalue: this.value?.toJSON(),\n\t\t\tdecorators: this.decorators.map(decorator => decorator.toJSON()),\n\t\t\tcomputed: this.computed,\n\t\t\tstatic: this.static,\n\t\t};\n\t}\n}\n\n\n\n@Deserializer('AccessorProperty')\nexport class AccessorProperty extends AbstractDefinition {\n\tstatic fromJSON(node: AccessorProperty, deserializer: NodeDeserializer): AccessorProperty {\n\t\treturn new AccessorProperty(\n\t\t\tdeserializer(node.key),\n\t\t\tnode.decorators.map(deserializer) as Decorator[],\n\t\t\tnode.computed,\n\t\t\tnode.static,\n\t\t\tnode.value ? deserializer(node.value) : void 0,\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: AccessorProperty, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.key);\n\t\tnode.value && visitNode(node.value);\n\t\tnode.decorators.forEach(visitNode);\n\t}\n\tconstructor(\n\t\tkey: ExpressionNode,\n\t\tdecorators: Decorator[],\n\t\tcomputed: boolean,\n\t\tisStatic: boolean,\n\t\tvalue?: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(key, decorators, computed, isStatic, value, range, loc);\n\t}\n\tget(stack: Stack, initializer: ClassInitializer): void {\n\t\tconst name: string = this.getKeyName(stack);\n\t\tconst accessorAttributes = {\n\t\t\twritable: false,\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tset: function (this: ClassInstance, value: any) {\n\t\t\t\tthis[PRIVATE_SYMBOL][name] = value;\n\t\t\t},\n\t\t\tget: function (this: ClassInstance) {\n\t\t\t\treturn this[PRIVATE_SYMBOL][name];\n\t\t\t},\n\t\t};\n\t\tif (!this.isStatic()) {\n\t\t\tinitializer.addInstanceInitializer(() => ({ isPrivate: true, key: name, value: this.value?.get(stack) }));\n\t\t\tinitializer.addInstanceMethod(name, accessorAttributes);\n\t\t\treturn;\n\t\t}\n\t\tconst value = this.value?.get(stack);\n\t\tconst valueAttribute = { writable: true, configurable: true, enumerable: true, value };\n\t\tinitializer.addStaticInitializer(name, accessorAttributes);\n\t\tinitializer.addStaticPrivateInitializer(name, valueAttribute);\n\t}\n\ttoString(): string {\n\t\tconst decorators = this.decorators.map(decorator => decorator.toString()).join('\\n');\n\t\tconst name = this.computed ? `[${this.key.toString()}]` : this.key.toString();\n\t\treturn `${decorators.length ? decorators.concat(' ') : ''}${this.static ? 'static ' : ''}accessor ${name}${this.value ? ` = ${this.value.toString()}` : ''};`\n\t}\n\ttoJson(): { [key: string]: any; } {\n\t\treturn {\n\t\t\tkey: this.key.toJSON(),\n\t\t\tdecorators: this.decorators.map(decorator => decorator.toJSON()),\n\t\t\tcomputed: this.computed,\n\t\t\tstatic: this.static,\n\t\t\tvalue: this.value?.toJSON(),\n\t\t};\n\t}\n}\n\n\n@Deserializer('ClassBody')\nexport class ClassBody extends AbstractExpressionNode {\n\tstatic fromJSON(node: ClassBody, deserializer: NodeDeserializer<any>): ClassBody {\n\t\treturn new ClassBody(\n\t\t\tnode.body.map(deserializer),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: ClassBody, visitNode: VisitNodeType): void {\n\t\tnode.body.forEach(visitNode);\n\t}\n\tconstructor(\n\t\tprivate body: (MethodDefinition | PropertyDefinition | AccessorProperty | StaticBlock)[],\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\tset(stack: Stack, value: any) {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tget(stack: Stack, initializer: ClassInitializer) {\n\t\tthis.body.forEach(definition => definition.get(stack, initializer));\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\ttoString(): string {\n\t\treturn this.body.map(definition => `\\t${definition.toString()}`).join('\\n');\n\t}\n\ttoJson(): { [key: string]: any; } {\n\t\treturn {\n\t\t\tbody: this.body.map(method => method.toJSON())\n\t\t};\n\t}\n}\n\nexport class Class extends AbstractExpressionNode {\n\tconstructor(\n\t\tprotected body: ClassBody,\n\t\tprotected decorators: Decorator[],\n\t\tprotected id?: Identifier,\n\t\tprotected superClass?: 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\tgetDecorators() {\n\t\treturn this.decorators;\n\t}\n\tgetId() {\n\t\treturn this.id;\n\t}\n\tgetSuperClass() {\n\t\treturn this.superClass;\n\t}\n\tset(stack: Stack) {\n\t\tthrow new Error(`Class.#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\t// freeze stack\n\t\tstack = stack.copyStack();\n\t\tconst className = this.id?.getName() as string ?? TEMP_CLASS_NAME;\n\t\tconst SuperClass = this.superClass?.get(stack) as TypeOf<any> | undefined ?? class { };\n\t\tconst initializer = new ClassInitializer();\n\t\tconst ClassConstructor: ClassConstructor = this.createClass(SuperClass, className, initializer);\n\n\t\t// build class body\n\t\tstack.pushBlockScopeFor({\n\t\t\t'this': ClassConstructor,\n\t\t\t'super': SuperClass,\n\t\t});\n\t\tthis.body.get(stack, initializer);\n\t\tinitializer.initClass(ClassConstructor);\n\t\treturn ClassConstructor;\n\t}\n\n\tprivate createClass(parentClass: TypeOf<any>, className: string | symbol, initializer: ClassInitializer) {\n\t\tconst nameClassDeclaration: Record<PropertyKey, ClassConstructor> = {\n\t\t\t[className]: class extends parentClass {\n\t\t\t\tstatic [Symbol.toStringTag] = className;\n\t\t\t\tstatic [PRIVATE_SYMBOL]: { [key: string | number | symbol]: any } = {};\n\t\t\t\t[PRIVATE_SYMBOL]: { [key: string | number | symbol]: any } = {};\n\t\t\t\tconstructor(...params: any[]) {\n\t\t\t\t\tconst parameters = initializer.getSuperArguments(params);\n\t\t\t\t\tsuper(...parameters);\n\t\t\t\t\tinitializer.initInstance(this);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn nameClassDeclaration[className];\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\tthrow new Error('Method not implemented.');\n\t}\n\ttoString() {\n\t\tconst decorators = this.decorators.map(decorator => decorator.toString()).join('\\n');\n\t\tlet classDeclaration = 'class ';\n\t\tif (this.id) {\n\t\t\tclassDeclaration += this.id.toString();\n\t\t}\n\t\tif (this.superClass) {\n\t\t\tclassDeclaration += ' extends ' + this.superClass.toString();\n\t\t}\n\t\treturn `${decorators}${classDeclaration} {\\n${this.body.toString()}\\n}`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tbody: this.body.toJSON(),\n\t\t\tdecorators: this.decorators.map(decorator => decorator.toJSON()),\n\t\t\tid: this.id?.toJSON(),\n\t\t\tsuperClass: this.superClass?.toJSON(),\n\t\t};\n\t}\n}\n\n@Deserializer('ClassDeclaration')\nexport class ClassDeclaration extends Class implements DeclarationExpression {\n\tstatic fromJSON(node: ClassDeclaration, deserializer: NodeDeserializer<any>): ClassDeclaration {\n\t\treturn new ClassDeclaration(\n\t\t\tdeserializer(node.body),\n\t\t\tnode.decorators.map(deserializer),\n\t\t\tdeserializer(node.id),\n\t\t\tnode.superClass && deserializer(node.superClass),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: ClassDeclaration, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.body);\n\t\tnode.decorators.forEach(visitNode);\n\t\tvisitNode(node.id);\n\t\tnode.superClass && visitNode(node.superClass);\n\t}\n\tdeclare protected id: Identifier;\n\tconstructor(\n\t\tbody: ClassBody,\n\t\tdecorators: Decorator[],\n\t\tid: Identifier,\n\t\tsuperClass?: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(body, decorators, id, superClass, range, loc);\n\t}\n\tdeclareVariable(stack: Stack, propertyValue?: any) {\n\t\tstack.declareVariable(this.id.getName(), propertyValue);\n\t}\n\tgetDeclarationName(): string {\n\t\treturn this.id.getDeclarationName()!;\n\t}\n\n\toverride get(stack: Stack) {\n\t\tconst classConstructor = super.get(stack);\n\t\tthis.id.declareVariable(stack, classConstructor);\n\t\treturn classConstructor;\n\t}\n}\n\n@Deserializer('ClassExpression')\nexport class ClassExpression extends Class {\n\tstatic fromJSON(node: ClassExpression, deserializer: NodeDeserializer<any>): ClassExpression {\n\t\treturn new ClassExpression(\n\t\t\tdeserializer(node.body),\n\t\t\tnode.decorators.map(deserializer),\n\t\t\tnode.id && deserializer(node.id),\n\t\t\tnode.superClass && deserializer(node.superClass),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: ClassExpression, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.body);\n\t\tnode.decorators.forEach(visitNode);\n\t\tnode.id && visitNode(node.id);\n\t\tnode.superClass && visitNode(node.superClass);\n\t}\n\n\tconstructor(\n\t\tbody: ClassBody,\n\t\tdecorators: Decorator[],\n\t\tid?: Identifier,\n\t\tsuperClass?: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(body, decorators, id, superClass, range, loc);\n\t}\n\n}\n"]}
@@ -1,15 +1,19 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
2
  import { AbstractExpressionNode } from '../abstract.js';
3
3
  import { Deserializer } from '../deserialize/deserialize.js';
4
- export let Decorator = (() => {
4
+ let Decorator = (() => {
5
5
  let _classDecorators = [Deserializer('Decorator')];
6
6
  let _classDescriptor;
7
7
  let _classExtraInitializers = [];
8
8
  let _classThis;
9
- var Decorator = class extends AbstractExpressionNode {
9
+ let _classSuper = AbstractExpressionNode;
10
+ var Decorator = class extends _classSuper {
11
+ static { _classThis = this; }
10
12
  static {
11
- __esDecorate(null, _classDescriptor = { value: this }, _classDecorators, { kind: "class", name: this.name }, null, _classExtraInitializers);
13
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
14
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
12
15
  Decorator = _classThis = _classDescriptor.value;
16
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
13
17
  __runInitializers(_classThis, _classExtraInitializers);
14
18
  }
15
19
  expression;
@@ -49,4 +53,5 @@ export let Decorator = (() => {
49
53
  };
50
54
  return Decorator = _classThis;
51
55
  })();
56
+ export { Decorator };
52
57
  //# sourceMappingURL=decorator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorator.js","sourceRoot":"","sources":["../../../../src/expressions/api/class/decorator.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,MAAM,KAAO,SAAS;4BADrB,YAAY,CAAC,WAAW,CAAC;;;;QACb,SAAS,QAAC,SAAQ,sBAAsB;;YAArD,4IAiCC;YAjCY,SAAS;YAAT,uDAAS;;QAOD,UAAU;QAN9B,MAAM,CAAC,QAAQ,CAAC,IAAe,EAAE,YAAmC;YACnE,OAAO,IAAI,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,IAAe,EAAE,SAAwB;YACrD,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;QACD,YAAoB,UAA0B,EAAE,KAAwB,EAAE,GAAoB;YAC7F,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YADC,eAAU,GAAV,UAAU,CAAgB;QAE9C,CAAC;QACD,aAAa;YACZ,OAAO,IAAI,CAAC,UAAU,CAAC;QACxB,CAAC;QACD,GAAG,CAAC,KAAY,EAAE,KAAU;YAC3B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC5D,CAAC;QACD,GAAG,CAAC,KAAY;YACf,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QACD,UAAU,CAAC,QAAe;YACzB,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC;QACD,cAAc,CAAC,QAAe;YAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC;QACD,QAAQ;YACP,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;QACzC,CAAC;QACD,MAAM;YACL,OAAO;gBACN,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;aACpC,CAAC;QACH,CAAC;;WAhCW,SAAS","sourcesContent":["import type {\n\tExpressionEventPath, ExpressionNode, NodeDeserializer,\n\tSourceLocation, VisitNodeType\n} from '../expression.js';\nimport { Stack } from '../../scope/stack.js';\nimport { AbstractExpressionNode } from '../abstract.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\n\n@Deserializer('Decorator')\nexport class Decorator extends AbstractExpressionNode {\n\tstatic fromJSON(node: Decorator, deserializer: NodeDeserializer<any>): Decorator {\n\t\treturn new Decorator(deserializer(node.expression), node.range, node.loc);\n\t}\n\tstatic visit(node: Decorator, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.expression);\n\t}\n\tconstructor(private expression: ExpressionNode, range?: [number, number], loc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetExpression() {\n\t\treturn this.expression;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error('Decorator#set() Method not implemented.');\n\t}\n\tget(stack: Stack) {\n\t\treturn this.expression.get(stack);\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.expression.dependency(computed);\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.expression.dependencyPath(computed);\n\t}\n\ttoString(): string {\n\t\treturn `@${this.expression.toString()}`;\n\t}\n\ttoJson(): { [key: string]: any; } {\n\t\treturn {\n\t\t\texpression: this.expression.toJSON()\n\t\t};\n\t}\n}\n"]}
1
+ {"version":3,"file":"decorator.js","sourceRoot":"","sources":["../../../../src/expressions/api/class/decorator.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;IAGhD,SAAS;4BADrB,YAAY,CAAC,WAAW,CAAC;;;;sBACK,sBAAsB;yBAA9B,SAAQ,WAAsB;;;;YAArD,6KAiCC;;;YAjCY,uDAAS;;QAOD,UAAU;QAN9B,MAAM,CAAC,QAAQ,CAAC,IAAe,EAAE,YAAmC;YACnE,OAAO,IAAI,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,IAAe,EAAE,SAAwB;YACrD,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5B,CAAC;QACD,YAAoB,UAA0B,EAAE,KAAwB,EAAE,GAAoB;YAC7F,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YADC,eAAU,GAAV,UAAU,CAAgB;QAE9C,CAAC;QACD,aAAa;YACZ,OAAO,IAAI,CAAC,UAAU,CAAC;QACxB,CAAC;QACD,GAAG,CAAC,KAAY,EAAE,KAAU;YAC3B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC5D,CAAC;QACD,GAAG,CAAC,KAAY;YACf,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QACD,UAAU,CAAC,QAAe;YACzB,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC;QACD,cAAc,CAAC,QAAe;YAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC;QACD,QAAQ;YACP,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;QACzC,CAAC;QACD,MAAM;YACL,OAAO;gBACN,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;aACpC,CAAC;QACH,CAAC;;;;SAhCW,SAAS","sourcesContent":["import type {\n\tExpressionEventPath, ExpressionNode, NodeDeserializer,\n\tSourceLocation, VisitNodeType\n} from '../expression.js';\nimport { Stack } from '../../scope/stack.js';\nimport { AbstractExpressionNode } from '../abstract.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\n\n@Deserializer('Decorator')\nexport class Decorator extends AbstractExpressionNode {\n\tstatic fromJSON(node: Decorator, deserializer: NodeDeserializer<any>): Decorator {\n\t\treturn new Decorator(deserializer(node.expression), node.range, node.loc);\n\t}\n\tstatic visit(node: Decorator, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.expression);\n\t}\n\tconstructor(private expression: ExpressionNode, range?: [number, number], loc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetExpression() {\n\t\treturn this.expression;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error('Decorator#set() Method not implemented.');\n\t}\n\tget(stack: Stack) {\n\t\treturn this.expression.get(stack);\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.expression.dependency(computed);\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.expression.dependencyPath(computed);\n\t}\n\ttoString(): string {\n\t\treturn `@${this.expression.toString()}`;\n\t}\n\ttoJson(): { [key: string]: any; } {\n\t\treturn {\n\t\t\texpression: this.expression.toJSON()\n\t\t};\n\t}\n}\n"]}
@@ -4,15 +4,19 @@ import { SpreadElement } from './spread.js';
4
4
  import { Deserializer } from '../deserialize/deserialize.js';
5
5
  import { MemberExpression } from '../definition/member.js';
6
6
  import { Identifier } from '../definition/values.js';
7
- export let CallExpression = (() => {
7
+ let CallExpression = (() => {
8
8
  let _classDecorators = [Deserializer('CallExpression')];
9
9
  let _classDescriptor;
10
10
  let _classExtraInitializers = [];
11
11
  let _classThis;
12
- var CallExpression = class extends AbstractExpressionNode {
12
+ let _classSuper = AbstractExpressionNode;
13
+ var CallExpression = class extends _classSuper {
14
+ static { _classThis = this; }
13
15
  static {
14
- __esDecorate(null, _classDescriptor = { value: this }, _classDecorators, { kind: "class", name: this.name }, null, _classExtraInitializers);
16
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
17
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
15
18
  CallExpression = _classThis = _classDescriptor.value;
19
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
16
20
  __runInitializers(_classThis, _classExtraInitializers);
17
21
  }
18
22
  callee;
@@ -88,4 +92,5 @@ export let CallExpression = (() => {
88
92
  };
89
93
  return CallExpression = _classThis;
90
94
  })();
95
+ export { CallExpression };
91
96
  //# sourceMappingURL=call.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"call.js","sourceRoot":"","sources":["../../../../src/expressions/api/computing/call.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 } from '../abstract.js';\nimport { SpreadElement } from './spread.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\nimport { MemberExpression } from '../definition/member.js';\nimport { Identifier } from '../definition/values.js';\n\n@Deserializer('CallExpression')\nexport class CallExpression extends AbstractExpressionNode {\n\tstatic fromJSON(node: CallExpression, deserializer: NodeDeserializer): CallExpression {\n\t\treturn new CallExpression(\n\t\t\tdeserializer(node.callee),\n\t\t\tnode.arguments.map(param => deserializer(param)),\n\t\t\tnode.optional,\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: CallExpression, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.callee);\n\t\tnode.arguments.forEach(visitNode);\n\t}\n\tprivate arguments: ExpressionNode[];\n\tconstructor(\n\t\tprivate callee: ExpressionNode,\n\t\tparams: ExpressionNode[],\n\t\tprivate optional: boolean = false,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t\tthis.arguments = params;\n\t}\n\tgetCallee() {\n\t\treturn this.callee;\n\t}\n\tgetArguments() {\n\t\treturn this.arguments;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`CallExpression#set() has no implementation.`);\n\t}\n\tget(stack: Stack, thisContext?: any) {\n\t\tconst funCallBack: Function = this.callee.get(stack) as Function;\n\t\tif (this.optional && (funCallBack === null || funCallBack === undefined)) {\n\t\t\treturn;\n\t\t}\n\t\tconst parameters: any[] = this.getCallParameters(stack);\n\t\tif (!thisContext && this.callee instanceof MemberExpression) {\n\t\t\tthisContext = this.callee.getObject().get(stack);\n\t\t} else if (!thisContext && this.callee instanceof Identifier) {\n\t\t\tthisContext = stack.findScope(this.callee.getName()).getContextProxy?.();\n\t\t}\n\t\treturn funCallBack.apply(thisContext, parameters);\n\t}\n\tgetCallParameters(stack: Stack): any[] {\n\t\tconst parameters: any[] = [];\n\t\tfor (const arg of this.arguments) {\n\t\t\tif (arg instanceof SpreadElement) {\n\t\t\t\tconst paramScope = stack.pushBlockScopeFor(parameters);\n\t\t\t\targ.get(stack);\n\t\t\t\tstack.clearTo(paramScope);\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\tparameters.push(arg.get(stack));\n\t\t\t}\n\t\t}\n\t\treturn parameters;\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.callee.dependency(computed).concat(this.arguments.flatMap(param => param.dependency(computed)));\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.callee.dependencyPath(computed).concat(this.arguments.flatMap(param => param.dependencyPath(computed)));\n\t}\n\ttoString(): string {\n\t\treturn `${this.callee.toString()}${this.optional ? '?.' : ''}(${this.arguments.map(arg => arg.toString()).join(', ')})`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tcallee: this.callee.toJSON(),\n\t\t\targuments: this.arguments.map(arg => arg.toJSON()),\n\t\t\toptional: this.optional\n\t\t};\n\t}\n}\n"]}
1
+ {"version":3,"file":"call.js","sourceRoot":"","sources":["../../../../src/expressions/api/computing/call.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 } from '../abstract.js';\nimport { SpreadElement } from './spread.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\nimport { MemberExpression } from '../definition/member.js';\nimport { Identifier } from '../definition/values.js';\n\n@Deserializer('CallExpression')\nexport class CallExpression extends AbstractExpressionNode {\n\tstatic fromJSON(node: CallExpression, deserializer: NodeDeserializer): CallExpression {\n\t\treturn new CallExpression(\n\t\t\tdeserializer(node.callee),\n\t\t\tnode.arguments.map(param => deserializer(param)),\n\t\t\tnode.optional,\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: CallExpression, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.callee);\n\t\tnode.arguments.forEach(visitNode);\n\t}\n\tprivate arguments: ExpressionNode[];\n\tconstructor(\n\t\tprivate callee: ExpressionNode,\n\t\tparams: ExpressionNode[],\n\t\tprivate optional: boolean = false,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t\tthis.arguments = params;\n\t}\n\tgetCallee() {\n\t\treturn this.callee;\n\t}\n\tgetArguments() {\n\t\treturn this.arguments;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`CallExpression#set() has no implementation.`);\n\t}\n\tget(stack: Stack, thisContext?: any) {\n\t\tconst funCallBack: Function = this.callee.get(stack) as Function;\n\t\tif (this.optional && (funCallBack === null || funCallBack === undefined)) {\n\t\t\treturn;\n\t\t}\n\t\tconst parameters: any[] = this.getCallParameters(stack);\n\t\tif (!thisContext && this.callee instanceof MemberExpression) {\n\t\t\tthisContext = this.callee.getObject().get(stack);\n\t\t} else if (!thisContext && this.callee instanceof Identifier) {\n\t\t\tthisContext = stack.findScope(this.callee.getName()).getContextProxy?.();\n\t\t}\n\t\treturn funCallBack.apply(thisContext, parameters);\n\t}\n\tgetCallParameters(stack: Stack): any[] {\n\t\tconst parameters: any[] = [];\n\t\tfor (const arg of this.arguments) {\n\t\t\tif (arg instanceof SpreadElement) {\n\t\t\t\tconst paramScope = stack.pushBlockScopeFor(parameters);\n\t\t\t\targ.get(stack);\n\t\t\t\tstack.clearTo(paramScope);\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\tparameters.push(arg.get(stack));\n\t\t\t}\n\t\t}\n\t\treturn parameters;\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.callee.dependency(computed).concat(this.arguments.flatMap(param => param.dependency(computed)));\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.callee.dependencyPath(computed).concat(this.arguments.flatMap(param => param.dependencyPath(computed)));\n\t}\n\ttoString(): string {\n\t\treturn `${this.callee.toString()}${this.optional ? '?.' : ''}(${this.arguments.map(arg => arg.toString()).join(', ')})`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tcallee: this.callee.toJSON(),\n\t\t\targuments: this.arguments.map(arg => arg.toJSON()),\n\t\t\toptional: this.optional\n\t\t};\n\t}\n}\n"]}
@@ -1,15 +1,19 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
2
  import { AbstractExpressionNode } from '../abstract.js';
3
3
  import { Deserializer } from '../deserialize/deserialize.js';
4
- export let DebuggerStatement = (() => {
4
+ let DebuggerStatement = (() => {
5
5
  let _classDecorators = [Deserializer('DebuggerStatement')];
6
6
  let _classDescriptor;
7
7
  let _classExtraInitializers = [];
8
8
  let _classThis;
9
- var DebuggerStatement = class extends AbstractExpressionNode {
9
+ let _classSuper = AbstractExpressionNode;
10
+ var DebuggerStatement = class extends _classSuper {
11
+ static { _classThis = this; }
10
12
  static {
11
- __esDecorate(null, _classDescriptor = { value: this }, _classDecorators, { kind: "class", name: this.name }, null, _classExtraInitializers);
13
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
14
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
12
15
  DebuggerStatement = _classThis = _classDescriptor.value;
16
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
13
17
  __runInitializers(_classThis, _classExtraInitializers);
14
18
  }
15
19
  static fromJSON(node) {
@@ -36,4 +40,5 @@ export let DebuggerStatement = (() => {
36
40
  };
37
41
  return DebuggerStatement = _classThis;
38
42
  })();
43
+ export { DebuggerStatement };
39
44
  //# sourceMappingURL=debugger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"debugger.js","sourceRoot":"","sources":["../../../../src/expressions/api/computing/debugger.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,MAAM,KAAO,iBAAiB;4BAD7B,YAAY,CAAC,mBAAmB,CAAC;;;;QACrB,iBAAiB,QAAC,SAAQ,sBAAsB;;YAA7D,4IAsBC;YAtBY,iBAAiB;YAAjB,uDAAiB;;QAC7B,MAAM,CAAC,QAAQ,CAAC,IAAuB;YACtC,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACpD,CAAC;QACD,GAAG,CAAC,KAAY,EAAE,KAAU;YAC3B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACnE,CAAC;QACD,GAAG,CAAC,KAAY;YACf,QAAQ,CAAC;QACV,CAAC;QACD,UAAU,CAAC,QAAe;YACzB,OAAO,EAAE,CAAC;QACX,CAAC;QACD,cAAc,CAAC,QAAe;YAC7B,OAAO,EAAE,CAAC;QACX,CAAC;QACD,QAAQ;YACP,OAAO,UAAU,CAAC;QACnB,CAAC;QACD,MAAM;YACL,OAAO,EAAE,CAAC;QACX,CAAC;;WArBW,iBAAiB","sourcesContent":["import type { ExpressionNode, ExpressionEventPath } from '../expression.js';\nimport type { Stack } from '../../scope/stack.js';\nimport { AbstractExpressionNode } from '../abstract.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\n\n@Deserializer('DebuggerStatement')\nexport class DebuggerStatement extends AbstractExpressionNode {\n\tstatic fromJSON(node: DebuggerStatement): DebuggerStatement {\n\t\treturn new DebuggerStatement(node.range, node.loc);\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`DebuggerStatement#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tdebugger;\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn [];\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn [];\n\t}\n\ttoString(): string {\n\t\treturn 'debugger';\n\t}\n\ttoJson(): object {\n\t\treturn {};\n\t}\n}\n"]}
1
+ {"version":3,"file":"debugger.js","sourceRoot":"","sources":["../../../../src/expressions/api/computing/debugger.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;IAGhD,iBAAiB;4BAD7B,YAAY,CAAC,mBAAmB,CAAC;;;;sBACK,sBAAsB;iCAA9B,SAAQ,WAAsB;;;;YAA7D,6KAsBC;;;YAtBY,uDAAiB;;QAC7B,MAAM,CAAC,QAAQ,CAAC,IAAuB;YACtC,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACpD,CAAC;QACD,GAAG,CAAC,KAAY,EAAE,KAAU;YAC3B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACnE,CAAC;QACD,GAAG,CAAC,KAAY;YACf,QAAQ,CAAC;QACV,CAAC;QACD,UAAU,CAAC,QAAe;YACzB,OAAO,EAAE,CAAC;QACX,CAAC;QACD,cAAc,CAAC,QAAe;YAC7B,OAAO,EAAE,CAAC;QACX,CAAC;QACD,QAAQ;YACP,OAAO,UAAU,CAAC;QACnB,CAAC;QACD,MAAM;YACL,OAAO,EAAE,CAAC;QACX,CAAC;;;;SArBW,iBAAiB","sourcesContent":["import type { ExpressionNode, ExpressionEventPath } from '../expression.js';\nimport type { Stack } from '../../scope/stack.js';\nimport { AbstractExpressionNode } from '../abstract.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\n\n@Deserializer('DebuggerStatement')\nexport class DebuggerStatement extends AbstractExpressionNode {\n\tstatic fromJSON(node: DebuggerStatement): DebuggerStatement {\n\t\treturn new DebuggerStatement(node.range, node.loc);\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`DebuggerStatement#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tdebugger;\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn [];\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn [];\n\t}\n\ttoString(): string {\n\t\treturn 'debugger';\n\t}\n\ttoJson(): object {\n\t\treturn {};\n\t}\n}\n"]}
@@ -2,15 +2,19 @@ import { __esDecorate, __runInitializers } from "tslib";
2
2
  import { AbstractExpressionNode } from '../abstract.js';
3
3
  import { SpreadElement } from './spread.js';
4
4
  import { Deserializer } from '../deserialize/deserialize.js';
5
- export let NewExpression = (() => {
5
+ let NewExpression = (() => {
6
6
  let _classDecorators = [Deserializer('NewExpression')];
7
7
  let _classDescriptor;
8
8
  let _classExtraInitializers = [];
9
9
  let _classThis;
10
- var NewExpression = class extends AbstractExpressionNode {
10
+ let _classSuper = AbstractExpressionNode;
11
+ var NewExpression = class extends _classSuper {
12
+ static { _classThis = this; }
11
13
  static {
12
- __esDecorate(null, _classDescriptor = { value: this }, _classDecorators, { kind: "class", name: this.name }, null, _classExtraInitializers);
14
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
15
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
13
16
  NewExpression = _classThis = _classDescriptor.value;
17
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
14
18
  __runInitializers(_classThis, _classExtraInitializers);
15
19
  }
16
20
  className;
@@ -85,4 +89,5 @@ export let NewExpression = (() => {
85
89
  };
86
90
  return NewExpression = _classThis;
87
91
  })();
92
+ export { NewExpression };
88
93
  //# sourceMappingURL=new.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"new.js","sourceRoot":"","sources":["../../../../src/expressions/api/computing/new.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 } from '../abstract.js';\nimport { SpreadElement } from './spread.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\n\n@Deserializer('NewExpression')\nexport class NewExpression extends AbstractExpressionNode {\n\tstatic fromJSON(node: NewExpression, deserializer: NodeDeserializer): NewExpression {\n\t\treturn new NewExpression(\n\t\t\tdeserializer(node.className),\n\t\t\tnode.arguments?.map(deserializer),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: NewExpression, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.className);\n\t\tnode.arguments?.forEach(visitNode);\n\t}\n\tprivate arguments?: ExpressionNode[];\n\tconstructor(\n\t\tprivate className: ExpressionNode,\n\t\tparameters?: ExpressionNode[],\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t\tthis.arguments = parameters;\n\t}\n\tgetClassName() {\n\t\treturn this.className;\n\t}\n\tgetArguments() {\n\t\treturn this.arguments;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`NewExpression#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tconst classRef = this.className.get(stack);\n\t\tlet value: any;\n\t\tif (this.arguments) {\n\t\t\tif (this.arguments.length > 0) {\n\t\t\t\tconst parameters: any[] = [];\n\t\t\t\tfor (const param of this.arguments) {\n\t\t\t\t\tif (param instanceof SpreadElement) {\n\t\t\t\t\t\tconst paramScope = stack.pushBlockScopeFor(parameters);\n\t\t\t\t\t\tparam.get(stack);\n\t\t\t\t\t\tstack.clearTo(paramScope);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tparameters.push(param.get(stack));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvalue = new classRef(...parameters);\n\t\t\t} else {\n\t\t\t\tvalue = new classRef();\n\t\t\t}\n\t\t} else {\n\t\t\tvalue = new classRef;\n\t\t}\n\t\treturn value;\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.className.dependency(computed)\n\t\t\t.concat(this.arguments?.flatMap(parm => parm.dependency(computed)) || []);\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.className.dependencyPath(computed)\n\t\t\t.concat(this.arguments?.flatMap(param => param.dependencyPath(computed)) || []);\n\t}\n\ttoString(): string {\n\t\tconst parameters = this.arguments ? `(${this.arguments?.map(arg => arg.toString()).join(', ')})` : '';\n\t\treturn `new ${this.className.toString()}${parameters}`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tclassName: this.className.toJSON(),\n\t\t\targuments: this.arguments?.map(arg => arg.toJSON())\n\t\t};\n\t}\n}\n"]}
1
+ {"version":3,"file":"new.js","sourceRoot":"","sources":["../../../../src/expressions/api/computing/new.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 } from '../abstract.js';\nimport { SpreadElement } from './spread.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\n\n@Deserializer('NewExpression')\nexport class NewExpression extends AbstractExpressionNode {\n\tstatic fromJSON(node: NewExpression, deserializer: NodeDeserializer): NewExpression {\n\t\treturn new NewExpression(\n\t\t\tdeserializer(node.className),\n\t\t\tnode.arguments?.map(deserializer),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: NewExpression, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.className);\n\t\tnode.arguments?.forEach(visitNode);\n\t}\n\tprivate arguments?: ExpressionNode[];\n\tconstructor(\n\t\tprivate className: ExpressionNode,\n\t\tparameters?: ExpressionNode[],\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t\tthis.arguments = parameters;\n\t}\n\tgetClassName() {\n\t\treturn this.className;\n\t}\n\tgetArguments() {\n\t\treturn this.arguments;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`NewExpression#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tconst classRef = this.className.get(stack);\n\t\tlet value: any;\n\t\tif (this.arguments) {\n\t\t\tif (this.arguments.length > 0) {\n\t\t\t\tconst parameters: any[] = [];\n\t\t\t\tfor (const param of this.arguments) {\n\t\t\t\t\tif (param instanceof SpreadElement) {\n\t\t\t\t\t\tconst paramScope = stack.pushBlockScopeFor(parameters);\n\t\t\t\t\t\tparam.get(stack);\n\t\t\t\t\t\tstack.clearTo(paramScope);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tparameters.push(param.get(stack));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvalue = new classRef(...parameters);\n\t\t\t} else {\n\t\t\t\tvalue = new classRef();\n\t\t\t}\n\t\t} else {\n\t\t\tvalue = new classRef;\n\t\t}\n\t\treturn value;\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.className.dependency(computed)\n\t\t\t.concat(this.arguments?.flatMap(parm => parm.dependency(computed)) || []);\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.className.dependencyPath(computed)\n\t\t\t.concat(this.arguments?.flatMap(param => param.dependencyPath(computed)) || []);\n\t}\n\ttoString(): string {\n\t\tconst parameters = this.arguments ? `(${this.arguments?.map(arg => arg.toString()).join(', ')})` : '';\n\t\treturn `new ${this.className.toString()}${parameters}`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tclassName: this.className.toJSON(),\n\t\t\targuments: this.arguments?.map(arg => arg.toJSON())\n\t\t};\n\t}\n}\n"]}
@@ -1,15 +1,19 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
2
  import { AbstractExpressionNode } from '../abstract.js';
3
3
  import { Deserializer } from '../deserialize/deserialize.js';
4
- export let RestElement = (() => {
4
+ let RestElement = (() => {
5
5
  let _classDecorators = [Deserializer('RestElement')];
6
6
  let _classDescriptor;
7
7
  let _classExtraInitializers = [];
8
8
  let _classThis;
9
- var RestElement = class extends AbstractExpressionNode {
9
+ let _classSuper = AbstractExpressionNode;
10
+ var RestElement = class extends _classSuper {
11
+ static { _classThis = this; }
10
12
  static {
11
- __esDecorate(null, _classDescriptor = { value: this }, _classDecorators, { kind: "class", name: this.name }, null, _classExtraInitializers);
13
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
14
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
12
15
  RestElement = _classThis = _classDescriptor.value;
16
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
13
17
  __runInitializers(_classThis, _classExtraInitializers);
14
18
  }
15
19
  argument;
@@ -50,4 +54,5 @@ export let RestElement = (() => {
50
54
  };
51
55
  return RestElement = _classThis;
52
56
  })();
57
+ export { RestElement };
53
58
  //# sourceMappingURL=rest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rest.js","sourceRoot":"","sources":["../../../../src/expressions/api/computing/rest.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,MAAM,KAAO,WAAW;4BADvB,YAAY,CAAC,aAAa,CAAC;;;;QACf,WAAW,QAAC,SAAQ,sBAAsB;;YAAvD,4IAyCC;YAzCY,WAAW;YAAX,uDAAW;;QAYd,QAAQ;QAXjB,MAAM,CAAC,QAAQ,CAAC,IAAiB,EAAE,YAA8B;YAChE,OAAO,IAAI,WAAW,CACrB,YAAY,CAAC,IAAI,CAAC,QAAQ,CAA0B,EACpD,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,CACR,CAAC;QACH,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,IAAiB,EAAE,SAAwB;YACvD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;QACD,YACS,QAA+B,EACvC,KAAwB,EACxB,GAAoB;YACpB,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAHV,aAAQ,GAAR,QAAQ,CAAuB;QAIxC,CAAC;QACD,WAAW;YACV,OAAO,IAAI,CAAC,QAAQ,CAAC;QACtB,CAAC;QACD,GAAG,CAAC,KAAY,EAAE,KAAU;YAC3B,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACpE,CAAC;QACD,GAAG,CAAC,KAAY;YACf,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACpE,CAAC;QACD,eAAe,CAAC,KAAY,EAAE,aAAmB;YAChD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QACrD,CAAC;QACD,UAAU,CAAC,QAAe;YACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;QACD,cAAc,CAAC,QAAe;YAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;QACD,QAAQ;YACP,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;QACzC,CAAC;QACD,MAAM;YACL,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QAC7C,CAAC;;WAxCW,WAAW","sourcesContent":["import type {\n\tDeclarationExpression, ExpressionEventPath, ExpressionNode,\n\tNodeDeserializer, SourceLocation, VisitNodeType\n} from '../expression.js';\nimport type { Stack } from '../../scope/stack.js';\nimport { AbstractExpressionNode } from '../abstract.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\n\n@Deserializer('RestElement')\nexport class RestElement extends AbstractExpressionNode implements DeclarationExpression {\n\tstatic fromJSON(node: RestElement, deserializer: NodeDeserializer): RestElement {\n\t\treturn new RestElement(\n\t\t\tdeserializer(node.argument) as DeclarationExpression,\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: RestElement, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.argument);\n\t}\n\tconstructor(\n\t\tprivate argument: DeclarationExpression,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetArgument() {\n\t\treturn this.argument;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error('RestElement#set() Method has no implementation.');\n\t}\n\tget(stack: Stack): void {\n\t\tthrow new Error('RestElement#get() Method has no implementation.');\n\t}\n\tdeclareVariable(stack: Stack, propertyValue?: any): any {\n\t\tthis.argument.declareVariable(stack, propertyValue);\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.argument.dependency(computed);\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.argument.dependencyPath(computed);\n\t}\n\ttoString(): string {\n\t\treturn `...${this.argument.toString()}`;\n\t}\n\ttoJson(): object {\n\t\treturn { argument: this.argument.toJSON() };\n\t}\n}\n"]}
1
+ {"version":3,"file":"rest.js","sourceRoot":"","sources":["../../../../src/expressions/api/computing/rest.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;IAGhD,WAAW;4BADvB,YAAY,CAAC,aAAa,CAAC;;;;sBACK,sBAAsB;2BAA9B,SAAQ,WAAsB;;;;YAAvD,6KAyCC;;;YAzCY,uDAAW;;QAYd,QAAQ;QAXjB,MAAM,CAAC,QAAQ,CAAC,IAAiB,EAAE,YAA8B;YAChE,OAAO,IAAI,WAAW,CACrB,YAAY,CAAC,IAAI,CAAC,QAAQ,CAA0B,EACpD,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,CACR,CAAC;QACH,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,IAAiB,EAAE,SAAwB;YACvD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;QACD,YACS,QAA+B,EACvC,KAAwB,EACxB,GAAoB;YACpB,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAHV,aAAQ,GAAR,QAAQ,CAAuB;QAIxC,CAAC;QACD,WAAW;YACV,OAAO,IAAI,CAAC,QAAQ,CAAC;QACtB,CAAC;QACD,GAAG,CAAC,KAAY,EAAE,KAAU;YAC3B,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACpE,CAAC;QACD,GAAG,CAAC,KAAY;YACf,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACpE,CAAC;QACD,eAAe,CAAC,KAAY,EAAE,aAAmB;YAChD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QACrD,CAAC;QACD,UAAU,CAAC,QAAe;YACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;QACD,cAAc,CAAC,QAAe;YAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;QACD,QAAQ;YACP,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;QACzC,CAAC;QACD,MAAM;YACL,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QAC7C,CAAC;;;;SAxCW,WAAW","sourcesContent":["import type {\n\tDeclarationExpression, ExpressionEventPath, ExpressionNode,\n\tNodeDeserializer, SourceLocation, VisitNodeType\n} from '../expression.js';\nimport type { Stack } from '../../scope/stack.js';\nimport { AbstractExpressionNode } from '../abstract.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\n\n@Deserializer('RestElement')\nexport class RestElement extends AbstractExpressionNode implements DeclarationExpression {\n\tstatic fromJSON(node: RestElement, deserializer: NodeDeserializer): RestElement {\n\t\treturn new RestElement(\n\t\t\tdeserializer(node.argument) as DeclarationExpression,\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: RestElement, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.argument);\n\t}\n\tconstructor(\n\t\tprivate argument: DeclarationExpression,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetArgument() {\n\t\treturn this.argument;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error('RestElement#set() Method has no implementation.');\n\t}\n\tget(stack: Stack): void {\n\t\tthrow new Error('RestElement#get() Method has no implementation.');\n\t}\n\tdeclareVariable(stack: Stack, propertyValue?: any): any {\n\t\tthis.argument.declareVariable(stack, propertyValue);\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.argument.dependency(computed);\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.argument.dependencyPath(computed);\n\t}\n\ttoString(): string {\n\t\treturn `...${this.argument.toString()}`;\n\t}\n\ttoJson(): object {\n\t\treturn { argument: this.argument.toJSON() };\n\t}\n}\n"]}
@@ -5,15 +5,19 @@ import { Deserializer } from '../deserialize/deserialize.js';
5
5
  * The expression whose value is to be returned.
6
6
  * If omitted, undefined is returned instead.
7
7
  */
8
- export let ReturnStatement = (() => {
8
+ let ReturnStatement = (() => {
9
9
  let _classDecorators = [Deserializer('ReturnStatement')];
10
10
  let _classDescriptor;
11
11
  let _classExtraInitializers = [];
12
12
  let _classThis;
13
- var ReturnStatement = class extends AbstractExpressionNode {
13
+ let _classSuper = AbstractExpressionNode;
14
+ var ReturnStatement = class extends _classSuper {
15
+ static { _classThis = this; }
14
16
  static {
15
- __esDecorate(null, _classDescriptor = { value: this }, _classDecorators, { kind: "class", name: this.name }, null, _classExtraInitializers);
17
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
18
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
16
19
  ReturnStatement = _classThis = _classDescriptor.value;
20
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
17
21
  __runInitializers(_classThis, _classExtraInitializers);
18
22
  }
19
23
  argument;
@@ -52,4 +56,5 @@ export let ReturnStatement = (() => {
52
56
  };
53
57
  return ReturnStatement = _classThis;
54
58
  })();
59
+ export { ReturnStatement };
55
60
  //# sourceMappingURL=return.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"return.js","sourceRoot":"","sources":["../../../../src/expressions/api/computing/return.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D;;;GAGG;AAEH,MAAM,KAAO,eAAe;4BAD3B,YAAY,CAAC,iBAAiB,CAAC;;;;QACnB,eAAe,QAAC,SAAQ,sBAAsB;;YAA3D,4IAuCC;YAvCY,eAAe;YAAf,uDAAe;;QAYlB,QAAQ;QAXjB,MAAM,CAAC,QAAQ,CAAC,IAAqB,EAAE,YAA8B;YACpE,OAAO,IAAI,eAAe,CACzB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EACpD,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,CACR,CAAC;QACH,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,IAAqB,EAAE,SAAwB;YAC3D,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;QACD,YACS,QAAyB,EACjC,KAAwB,EACxB,GAAoB;YACpB,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAHV,aAAQ,GAAR,QAAQ,CAAiB;QAIlC,CAAC;QACD,WAAW;YACV,OAAO,IAAI,CAAC,QAAQ,CAAC;QACtB,CAAC;QACD,GAAG,CAAC,KAAY,EAAE,KAAU;YAC3B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACjE,CAAC;QACD,GAAG,CAAC,KAAY;YACf,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YAClD,qEAAqE;QACtE,CAAC;QACD,UAAU,CAAC,QAAe;YACzB,OAAO,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClD,CAAC;QACD,cAAc,CAAC,QAAe;YAC7B,OAAO,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtD,CAAC;QACD,QAAQ;YACP,OAAO,UAAU,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;QACpD,CAAC;QACD,MAAM;YACL,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC;QAC9C,CAAC;;WAtCW,eAAe","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';\n\n/**\n * The expression whose value is to be returned. \n * If omitted, undefined is returned instead.\n */\n@Deserializer('ReturnStatement')\nexport class ReturnStatement extends AbstractExpressionNode {\n\tstatic fromJSON(node: ReturnStatement, deserializer: NodeDeserializer): ReturnStatement {\n\t\treturn new ReturnStatement(\n\t\t\tnode.argument ? deserializer(node.argument) : void 0,\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: ReturnStatement, visitNode: VisitNodeType): void {\n\t\tnode.argument && visitNode(node.argument);\n\t}\n\tconstructor(\n\t\tprivate argument?: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetArgument() {\n\t\treturn this.argument;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`ReturnStatement#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\treturn new ReturnValue(this.argument?.get(stack));\n\t\t// nothing should be written after this operation in a function body.\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.argument?.dependency(computed) || [];\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.argument?.dependencyPath(computed) || [];\n\t}\n\ttoString(): string {\n\t\treturn `return ${this.argument?.toString() || ''}`;\n\t}\n\ttoJson(): object {\n\t\treturn { argument: this.argument?.toJSON() };\n\t}\n}\n"]}
1
+ {"version":3,"file":"return.js","sourceRoot":"","sources":["../../../../src/expressions/api/computing/return.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D;;;GAGG;IAEU,eAAe;4BAD3B,YAAY,CAAC,iBAAiB,CAAC;;;;sBACK,sBAAsB;+BAA9B,SAAQ,WAAsB;;;;YAA3D,6KAuCC;;;YAvCY,uDAAe;;QAYlB,QAAQ;QAXjB,MAAM,CAAC,QAAQ,CAAC,IAAqB,EAAE,YAA8B;YACpE,OAAO,IAAI,eAAe,CACzB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EACpD,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,CACR,CAAC;QACH,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,IAAqB,EAAE,SAAwB;YAC3D,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;QACD,YACS,QAAyB,EACjC,KAAwB,EACxB,GAAoB;YACpB,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAHV,aAAQ,GAAR,QAAQ,CAAiB;QAIlC,CAAC;QACD,WAAW;YACV,OAAO,IAAI,CAAC,QAAQ,CAAC;QACtB,CAAC;QACD,GAAG,CAAC,KAAY,EAAE,KAAU;YAC3B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACjE,CAAC;QACD,GAAG,CAAC,KAAY;YACf,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YAClD,qEAAqE;QACtE,CAAC;QACD,UAAU,CAAC,QAAe;YACzB,OAAO,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClD,CAAC;QACD,cAAc,CAAC,QAAe;YAC7B,OAAO,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtD,CAAC;QACD,QAAQ;YACP,OAAO,UAAU,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;QACpD,CAAC;QACD,MAAM;YACL,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC;QAC9C,CAAC;;;;SAtCW,eAAe","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';\n\n/**\n * The expression whose value is to be returned. \n * If omitted, undefined is returned instead.\n */\n@Deserializer('ReturnStatement')\nexport class ReturnStatement extends AbstractExpressionNode {\n\tstatic fromJSON(node: ReturnStatement, deserializer: NodeDeserializer): ReturnStatement {\n\t\treturn new ReturnStatement(\n\t\t\tnode.argument ? deserializer(node.argument) : void 0,\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: ReturnStatement, visitNode: VisitNodeType): void {\n\t\tnode.argument && visitNode(node.argument);\n\t}\n\tconstructor(\n\t\tprivate argument?: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetArgument() {\n\t\treturn this.argument;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`ReturnStatement#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\treturn new ReturnValue(this.argument?.get(stack));\n\t\t// nothing should be written after this operation in a function body.\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.argument?.dependency(computed) || [];\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.argument?.dependencyPath(computed) || [];\n\t}\n\ttoString(): string {\n\t\treturn `return ${this.argument?.toString() || ''}`;\n\t}\n\ttoJson(): object {\n\t\treturn { argument: this.argument?.toJSON() };\n\t}\n}\n"]}
@@ -1,15 +1,19 @@
1
1
  import { __esDecorate, __runInitializers } from "tslib";
2
2
  import { AbstractExpressionNode } from '../abstract.js';
3
3
  import { Deserializer } from '../deserialize/deserialize.js';
4
- export let SpreadElement = (() => {
4
+ let SpreadElement = (() => {
5
5
  let _classDecorators = [Deserializer('SpreadElement')];
6
6
  let _classDescriptor;
7
7
  let _classExtraInitializers = [];
8
8
  let _classThis;
9
- var SpreadElement = class extends AbstractExpressionNode {
9
+ let _classSuper = AbstractExpressionNode;
10
+ var SpreadElement = class extends _classSuper {
11
+ static { _classThis = this; }
10
12
  static {
11
- __esDecorate(null, _classDescriptor = { value: this }, _classDecorators, { kind: "class", name: this.name }, null, _classExtraInitializers);
13
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
14
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
12
15
  SpreadElement = _classThis = _classDescriptor.value;
16
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
13
17
  __runInitializers(_classThis, _classExtraInitializers);
14
18
  }
15
19
  argument;
@@ -67,4 +71,5 @@ export let SpreadElement = (() => {
67
71
  };
68
72
  return SpreadElement = _classThis;
69
73
  })();
74
+ export { SpreadElement };
70
75
  //# sourceMappingURL=spread.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spread.js","sourceRoot":"","sources":["../../../../src/expressions/api/computing/spread.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,MAAM,KAAO,aAAa;4BADzB,YAAY,CAAC,eAAe,CAAC;;;;QACjB,aAAa,QAAC,SAAQ,sBAAsB;;YAAzD,4IAyDC;YAzDY,aAAa;YAAb,uDAAa;;QAYhB,QAAQ;QAXjB,MAAM,CAAC,QAAQ,CAAC,IAAmB,EAAE,YAA8B;YAClE,OAAO,IAAI,aAAa,CACvB,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC3B,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,CACR,CAAC;QACH,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,IAAmB,EAAE,SAAwB;YACzD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;QACD,YACS,QAAwB,EAChC,KAAwB,EACxB,GAAoB;YACpB,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAHV,aAAQ,GAAR,QAAQ,CAAgB;QAIjC,CAAC;QACD,WAAW;YACV,OAAO,IAAI,CAAC,QAAQ,CAAC;QACtB,CAAC;QACD,GAAG,CAAC,KAAY,EAAE,KAAU;YAC3B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACtE,CAAC;QACD,GAAG,CAAC,KAAY;YACf,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACzB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aACnC;iBAAM,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE;gBAC/C,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aACtC;QACF,CAAC;QACO,eAAe,CAAC,KAAY,EAAE,KAAiB;YACtD,IAAI,MAAM,GAAW,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;QAChE,CAAC;QACO,kBAAkB,CAAC,KAAY,EAAE,QAAuB;YAC/D,IAAI,MAAM,GAAW,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzC,OAAO,IAAI,EAAE;gBACZ,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACvC,IAAI,cAAc,CAAC,IAAI,EAAE;oBACxB,MAAM;iBACN;gBACD,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;aACtD;QACF,CAAC;QACD,UAAU,CAAC,QAAe;YACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;QACD,cAAc,CAAC,QAAe;YAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;QACD,QAAQ;YACP,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;QACzC,CAAC;QACD,MAAM;YACL,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QAC7C,CAAC;;WAxDW,aAAa","sourcesContent":["import type {\n\tExpressionEventPath, ExpressionNode, NodeDeserializer,\n\tSourceLocation, VisitNodeType\n} from '../expression.js';\nimport type { Stack } from '../../scope/stack.js';\nimport { AbstractExpressionNode } from '../abstract.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\n\n@Deserializer('SpreadElement')\nexport class SpreadElement extends AbstractExpressionNode {\n\tstatic fromJSON(node: SpreadElement, deserializer: NodeDeserializer): SpreadElement {\n\t\treturn new SpreadElement(\n\t\t\tdeserializer(node.argument),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: SpreadElement, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.argument);\n\t}\n\tconstructor(\n\t\tprivate argument: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetArgument() {\n\t\treturn this.argument;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error('SpreadElement#set() Method has no implementation.');\n\t}\n\tget(stack: Stack): void {\n\t\tconst value = this.argument.get(stack);\n\t\tif (Array.isArray(value)) {\n\t\t\tthis.spreadFromArray(stack, value);\n\t\t} else if (Reflect.has(value, Symbol.iterator)) {\n\t\t\tthis.spreadFromIterator(stack, value);\n\t\t}\n\t}\n\tprivate spreadFromArray(stack: Stack, array: Array<any>): void {\n\t\tlet length: number = stack.get('length');\n\t\tarray.forEach(value => stack.declareVariable(length++, value));\n\t}\n\tprivate spreadFromIterator(stack: Stack, iterator: Iterator<any>): void {\n\t\tlet length: number = stack.get('length');\n\t\twhile (true) {\n\t\t\tconst iteratorResult = iterator.next();\n\t\t\tif (iteratorResult.done) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tstack.declareVariable(length++, iteratorResult.value);\n\t\t}\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.argument.dependency(computed);\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.argument.dependencyPath(computed);\n\t}\n\ttoString(): string {\n\t\treturn `...${this.argument.toString()}`;\n\t}\n\ttoJson(): object {\n\t\treturn { argument: this.argument.toJSON() };\n\t}\n}\n"]}
1
+ {"version":3,"file":"spread.js","sourceRoot":"","sources":["../../../../src/expressions/api/computing/spread.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;IAGhD,aAAa;4BADzB,YAAY,CAAC,eAAe,CAAC;;;;sBACK,sBAAsB;6BAA9B,SAAQ,WAAsB;;;;YAAzD,6KAyDC;;;YAzDY,uDAAa;;QAYhB,QAAQ;QAXjB,MAAM,CAAC,QAAQ,CAAC,IAAmB,EAAE,YAA8B;YAClE,OAAO,IAAI,aAAa,CACvB,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC3B,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,CACR,CAAC;QACH,CAAC;QACD,MAAM,CAAC,KAAK,CAAC,IAAmB,EAAE,SAAwB;YACzD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;QACD,YACS,QAAwB,EAChC,KAAwB,EACxB,GAAoB;YACpB,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAHV,aAAQ,GAAR,QAAQ,CAAgB;QAIjC,CAAC;QACD,WAAW;YACV,OAAO,IAAI,CAAC,QAAQ,CAAC;QACtB,CAAC;QACD,GAAG,CAAC,KAAY,EAAE,KAAU;YAC3B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACtE,CAAC;QACD,GAAG,CAAC,KAAY;YACf,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACpC,CAAC;iBAAM,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACvC,CAAC;QACF,CAAC;QACO,eAAe,CAAC,KAAY,EAAE,KAAiB;YACtD,IAAI,MAAM,GAAW,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;QAChE,CAAC;QACO,kBAAkB,CAAC,KAAY,EAAE,QAAuB;YAC/D,IAAI,MAAM,GAAW,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzC,OAAO,IAAI,EAAE,CAAC;gBACb,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACvC,IAAI,cAAc,CAAC,IAAI,EAAE,CAAC;oBACzB,MAAM;gBACP,CAAC;gBACD,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;YACvD,CAAC;QACF,CAAC;QACD,UAAU,CAAC,QAAe;YACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;QACD,cAAc,CAAC,QAAe;YAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;QACD,QAAQ;YACP,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;QACzC,CAAC;QACD,MAAM;YACL,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QAC7C,CAAC;;;;SAxDW,aAAa","sourcesContent":["import type {\n\tExpressionEventPath, ExpressionNode, NodeDeserializer,\n\tSourceLocation, VisitNodeType\n} from '../expression.js';\nimport type { Stack } from '../../scope/stack.js';\nimport { AbstractExpressionNode } from '../abstract.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\n\n@Deserializer('SpreadElement')\nexport class SpreadElement extends AbstractExpressionNode {\n\tstatic fromJSON(node: SpreadElement, deserializer: NodeDeserializer): SpreadElement {\n\t\treturn new SpreadElement(\n\t\t\tdeserializer(node.argument),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: SpreadElement, visitNode: VisitNodeType): void {\n\t\tvisitNode(node.argument);\n\t}\n\tconstructor(\n\t\tprivate argument: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetArgument() {\n\t\treturn this.argument;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error('SpreadElement#set() Method has no implementation.');\n\t}\n\tget(stack: Stack): void {\n\t\tconst value = this.argument.get(stack);\n\t\tif (Array.isArray(value)) {\n\t\t\tthis.spreadFromArray(stack, value);\n\t\t} else if (Reflect.has(value, Symbol.iterator)) {\n\t\t\tthis.spreadFromIterator(stack, value);\n\t\t}\n\t}\n\tprivate spreadFromArray(stack: Stack, array: Array<any>): void {\n\t\tlet length: number = stack.get('length');\n\t\tarray.forEach(value => stack.declareVariable(length++, value));\n\t}\n\tprivate spreadFromIterator(stack: Stack, iterator: Iterator<any>): void {\n\t\tlet length: number = stack.get('length');\n\t\twhile (true) {\n\t\t\tconst iteratorResult = iterator.next();\n\t\t\tif (iteratorResult.done) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tstack.declareVariable(length++, iteratorResult.value);\n\t\t}\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.argument.dependency(computed);\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.argument.dependencyPath(computed);\n\t}\n\ttoString(): string {\n\t\treturn `...${this.argument.toString()}`;\n\t}\n\ttoJson(): object {\n\t\treturn { argument: this.argument.toJSON() };\n\t}\n}\n"]}