@ibyar/expressions 0.8.6 → 1.1.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 (251) hide show
  1. package/README.md +48 -1
  2. package/api/abstract.d.ts +1 -0
  3. package/api/abstract.d.ts.map +1 -0
  4. package/api/abstract.js +12 -0
  5. package/api/abstract.js.map +1 -1
  6. package/api/class/class.d.ts +1 -0
  7. package/api/class/class.d.ts.map +1 -0
  8. package/api/class/class.js +603 -472
  9. package/api/class/class.js.map +1 -1
  10. package/api/class/decorator.d.ts +1 -0
  11. package/api/class/decorator.d.ts.map +1 -0
  12. package/api/class/decorator.js +53 -41
  13. package/api/class/decorator.js.map +1 -1
  14. package/api/computing/call.d.ts +1 -0
  15. package/api/computing/call.d.ts.map +1 -0
  16. package/api/computing/call.js +83 -69
  17. package/api/computing/call.js.map +1 -1
  18. package/api/computing/debugger.d.ts +1 -0
  19. package/api/computing/debugger.d.ts.map +1 -0
  20. package/api/computing/debugger.js +40 -28
  21. package/api/computing/debugger.js.map +1 -1
  22. package/api/computing/new.d.ts +1 -0
  23. package/api/computing/new.d.ts.map +1 -0
  24. package/api/computing/new.js +81 -68
  25. package/api/computing/new.js.map +1 -1
  26. package/api/computing/rest.d.ts +1 -0
  27. package/api/computing/rest.d.ts.map +1 -0
  28. package/api/computing/rest.js +54 -42
  29. package/api/computing/rest.js.map +1 -1
  30. package/api/computing/return.d.ts +1 -0
  31. package/api/computing/return.d.ts.map +1 -0
  32. package/api/computing/return.js +52 -40
  33. package/api/computing/return.js.map +1 -1
  34. package/api/computing/spread.d.ts +1 -0
  35. package/api/computing/spread.d.ts.map +1 -0
  36. package/api/computing/spread.js +70 -58
  37. package/api/computing/spread.js.map +1 -1
  38. package/api/computing/throw.d.ts +1 -0
  39. package/api/computing/throw.d.ts.map +1 -0
  40. package/api/computing/throw.js +216 -175
  41. package/api/computing/throw.js.map +1 -1
  42. package/api/computing/yield.d.ts +1 -0
  43. package/api/computing/yield.d.ts.map +1 -0
  44. package/api/computing/yield.js +60 -47
  45. package/api/computing/yield.js.map +1 -1
  46. package/api/definition/array.d.ts +1 -0
  47. package/api/definition/array.d.ts.map +1 -0
  48. package/api/definition/array.js +147 -122
  49. package/api/definition/array.js.map +1 -1
  50. package/api/definition/bind.d.ts +1 -0
  51. package/api/definition/bind.d.ts.map +1 -0
  52. package/api/definition/bind.js +85 -70
  53. package/api/definition/bind.js.map +1 -1
  54. package/api/definition/comment.d.ts +1 -0
  55. package/api/definition/comment.d.ts.map +1 -0
  56. package/api/definition/comment.js +44 -32
  57. package/api/definition/comment.js.map +1 -1
  58. package/api/definition/function.d.ts +1 -0
  59. package/api/definition/function.d.ts.map +1 -0
  60. package/api/definition/function.js +500 -443
  61. package/api/definition/function.js.map +1 -1
  62. package/api/definition/member.d.ts +1 -0
  63. package/api/definition/member.d.ts.map +1 -0
  64. package/api/definition/member.js +104 -89
  65. package/api/definition/member.js.map +1 -1
  66. package/api/definition/object.d.ts +1 -0
  67. package/api/definition/object.d.ts.map +1 -0
  68. package/api/definition/object.js +243 -200
  69. package/api/definition/object.js.map +1 -1
  70. package/api/definition/statement.d.ts +1 -0
  71. package/api/definition/statement.d.ts.map +1 -0
  72. package/api/definition/statement.js +56 -44
  73. package/api/definition/statement.js.map +1 -1
  74. package/api/definition/values.d.ts +1 -0
  75. package/api/definition/values.d.ts.map +1 -0
  76. package/api/definition/values.js +228 -160
  77. package/api/definition/values.js.map +1 -1
  78. package/api/deserialize/deserialize.d.ts +2 -1
  79. package/api/deserialize/deserialize.d.ts.map +1 -0
  80. package/api/deserialize/deserialize.js +5 -7
  81. package/api/deserialize/deserialize.js.map +1 -1
  82. package/api/deserialize/type-store.d.ts +1 -0
  83. package/api/deserialize/type-store.d.ts.map +1 -0
  84. package/api/expression.d.ts +1 -0
  85. package/api/expression.d.ts.map +1 -0
  86. package/api/index.d.ts +1 -0
  87. package/api/index.d.ts.map +1 -0
  88. package/api/module/common.d.ts +1 -0
  89. package/api/module/common.d.ts.map +1 -0
  90. package/api/module/common.js +63 -50
  91. package/api/module/common.js.map +1 -1
  92. package/api/module/export.d.ts +1 -0
  93. package/api/module/export.d.ts.map +1 -0
  94. package/api/module/export.js +343 -290
  95. package/api/module/export.js.map +1 -1
  96. package/api/module/import.d.ts +1 -0
  97. package/api/module/import.d.ts.map +1 -0
  98. package/api/module/import.js +318 -253
  99. package/api/module/import.js.map +1 -1
  100. package/api/operators/assignment.d.ts +1 -0
  101. package/api/operators/assignment.d.ts.map +1 -0
  102. package/api/operators/assignment.js +88 -75
  103. package/api/operators/assignment.js.map +1 -1
  104. package/api/operators/await.d.ts +1 -0
  105. package/api/operators/await.d.ts.map +1 -0
  106. package/api/operators/await.js +54 -42
  107. package/api/operators/await.js.map +1 -1
  108. package/api/operators/binary.d.ts +1 -0
  109. package/api/operators/binary.d.ts.map +1 -0
  110. package/api/operators/binary.js +78 -64
  111. package/api/operators/binary.js.map +1 -1
  112. package/api/operators/chaining.d.ts +1 -0
  113. package/api/operators/chaining.d.ts.map +1 -0
  114. package/api/operators/chaining.js +56 -44
  115. package/api/operators/chaining.js.map +1 -1
  116. package/api/operators/comma.d.ts +1 -0
  117. package/api/operators/comma.d.ts.map +1 -0
  118. package/api/operators/comma.js +53 -41
  119. package/api/operators/comma.js.map +1 -1
  120. package/api/operators/grouping.d.ts +1 -0
  121. package/api/operators/grouping.d.ts.map +1 -0
  122. package/api/operators/grouping.js +51 -39
  123. package/api/operators/grouping.js.map +1 -1
  124. package/api/operators/logical.d.ts +1 -0
  125. package/api/operators/logical.d.ts.map +1 -0
  126. package/api/operators/logical.js +51 -37
  127. package/api/operators/logical.js.map +1 -1
  128. package/api/operators/pipeline.d.ts +1 -0
  129. package/api/operators/pipeline.d.ts.map +1 -0
  130. package/api/operators/pipeline.js +95 -81
  131. package/api/operators/pipeline.js.map +1 -1
  132. package/api/operators/ternary.d.ts +1 -0
  133. package/api/operators/ternary.d.ts.map +1 -0
  134. package/api/operators/ternary.js +69 -55
  135. package/api/operators/ternary.js.map +1 -1
  136. package/api/operators/types.d.ts +1 -0
  137. package/api/operators/types.d.ts.map +1 -0
  138. package/api/operators/unary.d.ts +1 -0
  139. package/api/operators/unary.d.ts.map +1 -0
  140. package/api/operators/unary.js +97 -82
  141. package/api/operators/unary.js.map +1 -1
  142. package/api/operators/update.d.ts +1 -0
  143. package/api/operators/update.d.ts.map +1 -0
  144. package/api/operators/update.js +78 -62
  145. package/api/operators/update.js.map +1 -1
  146. package/api/program.d.ts +1 -0
  147. package/api/program.d.ts.map +1 -0
  148. package/api/program.js +53 -40
  149. package/api/program.js.map +1 -1
  150. package/api/statement/control/block.d.ts +1 -0
  151. package/api/statement/control/block.d.ts.map +1 -0
  152. package/api/statement/control/block.js +65 -53
  153. package/api/statement/control/block.js.map +1 -1
  154. package/api/statement/control/empty.d.ts +1 -1
  155. package/api/statement/control/empty.d.ts.map +1 -0
  156. package/api/statement/control/empty.js +43 -33
  157. package/api/statement/control/empty.js.map +1 -1
  158. package/api/statement/control/if.d.ts +1 -0
  159. package/api/statement/control/if.d.ts.map +1 -0
  160. package/api/statement/control/if.js +79 -65
  161. package/api/statement/control/if.js.map +1 -1
  162. package/api/statement/control/switch.d.ts +1 -0
  163. package/api/statement/control/switch.d.ts.map +1 -0
  164. package/api/statement/control/switch.js +180 -141
  165. package/api/statement/control/switch.js.map +1 -1
  166. package/api/statement/control/terminate.d.ts +1 -2
  167. package/api/statement/control/terminate.d.ts.map +1 -0
  168. package/api/statement/control/terminate.js +117 -78
  169. package/api/statement/control/terminate.js.map +1 -1
  170. package/api/statement/control/with.d.ts +1 -0
  171. package/api/statement/control/with.d.ts.map +1 -0
  172. package/api/statement/control/with.js +72 -59
  173. package/api/statement/control/with.js.map +1 -1
  174. package/api/statement/declarations/declares.d.ts +1 -0
  175. package/api/statement/declarations/declares.d.ts.map +1 -0
  176. package/api/statement/declarations/declares.js +148 -121
  177. package/api/statement/declarations/declares.js.map +1 -1
  178. package/api/statement/iterations/for.d.ts +1 -0
  179. package/api/statement/iterations/for.d.ts.map +1 -0
  180. package/api/statement/iterations/for.js +337 -277
  181. package/api/statement/iterations/for.js.map +1 -1
  182. package/api/statement/iterations/while.d.ts +1 -0
  183. package/api/statement/iterations/while.d.ts.map +1 -0
  184. package/api/statement/iterations/while.js +152 -125
  185. package/api/statement/iterations/while.js.map +1 -1
  186. package/api/utils.d.ts +1 -0
  187. package/api/utils.d.ts.map +1 -0
  188. package/index.d.ts +1 -0
  189. package/index.d.ts.map +1 -0
  190. package/package.json +5 -5
  191. package/scope/builder.d.ts +27 -0
  192. package/scope/builder.d.ts.map +1 -0
  193. package/scope/builder.js +73 -0
  194. package/scope/builder.js.map +1 -0
  195. package/scope/event.d.ts +1 -0
  196. package/scope/event.d.ts.map +1 -0
  197. package/scope/finalizer.d.ts +1 -0
  198. package/scope/finalizer.d.ts.map +1 -0
  199. package/scope/index.d.ts +1 -0
  200. package/scope/index.d.ts.map +1 -0
  201. package/scope/pool.d.ts +1 -0
  202. package/scope/pool.d.ts.map +1 -0
  203. package/scope/proxy.d.ts +1 -0
  204. package/scope/proxy.d.ts.map +1 -0
  205. package/scope/proxy.js +1 -0
  206. package/scope/proxy.js.map +1 -1
  207. package/scope/scope.d.ts +1 -0
  208. package/scope/scope.d.ts.map +1 -0
  209. package/scope/scope.js +17 -11
  210. package/scope/scope.js.map +1 -1
  211. package/scope/stack.d.ts +1 -0
  212. package/scope/stack.d.ts.map +1 -0
  213. package/scope/stack.js +22 -14
  214. package/scope/stack.js.map +1 -1
  215. package/v8/enums.d.ts +1 -0
  216. package/v8/enums.d.ts.map +1 -0
  217. package/v8/enums.js +11 -11
  218. package/v8/enums.js.map +1 -1
  219. package/v8/factory.d.ts +1 -0
  220. package/v8/factory.d.ts.map +1 -0
  221. package/v8/factory.js +3 -1
  222. package/v8/factory.js.map +1 -1
  223. package/v8/index.d.ts +1 -0
  224. package/v8/index.d.ts.map +1 -0
  225. package/v8/inline.d.ts +1 -0
  226. package/v8/inline.d.ts.map +1 -0
  227. package/v8/inline.js +9 -5
  228. package/v8/inline.js.map +1 -1
  229. package/v8/language.d.ts +1 -0
  230. package/v8/language.d.ts.map +1 -0
  231. package/v8/node.d.ts +1 -0
  232. package/v8/node.d.ts.map +1 -0
  233. package/v8/parser.d.ts +1 -0
  234. package/v8/parser.d.ts.map +1 -0
  235. package/v8/parser.js +5 -5
  236. package/v8/parser.js.map +1 -1
  237. package/v8/stream.d.ts +1 -0
  238. package/v8/stream.d.ts.map +1 -0
  239. package/v8/stream.js +17 -7
  240. package/v8/stream.js.map +1 -1
  241. package/v8/token.d.ts +1 -0
  242. package/v8/token.d.ts.map +1 -0
  243. package/v8/token.js +363 -358
  244. package/v8/token.js.map +1 -1
  245. package/visit/index.d.ts +1 -0
  246. package/visit/index.d.ts.map +1 -0
  247. package/visit/visitor.d.ts +1 -0
  248. package/visit/visitor.d.ts.map +1 -0
  249. package/v8/nodes.d.ts +0 -0
  250. package/v8/nodes.js +0 -2
  251. package/v8/nodes.js.map +0 -1
@@ -15,3 +15,4 @@ export declare class YieldExpression extends AbstractExpressionNode {
15
15
  toString(): string;
16
16
  toJson(): object;
17
17
  }
18
+ //# sourceMappingURL=yield.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yield.d.ts","sourceRoot":"","sources":["../../../../src/expressions/api/computing/yield.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,gBAAgB,EAAE,cAAc,EAAE,mBAAmB,EACrD,aAAa,EAAE,cAAc,EAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGxF,qBACa,eAAgB,SAAQ,sBAAsB;IAazD,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,QAAQ,CAAC;IAblB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,GAAG,eAAe;IAQvF,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI;gBAI1D,QAAQ,EAAE,OAAO,EACjB,QAAQ,CAAC,4BAAgB,EACjC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EACxB,GAAG,CAAC,EAAE,cAAc;IAGrB,WAAW;IAGX,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG;IAG5B,GAAG,CAAC,KAAK,EAAE,KAAK;IAOhB,UAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,cAAc,EAAE;IAG7C,cAAc,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,mBAAmB,EAAE;IAGtD,QAAQ,IAAI,MAAM;IAGlB,MAAM,IAAI,MAAM;CAMhB"}
@@ -1,51 +1,64 @@
1
- var YieldExpression_1;
2
- import { __decorate, __metadata } from "tslib";
1
+ import { __esDecorate, __runInitializers } from "tslib";
3
2
  import { AbstractExpressionNode, YieldDelegateValue, YieldValue } from '../abstract.js';
4
3
  import { Deserializer } from '../deserialize/deserialize.js';
5
- let YieldExpression = YieldExpression_1 = class YieldExpression extends AbstractExpressionNode {
6
- static fromJSON(node, deserializer) {
7
- return new YieldExpression_1(node.delegate, node.argument ? deserializer(node.argument) : void 0, node.range, node.loc);
8
- }
9
- static visit(node, visitNode) {
10
- node.argument && visitNode(node.argument);
11
- }
12
- constructor(delegate, argument, range, loc) {
13
- super(range, loc);
14
- this.delegate = delegate;
15
- this.argument = argument;
16
- }
17
- getArgument() {
18
- return this.argument;
19
- }
20
- set(stack, value) {
21
- throw new Error(`YieldExpression#set() has no implementation.`);
22
- }
23
- get(stack) {
24
- const value = this.argument?.get(stack);
25
- if (this.delegate) {
26
- return new YieldDelegateValue(value);
27
- }
28
- return new YieldValue(value);
29
- }
30
- dependency(computed) {
31
- return this.argument?.dependency(computed) || [];
32
- }
33
- dependencyPath(computed) {
34
- return this.argument?.dependencyPath(computed) || [];
35
- }
36
- toString() {
37
- return `yield${this.delegate ? '*' : ''} ${this.argument?.toString() || ''}`;
38
- }
39
- toJson() {
40
- return {
41
- delegate: this.delegate,
42
- argument: this.argument?.toJSON()
43
- };
44
- }
45
- };
46
- YieldExpression = YieldExpression_1 = __decorate([
47
- Deserializer('YieldExpression'),
48
- __metadata("design:paramtypes", [Boolean, Object, Array, Object])
49
- ], YieldExpression);
4
+ let YieldExpression = (() => {
5
+ let _classDecorators = [Deserializer('YieldExpression')];
6
+ let _classDescriptor;
7
+ let _classExtraInitializers = [];
8
+ let _classThis;
9
+ let _classSuper = AbstractExpressionNode;
10
+ var YieldExpression = class extends _classSuper {
11
+ static { _classThis = this; }
12
+ static {
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);
15
+ YieldExpression = _classThis = _classDescriptor.value;
16
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
17
+ __runInitializers(_classThis, _classExtraInitializers);
18
+ }
19
+ delegate;
20
+ argument;
21
+ static fromJSON(node, deserializer) {
22
+ return new YieldExpression(node.delegate, node.argument ? deserializer(node.argument) : void 0, node.range, node.loc);
23
+ }
24
+ static visit(node, visitNode) {
25
+ node.argument && visitNode(node.argument);
26
+ }
27
+ constructor(delegate, argument, range, loc) {
28
+ super(range, loc);
29
+ this.delegate = delegate;
30
+ this.argument = argument;
31
+ }
32
+ getArgument() {
33
+ return this.argument;
34
+ }
35
+ set(stack, value) {
36
+ throw new Error(`YieldExpression#set() has no implementation.`);
37
+ }
38
+ get(stack) {
39
+ const value = this.argument?.get(stack);
40
+ if (this.delegate) {
41
+ return new YieldDelegateValue(value);
42
+ }
43
+ return new YieldValue(value);
44
+ }
45
+ dependency(computed) {
46
+ return this.argument?.dependency(computed) || [];
47
+ }
48
+ dependencyPath(computed) {
49
+ return this.argument?.dependencyPath(computed) || [];
50
+ }
51
+ toString() {
52
+ return `yield${this.delegate ? '*' : ''} ${this.argument?.toString() || ''}`;
53
+ }
54
+ toJson() {
55
+ return {
56
+ delegate: this.delegate,
57
+ argument: this.argument?.toJSON()
58
+ };
59
+ }
60
+ };
61
+ return YieldExpression = _classThis;
62
+ })();
50
63
  export { YieldExpression };
51
64
  //# sourceMappingURL=yield.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"yield.js","sourceRoot":"","sources":["../../../../src/expressions/api/computing/yield.ts"],"names":[],"mappings":";;AAKA,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAGtD,IAAM,eAAe,uBAArB,MAAM,eAAgB,SAAQ,sBAAsB;IAC1D,MAAM,CAAC,QAAQ,CAAC,IAAqB,EAAE,YAA8B;QACpE,OAAO,IAAI,iBAAe,CACzB,IAAI,CAAC,QAAQ,EACb,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;IACH,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,IAAqB,EAAE,SAAwB;QAC3D,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IACD,YACS,QAAiB,EACjB,QAAyB,EACjC,KAAwB,EACxB,GAAoB;QACpB,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAJV,aAAQ,GAAR,QAAQ,CAAS;QACjB,aAAQ,GAAR,QAAQ,CAAiB;IAIlC,CAAC;IACD,WAAW;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IACD,GAAG,CAAC,KAAY,EAAE,KAAU;QAC3B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACjE,CAAC;IACD,GAAG,CAAC,KAAY;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;SACrC;QACD,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,UAAU,CAAC,QAAe;QACzB,OAAO,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAClD,CAAC;IACD,cAAc,CAAC,QAAe;QAC7B,OAAO,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACtD,CAAC;IACD,QAAQ;QACP,OAAO,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;IAC9E,CAAC;IACD,MAAM;QACL,OAAO;YACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE;SACjC,CAAC;IACH,CAAC;CACD,CAAA;AA/CY,eAAe;IAD3B,YAAY,CAAC,iBAAiB,CAAC;;GACnB,eAAe,CA+C3B;SA/CY,eAAe","sourcesContent":["import type {\n\tNodeDeserializer, ExpressionNode, ExpressionEventPath,\n\tVisitNodeType, SourceLocation\n} from '../expression.js';\nimport type { Stack } from '../../scope/stack.js';\nimport { AbstractExpressionNode, YieldDelegateValue, YieldValue } from '../abstract.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\n\n@Deserializer('YieldExpression')\nexport class YieldExpression extends AbstractExpressionNode {\n\tstatic fromJSON(node: YieldExpression, deserializer: NodeDeserializer): YieldExpression {\n\t\treturn new YieldExpression(\n\t\t\tnode.delegate,\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: YieldExpression, visitNode: VisitNodeType): void {\n\t\tnode.argument && visitNode(node.argument);\n\t}\n\tconstructor(\n\t\tprivate delegate: boolean,\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(`YieldExpression#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tconst value = this.argument?.get(stack);\n\t\tif (this.delegate) {\n\t\t\treturn new YieldDelegateValue(value);\n\t\t}\n\t\treturn new YieldValue(value);\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 `yield${this.delegate ? '*' : ''} ${this.argument?.toString() || ''}`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tdelegate: this.delegate,\n\t\t\targument: this.argument?.toJSON()\n\t\t};\n\t}\n}\n"]}
1
+ {"version":3,"file":"yield.js","sourceRoot":"","sources":["../../../../src/expressions/api/computing/yield.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;IAGhD,eAAe;4BAD3B,YAAY,CAAC,iBAAiB,CAAC;;;;sBACK,sBAAsB;+BAA9B,SAAQ,WAAsB;;;;YAA3D,6KA+CC;;;YA/CY,uDAAe;;QAalB,QAAQ;QACR,QAAQ;QAbjB,MAAM,CAAC,QAAQ,CAAC,IAAqB,EAAE,YAA8B;YACpE,OAAO,IAAI,eAAe,CACzB,IAAI,CAAC,QAAQ,EACb,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,QAAiB,EACjB,QAAyB,EACjC,KAAwB,EACxB,GAAoB;YACpB,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAJV,aAAQ,GAAR,QAAQ,CAAS;YACjB,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,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAClB,OAAO,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;aACrC;YACD,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;QAC9B,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,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;QAC9E,CAAC;QACD,MAAM;YACL,OAAO;gBACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE;aACjC,CAAC;QACH,CAAC;;;;SA9CW,eAAe","sourcesContent":["import type {\n\tNodeDeserializer, ExpressionNode, ExpressionEventPath,\n\tVisitNodeType, SourceLocation\n} from '../expression.js';\nimport type { Stack } from '../../scope/stack.js';\nimport { AbstractExpressionNode, YieldDelegateValue, YieldValue } from '../abstract.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\n\n@Deserializer('YieldExpression')\nexport class YieldExpression extends AbstractExpressionNode {\n\tstatic fromJSON(node: YieldExpression, deserializer: NodeDeserializer): YieldExpression {\n\t\treturn new YieldExpression(\n\t\t\tnode.delegate,\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: YieldExpression, visitNode: VisitNodeType): void {\n\t\tnode.argument && visitNode(node.argument);\n\t}\n\tconstructor(\n\t\tprivate delegate: boolean,\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(`YieldExpression#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tconst value = this.argument?.get(stack);\n\t\tif (this.delegate) {\n\t\t\treturn new YieldDelegateValue(value);\n\t\t}\n\t\treturn new YieldValue(value);\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 `yield${this.delegate ? '*' : ''} ${this.argument?.toString() || ''}`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tdelegate: this.delegate,\n\t\t\targument: this.argument?.toJSON()\n\t\t};\n\t}\n}\n"]}
@@ -31,3 +31,4 @@ export declare class ArrayPattern extends AbstractExpressionNode implements Decl
31
31
  toString(): string;
32
32
  toJson(): object;
33
33
  }
34
+ //# sourceMappingURL=array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../../../src/expressions/api/definition/array.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,gBAAgB,EAAE,cAAc,EAAE,qBAAqB,EACvD,mBAAmB,EAAE,aAAa,EAAE,cAAc,EAClD,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAGxD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,qBACa,eAAgB,SAAQ,sBAAsB;IAYzD,OAAO,CAAC,QAAQ;IAXjB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,GAAG,eAAe;IAOvF,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI;gBAI1D,QAAQ,EAAE,CAAC,cAAc,GAAG,aAAa,GAAG,IAAI,CAAC,EAAE,EAC3D,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EACxB,GAAG,CAAC,EAAE,cAAc;IAGrB,WAAW;IAGX,GAAG,CAAC,KAAK,EAAE,KAAK;IAGhB,GAAG,CAAC,KAAK,EAAE,KAAK;IAGhB,UAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,cAAc,EAAE;IAG7C,cAAc,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,mBAAmB,EAAE;IAGtD,QAAQ;IAGR,MAAM,IAAI,MAAM;CAKhB;AAGD,qBACa,YAAa,SAAQ,sBAAuB,YAAW,qBAAqB;IAYvF,OAAO,CAAC,QAAQ;IAXjB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,GAAG,YAAY;IAOjF,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI;gBAIvD,QAAQ,EAAE,CAAC,qBAAqB,GAAG,IAAI,CAAC,EAAE,EAClD,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EACxB,GAAG,CAAC,EAAE,cAAc;IAGrB,WAAW;IAGX,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG;IAG7B,GAAG,CAAC,aAAa,EAAE,KAAK;IAGxB,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG;IAOzC,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE;IAcpD,2BAA2B,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC;IA0BjE,UAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,cAAc,EAAE;IAG7C,cAAc,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,mBAAmB,EAAE;IAGtD,QAAQ;IAGR,MAAM,IAAI,MAAM;CAKhB"}
@@ -1,134 +1,159 @@
1
- var ArrayExpression_1, ArrayPattern_1;
2
- import { __decorate, __metadata } from "tslib";
1
+ import { __esDecorate, __runInitializers } from "tslib";
3
2
  import { AbstractExpressionNode } from '../abstract.js';
4
3
  import { Deserializer } from '../deserialize/deserialize.js';
5
4
  import { RestElement } from '../computing/rest.js';
6
- let ArrayExpression = ArrayExpression_1 = class ArrayExpression extends AbstractExpressionNode {
7
- static fromJSON(node, deserializer) {
8
- return new ArrayExpression_1(node.elements.map(element => element ? deserializer(element) : null), node.range, node.loc);
9
- }
10
- static visit(node, visitNode) {
11
- node.elements.forEach(element => element && visitNode(element));
12
- }
13
- constructor(elements, range, loc) {
14
- super(range, loc);
15
- this.elements = elements;
16
- }
17
- getElements() {
18
- return this.elements;
19
- }
20
- set(stack) {
21
- throw new Error("ArrayExpression#set() has no implementation.");
22
- }
23
- get(stack) {
24
- return this.elements.map(item => item?.get(stack));
25
- }
26
- dependency(computed) {
27
- return this.elements.filter(item => item).flatMap(item => item.dependency(computed));
28
- }
29
- dependencyPath(computed) {
30
- return this.elements.filter(item => item).flatMap(item => item.dependencyPath(computed));
31
- }
32
- toString() {
33
- return `[ ${this.elements.map(item => item?.toString()).toString()} ]`;
34
- }
35
- toJson() {
36
- return {
37
- elements: this.elements.map(item => item?.toJSON())
38
- };
39
- }
40
- };
41
- ArrayExpression = ArrayExpression_1 = __decorate([
42
- Deserializer('ArrayExpression'),
43
- __metadata("design:paramtypes", [Array, Array, Object])
44
- ], ArrayExpression);
5
+ let ArrayExpression = (() => {
6
+ let _classDecorators = [Deserializer('ArrayExpression')];
7
+ let _classDescriptor;
8
+ let _classExtraInitializers = [];
9
+ let _classThis;
10
+ let _classSuper = AbstractExpressionNode;
11
+ var ArrayExpression = class extends _classSuper {
12
+ static { _classThis = this; }
13
+ static {
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);
16
+ ArrayExpression = _classThis = _classDescriptor.value;
17
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
18
+ __runInitializers(_classThis, _classExtraInitializers);
19
+ }
20
+ elements;
21
+ static fromJSON(node, deserializer) {
22
+ return new ArrayExpression(node.elements.map(element => element ? deserializer(element) : null), node.range, node.loc);
23
+ }
24
+ static visit(node, visitNode) {
25
+ node.elements.forEach(element => element && visitNode(element));
26
+ }
27
+ constructor(elements, range, loc) {
28
+ super(range, loc);
29
+ this.elements = elements;
30
+ }
31
+ getElements() {
32
+ return this.elements;
33
+ }
34
+ set(stack) {
35
+ throw new Error("ArrayExpression#set() has no implementation.");
36
+ }
37
+ get(stack) {
38
+ return this.elements.map(item => item?.get(stack));
39
+ }
40
+ dependency(computed) {
41
+ return this.elements.filter(item => item).flatMap(item => item.dependency(computed));
42
+ }
43
+ dependencyPath(computed) {
44
+ return this.elements.filter(item => item).flatMap(item => item.dependencyPath(computed));
45
+ }
46
+ toString() {
47
+ return `[ ${this.elements.map(item => item?.toString()).toString()} ]`;
48
+ }
49
+ toJson() {
50
+ return {
51
+ elements: this.elements.map(item => item?.toJSON())
52
+ };
53
+ }
54
+ };
55
+ return ArrayExpression = _classThis;
56
+ })();
45
57
  export { ArrayExpression };
46
- let ArrayPattern = ArrayPattern_1 = class ArrayPattern extends AbstractExpressionNode {
47
- static fromJSON(node, deserializer) {
48
- return new ArrayPattern_1(node.elements.map(expression => expression ? deserializer(expression) : null), node.range, node.loc);
49
- }
50
- static visit(node, visitNode) {
51
- node.elements.forEach(expression => expression && visitNode(expression));
52
- }
53
- constructor(elements, range, loc) {
54
- super(range, loc);
55
- this.elements = elements;
56
- }
57
- getElements() {
58
- return this.elements;
59
- }
60
- set(stack, values) {
61
- throw new Error('ArrayPattern#set() has no implementation.');
62
- }
63
- get(scopeProvider) {
64
- throw new Error('ArrayPattern#get() has no implementation.');
65
- }
66
- declareVariable(stack, values) {
67
- if (Array.isArray(values)) {
68
- this.declareVariableFromArray(stack, values);
69
- }
70
- else if (Reflect.has(values, Symbol.iterator)) {
71
- this.declareVariableFromIterator(stack, values);
72
- }
73
- }
74
- declareVariableFromArray(stack, values) {
75
- for (let index = 0; index < this.elements.length; index++) {
76
- const elem = this.elements[index];
77
- if (elem == null) {
78
- continue;
79
- }
80
- if (elem instanceof RestElement) {
81
- const rest = values.slice(index);
82
- elem.declareVariable(stack, rest);
83
- break;
84
- }
85
- elem.declareVariable(stack, values[index]);
86
- }
87
- }
88
- declareVariableFromIterator(stack, iterator) {
89
- let index = 0;
90
- while (true) {
91
- let iteratorResult = iterator.next();
92
- if (iteratorResult.done) {
93
- break;
58
+ let ArrayPattern = (() => {
59
+ let _classDecorators = [Deserializer('ArrayPattern')];
60
+ let _classDescriptor;
61
+ let _classExtraInitializers = [];
62
+ let _classThis;
63
+ let _classSuper = AbstractExpressionNode;
64
+ var ArrayPattern = class extends _classSuper {
65
+ static { _classThis = this; }
66
+ static {
67
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
68
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
69
+ ArrayPattern = _classThis = _classDescriptor.value;
70
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
71
+ __runInitializers(_classThis, _classExtraInitializers);
72
+ }
73
+ elements;
74
+ static fromJSON(node, deserializer) {
75
+ return new ArrayPattern(node.elements.map(expression => expression ? deserializer(expression) : null), node.range, node.loc);
76
+ }
77
+ static visit(node, visitNode) {
78
+ node.elements.forEach(expression => expression && visitNode(expression));
79
+ }
80
+ constructor(elements, range, loc) {
81
+ super(range, loc);
82
+ this.elements = elements;
83
+ }
84
+ getElements() {
85
+ return this.elements;
86
+ }
87
+ set(stack, values) {
88
+ throw new Error('ArrayPattern#set() has no implementation.');
89
+ }
90
+ get(scopeProvider) {
91
+ throw new Error('ArrayPattern#get() has no implementation.');
92
+ }
93
+ declareVariable(stack, values) {
94
+ if (Array.isArray(values)) {
95
+ this.declareVariableFromArray(stack, values);
94
96
  }
95
- const elem = this.elements[index++];
96
- if (elem == null) {
97
- continue;
97
+ else if (Reflect.has(values, Symbol.iterator)) {
98
+ this.declareVariableFromIterator(stack, values);
98
99
  }
99
- if (elem instanceof RestElement) {
100
- const rest = [iteratorResult.value];
101
- while (!iteratorResult.done) {
102
- iteratorResult = iterator.next();
103
- rest.push(iteratorResult.value);
100
+ }
101
+ declareVariableFromArray(stack, values) {
102
+ for (let index = 0; index < this.elements.length; index++) {
103
+ const elem = this.elements[index];
104
+ if (elem == null) {
105
+ continue;
106
+ }
107
+ if (elem instanceof RestElement) {
108
+ const rest = values.slice(index);
109
+ elem.declareVariable(stack, rest);
110
+ break;
104
111
  }
105
- elem.declareVariable(stack, rest);
106
- break;
112
+ elem.declareVariable(stack, values[index]);
107
113
  }
108
- elem.declareVariable(stack, iteratorResult.value);
109
- if (index >= this.elements.length) {
110
- break;
114
+ }
115
+ declareVariableFromIterator(stack, iterator) {
116
+ let index = 0;
117
+ while (true) {
118
+ let iteratorResult = iterator.next();
119
+ if (iteratorResult.done) {
120
+ break;
121
+ }
122
+ const elem = this.elements[index++];
123
+ if (elem == null) {
124
+ continue;
125
+ }
126
+ if (elem instanceof RestElement) {
127
+ const rest = [iteratorResult.value];
128
+ while (!iteratorResult.done) {
129
+ iteratorResult = iterator.next();
130
+ rest.push(iteratorResult.value);
131
+ }
132
+ elem.declareVariable(stack, rest);
133
+ break;
134
+ }
135
+ elem.declareVariable(stack, iteratorResult.value);
136
+ if (index >= this.elements.length) {
137
+ break;
138
+ }
111
139
  }
112
140
  }
113
- }
114
- dependency(computed) {
115
- return this.elements.filter(item => item).flatMap(item => item.dependency(computed));
116
- }
117
- dependencyPath(computed) {
118
- return this.elements.filter(item => item).flatMap(item => item.dependencyPath(computed));
119
- }
120
- toString() {
121
- return `[ ${this.elements.map(item => item?.toString()).toString()} ]`;
122
- }
123
- toJson() {
124
- return {
125
- elements: this.elements.map(item => item?.toJSON())
126
- };
127
- }
128
- };
129
- ArrayPattern = ArrayPattern_1 = __decorate([
130
- Deserializer('ArrayPattern'),
131
- __metadata("design:paramtypes", [Array, Array, Object])
132
- ], ArrayPattern);
141
+ dependency(computed) {
142
+ return this.elements.filter(item => item).flatMap(item => item.dependency(computed));
143
+ }
144
+ dependencyPath(computed) {
145
+ return this.elements.filter(item => item).flatMap(item => item.dependencyPath(computed));
146
+ }
147
+ toString() {
148
+ return `[ ${this.elements.map(item => item?.toString()).toString()} ]`;
149
+ }
150
+ toJson() {
151
+ return {
152
+ elements: this.elements.map(item => item?.toJSON())
153
+ };
154
+ }
155
+ };
156
+ return ArrayPattern = _classThis;
157
+ })();
133
158
  export { ArrayPattern };
134
159
  //# sourceMappingURL=array.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"array.js","sourceRoot":"","sources":["../../../../src/expressions/api/definition/array.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tNodeDeserializer, ExpressionNode, DeclarationExpression,\n\tExpressionEventPath, VisitNodeType, SourceLocation\n} from '../expression.js';\nimport type { Stack } from '../../scope/stack.js';\nimport { AbstractExpressionNode } from '../abstract.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\nimport { RestElement } from '../computing/rest.js';\nimport { SpreadElement } from '../computing/spread.js';\n\n@Deserializer('ArrayExpression')\nexport class ArrayExpression extends AbstractExpressionNode {\n\tstatic fromJSON(node: ArrayExpression, deserializer: NodeDeserializer): ArrayExpression {\n\t\treturn new ArrayExpression(\n\t\t\tnode.elements.map(element => element ? deserializer(element) : null),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: ArrayExpression, visitNode: VisitNodeType): void {\n\t\tnode.elements.forEach(element => element && visitNode(element));\n\t}\n\tconstructor(\n\t\tprivate elements: (ExpressionNode | SpreadElement | null)[],\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetElements() {\n\t\treturn this.elements;\n\t}\n\tset(stack: Stack) {\n\t\tthrow new Error(\"ArrayExpression#set() has no implementation.\");\n\t}\n\tget(stack: Stack) {\n\t\treturn this.elements.map(item => item?.get(stack));\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.elements.filter(item => item).flatMap(item => item!.dependency(computed));\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.elements.filter(item => item).flatMap(item => item!.dependencyPath(computed));\n\t}\n\ttoString() {\n\t\treturn `[ ${this.elements.map(item => item?.toString()).toString()} ]`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\telements: this.elements.map(item => item?.toJSON())\n\t\t};\n\t}\n}\n\n\n@Deserializer('ArrayPattern')\nexport class ArrayPattern extends AbstractExpressionNode implements DeclarationExpression {\n\tstatic fromJSON(node: ArrayPattern, deserializer: NodeDeserializer): ArrayPattern {\n\t\treturn new ArrayPattern(\n\t\t\tnode.elements.map(expression => expression ? deserializer(expression) : null) as DeclarationExpression[],\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: ArrayPattern, visitNode: VisitNodeType): void {\n\t\tnode.elements.forEach(expression => expression && visitNode(expression));\n\t}\n\tconstructor(\n\t\tprivate elements: (DeclarationExpression | null)[],\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetElements() {\n\t\treturn this.elements;\n\t}\n\tset(stack: Stack, values: any) {\n\t\tthrow new Error('ArrayPattern#set() has no implementation.');\n\t}\n\tget(scopeProvider: Stack) {\n\t\tthrow new Error('ArrayPattern#get() has no implementation.');\n\t}\n\tdeclareVariable(stack: Stack, values: any) {\n\t\tif (Array.isArray(values)) {\n\t\t\tthis.declareVariableFromArray(stack, values);\n\t\t} else if (Reflect.has(values, Symbol.iterator)) {\n\t\t\tthis.declareVariableFromIterator(stack, values);\n\t\t}\n\t}\n\tdeclareVariableFromArray(stack: Stack, values: any[]) {\n\t\tfor (let index = 0; index < this.elements.length; index++) {\n\t\t\tconst elem = this.elements[index];\n\t\t\tif (elem == null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (elem instanceof RestElement) {\n\t\t\t\tconst rest = values.slice(index);\n\t\t\t\telem.declareVariable(stack, rest);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\telem.declareVariable(stack, values[index]);\n\t\t}\n\t}\n\tdeclareVariableFromIterator(stack: Stack, iterator: Iterator<any>) {\n\t\tlet index = 0;\n\t\twhile (true) {\n\t\t\tlet iteratorResult = iterator.next();\n\t\t\tif (iteratorResult.done) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tconst elem = this.elements[index++];\n\t\t\tif (elem == null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (elem instanceof RestElement) {\n\t\t\t\tconst rest = [iteratorResult.value];\n\t\t\t\twhile (!iteratorResult.done) {\n\t\t\t\t\titeratorResult = iterator.next();\n\t\t\t\t\trest.push(iteratorResult.value);\n\t\t\t\t}\n\t\t\t\telem.declareVariable(stack, rest);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\telem.declareVariable(stack, iteratorResult.value);\n\t\t\tif (index >= this.elements.length) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.elements.filter(item => item).flatMap(item => item!.dependency(computed));\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.elements.filter(item => item).flatMap(item => item!.dependencyPath(computed));\n\t}\n\ttoString() {\n\t\treturn `[ ${this.elements.map(item => item?.toString()).toString()} ]`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\telements: this.elements.map(item => item?.toJSON())\n\t\t};\n\t}\n}\n"]}
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../../../src/expressions/api/definition/array.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tNodeDeserializer, ExpressionNode, DeclarationExpression,\n\tExpressionEventPath, VisitNodeType, SourceLocation\n} from '../expression.js';\nimport type { Stack } from '../../scope/stack.js';\nimport { AbstractExpressionNode } from '../abstract.js';\nimport { Deserializer } from '../deserialize/deserialize.js';\nimport { RestElement } from '../computing/rest.js';\nimport { SpreadElement } from '../computing/spread.js';\n\n@Deserializer('ArrayExpression')\nexport class ArrayExpression extends AbstractExpressionNode {\n\tstatic fromJSON(node: ArrayExpression, deserializer: NodeDeserializer): ArrayExpression {\n\t\treturn new ArrayExpression(\n\t\t\tnode.elements.map(element => element ? deserializer(element) : null),\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: ArrayExpression, visitNode: VisitNodeType): void {\n\t\tnode.elements.forEach(element => element && visitNode(element));\n\t}\n\tconstructor(\n\t\tprivate elements: (ExpressionNode | SpreadElement | null)[],\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetElements() {\n\t\treturn this.elements;\n\t}\n\tset(stack: Stack) {\n\t\tthrow new Error(\"ArrayExpression#set() has no implementation.\");\n\t}\n\tget(stack: Stack) {\n\t\treturn this.elements.map(item => item?.get(stack));\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.elements.filter(item => item).flatMap(item => item!.dependency(computed));\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.elements.filter(item => item).flatMap(item => item!.dependencyPath(computed));\n\t}\n\ttoString() {\n\t\treturn `[ ${this.elements.map(item => item?.toString()).toString()} ]`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\telements: this.elements.map(item => item?.toJSON())\n\t\t};\n\t}\n}\n\n\n@Deserializer('ArrayPattern')\nexport class ArrayPattern extends AbstractExpressionNode implements DeclarationExpression {\n\tstatic fromJSON(node: ArrayPattern, deserializer: NodeDeserializer): ArrayPattern {\n\t\treturn new ArrayPattern(\n\t\t\tnode.elements.map(expression => expression ? deserializer(expression) : null) as DeclarationExpression[],\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tstatic visit(node: ArrayPattern, visitNode: VisitNodeType): void {\n\t\tnode.elements.forEach(expression => expression && visitNode(expression));\n\t}\n\tconstructor(\n\t\tprivate elements: (DeclarationExpression | null)[],\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetElements() {\n\t\treturn this.elements;\n\t}\n\tset(stack: Stack, values: any) {\n\t\tthrow new Error('ArrayPattern#set() has no implementation.');\n\t}\n\tget(scopeProvider: Stack) {\n\t\tthrow new Error('ArrayPattern#get() has no implementation.');\n\t}\n\tdeclareVariable(stack: Stack, values: any) {\n\t\tif (Array.isArray(values)) {\n\t\t\tthis.declareVariableFromArray(stack, values);\n\t\t} else if (Reflect.has(values, Symbol.iterator)) {\n\t\t\tthis.declareVariableFromIterator(stack, values);\n\t\t}\n\t}\n\tdeclareVariableFromArray(stack: Stack, values: any[]) {\n\t\tfor (let index = 0; index < this.elements.length; index++) {\n\t\t\tconst elem = this.elements[index];\n\t\t\tif (elem == null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (elem instanceof RestElement) {\n\t\t\t\tconst rest = values.slice(index);\n\t\t\t\telem.declareVariable(stack, rest);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\telem.declareVariable(stack, values[index]);\n\t\t}\n\t}\n\tdeclareVariableFromIterator(stack: Stack, iterator: Iterator<any>) {\n\t\tlet index = 0;\n\t\twhile (true) {\n\t\t\tlet iteratorResult = iterator.next();\n\t\t\tif (iteratorResult.done) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tconst elem = this.elements[index++];\n\t\t\tif (elem == null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (elem instanceof RestElement) {\n\t\t\t\tconst rest = [iteratorResult.value];\n\t\t\t\twhile (!iteratorResult.done) {\n\t\t\t\t\titeratorResult = iterator.next();\n\t\t\t\t\trest.push(iteratorResult.value);\n\t\t\t\t}\n\t\t\t\telem.declareVariable(stack, rest);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\telem.declareVariable(stack, iteratorResult.value);\n\t\t\tif (index >= this.elements.length) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.elements.filter(item => item).flatMap(item => item!.dependency(computed));\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.elements.filter(item => item).flatMap(item => item!.dependencyPath(computed));\n\t}\n\ttoString() {\n\t\treturn `[ ${this.elements.map(item => item?.toString()).toString()} ]`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\telements: this.elements.map(item => item?.toJSON())\n\t\t};\n\t}\n}\n"]}
@@ -27,3 +27,4 @@ export declare class BindExpression extends AbstractExpressionNode implements Ca
27
27
  toString(): string;
28
28
  toJson(): object;
29
29
  }
30
+ //# sourceMappingURL=bind.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bind.d.ts","sourceRoot":"","sources":["../../../../src/expressions/api/definition/bind.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,gBAAgB,EAAE,cAAc,EAAE,YAAY,EAC9C,mBAAmB,EAAE,aAAa,EAAE,cAAc,EAClD,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD;;;;;GAKG;AACH,qBACa,cAAe,SAAQ,sBAAuB,YAAW,YAAY;IAgBhF,SAAS,CAAC,MAAM,EAAE,cAAc;IAChC,SAAS,CAAC,QAAQ,EAAE,cAAc;IAClC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,QAAQ;IAlBjB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,GAAG,cAAc;IAUrF,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI;gBAKvD,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,cAAc,EAC1B,QAAQ,EAAE,OAAO,EACjB,QAAQ,GAAE,OAAe,EACjC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EACxB,GAAG,CAAC,EAAE,cAAc;IAGrB,SAAS;IAGT,WAAW;IAGX,GAAG,CAAC,KAAK,EAAE,KAAK;IAGhB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,GAAG;IAmBnC,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;IACnD,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAOtE,UAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,cAAc,EAAE;IAG7C,cAAc,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,mBAAmB,EAAE;IAGtD,QAAQ;IAMR,MAAM,IAAI,MAAM;CAQhB"}