@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
@@ -1,63 +1,75 @@
1
- var SpreadElement_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
- let SpreadElement = SpreadElement_1 = class SpreadElement extends AbstractExpressionNode {
6
- static fromJSON(node, deserializer) {
7
- return new SpreadElement_1(deserializer(node.argument), node.range, node.loc);
8
- }
9
- static visit(node, visitNode) {
10
- visitNode(node.argument);
11
- }
12
- constructor(argument, range, loc) {
13
- super(range, loc);
14
- this.argument = argument;
15
- }
16
- getArgument() {
17
- return this.argument;
18
- }
19
- set(stack, value) {
20
- throw new Error('SpreadElement#set() Method has no implementation.');
21
- }
22
- get(stack) {
23
- const value = this.argument.get(stack);
24
- if (Array.isArray(value)) {
25
- this.spreadFromArray(stack, value);
26
- }
27
- else if (Reflect.has(value, Symbol.iterator)) {
28
- this.spreadFromIterator(stack, value);
29
- }
30
- }
31
- spreadFromArray(stack, array) {
32
- let length = stack.get('length');
33
- array.forEach(value => stack.declareVariable(length++, value));
34
- }
35
- spreadFromIterator(stack, iterator) {
36
- let length = stack.get('length');
37
- while (true) {
38
- const iteratorResult = iterator.next();
39
- if (iteratorResult.done) {
40
- break;
4
+ let SpreadElement = (() => {
5
+ let _classDecorators = [Deserializer('SpreadElement')];
6
+ let _classDescriptor;
7
+ let _classExtraInitializers = [];
8
+ let _classThis;
9
+ let _classSuper = AbstractExpressionNode;
10
+ var SpreadElement = 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
+ SpreadElement = _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
+ argument;
20
+ static fromJSON(node, deserializer) {
21
+ return new SpreadElement(deserializer(node.argument), node.range, node.loc);
22
+ }
23
+ static visit(node, visitNode) {
24
+ visitNode(node.argument);
25
+ }
26
+ constructor(argument, range, loc) {
27
+ super(range, loc);
28
+ this.argument = argument;
29
+ }
30
+ getArgument() {
31
+ return this.argument;
32
+ }
33
+ set(stack, value) {
34
+ throw new Error('SpreadElement#set() Method has no implementation.');
35
+ }
36
+ get(stack) {
37
+ const value = this.argument.get(stack);
38
+ if (Array.isArray(value)) {
39
+ this.spreadFromArray(stack, value);
41
40
  }
42
- stack.declareVariable(length++, iteratorResult.value);
43
- }
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 `...${this.argument.toString()}`;
53
- }
54
- toJson() {
55
- return { argument: this.argument.toJSON() };
56
- }
57
- };
58
- SpreadElement = SpreadElement_1 = __decorate([
59
- Deserializer('SpreadElement'),
60
- __metadata("design:paramtypes", [Object, Array, Object])
61
- ], SpreadElement);
41
+ else if (Reflect.has(value, Symbol.iterator)) {
42
+ this.spreadFromIterator(stack, value);
43
+ }
44
+ }
45
+ spreadFromArray(stack, array) {
46
+ let length = stack.get('length');
47
+ array.forEach(value => stack.declareVariable(length++, value));
48
+ }
49
+ spreadFromIterator(stack, iterator) {
50
+ let length = stack.get('length');
51
+ while (true) {
52
+ const iteratorResult = iterator.next();
53
+ if (iteratorResult.done) {
54
+ break;
55
+ }
56
+ stack.declareVariable(length++, iteratorResult.value);
57
+ }
58
+ }
59
+ dependency(computed) {
60
+ return this.argument.dependency(computed);
61
+ }
62
+ dependencyPath(computed) {
63
+ return this.argument.dependencyPath(computed);
64
+ }
65
+ toString() {
66
+ return `...${this.argument.toString()}`;
67
+ }
68
+ toJson() {
69
+ return { argument: this.argument.toJSON() };
70
+ }
71
+ };
72
+ return SpreadElement = _classThis;
73
+ })();
62
74
  export { SpreadElement };
63
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;AAGtD,IAAM,aAAa,qBAAnB,MAAM,aAAc,SAAQ,sBAAsB;IACxD,MAAM,CAAC,QAAQ,CAAC,IAAmB,EAAE,YAA8B;QAClE,OAAO,IAAI,eAAa,CACvB,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC3B,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,GAAG,CACR,CAAC;IACH,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,IAAmB,EAAE,SAAwB;QACzD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IACD,YACS,QAAwB,EAChC,KAAwB,EACxB,GAAoB;QACpB,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAHV,aAAQ,GAAR,QAAQ,CAAgB;IAIjC,CAAC;IACD,WAAW;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IACD,GAAG,CAAC,KAAY,EAAE,KAAU;QAC3B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACtE,CAAC;IACD,GAAG,CAAC,KAAY;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACzB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACnC;aAAM,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE;YAC/C,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACtC;IACF,CAAC;IACO,eAAe,CAAC,KAAY,EAAE,KAAiB;QACtD,IAAI,MAAM,GAAW,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IAChE,CAAC;IACO,kBAAkB,CAAC,KAAY,EAAE,QAAuB;QAC/D,IAAI,MAAM,GAAW,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,OAAO,IAAI,EAAE;YACZ,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,cAAc,CAAC,IAAI,EAAE;gBACxB,MAAM;aACN;YACD,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;SACtD;IACF,CAAC;IACD,UAAU,CAAC,QAAe;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IACD,cAAc,CAAC,QAAe;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IACD,QAAQ;QACP,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;IACzC,CAAC;IACD,MAAM;QACL,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;IAC7C,CAAC;CACD,CAAA;AAzDY,aAAa;IADzB,YAAY,CAAC,eAAe,CAAC;;GACjB,aAAa,CAyDzB;SAzDY,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;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;;;;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"]}
@@ -50,3 +50,4 @@ export declare class TryCatchNode extends AbstractExpressionNode {
50
50
  toString(): string;
51
51
  toJson(): object;
52
52
  }
53
+ //# sourceMappingURL=throw.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throw.d.ts","sourceRoot":"","sources":["../../../../src/expressions/api/computing/throw.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,MAAM,gBAAgB,CAAC;AAGxD;;;GAGG;AACH,qBACa,cAAe,SAAQ,sBAAsB;IAYxD,OAAO,CAAC,QAAQ;IAXjB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,GAAG,cAAc;IAOrF,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI;gBAIzD,QAAQ,EAAE,cAAc,EAChC,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;IAGhB,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;CAGhB;AAGD,qBACa,eAAgB,SAAQ,sBAAsB;IAUzD,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,KAAK,CAAC;IAVf,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,GAAG,eAAe;gBAS9E,IAAI,EAAE,cAAc,EACpB,KAAK,CAAC,4BAAgB,EAC9B,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EACxB,GAAG,CAAC,EAAE,cAAc;IAGrB,QAAQ;IAGR,OAAO;IAGP,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG;IAG5B,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,GAAG;IAGnC,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,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KAAE;CAO7C;AAED,qBACa,YAAa,SAAQ,sBAAsB;IAU3C,OAAO,CAAC,KAAK;IACxB,OAAO,CAAC,OAAO,CAAC;IAChB,OAAO,CAAC,SAAS,CAAC;IAXnB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,GAAG,YAAY;gBAS7D,KAAK,EAAE,cAAc,EAChC,OAAO,CAAC,4BAAgB,EACxB,SAAS,CAAC,4BAAgB,EAClC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EACxB,GAAG,CAAC,EAAE,cAAc;IAGrB,QAAQ;IAGR,UAAU;IAGV,YAAY;IAGZ,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG;IAG5B,GAAG,CAAC,KAAK,EAAE,KAAK;IAgDhB,UAAU,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,cAAc,EAAE;IAK7C,cAAc,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,mBAAmB,EAAE;IAOtD,QAAQ,IAAI,MAAM;IAGlB,MAAM,IAAI,MAAM;CAOhB"}
@@ -1,191 +1,232 @@
1
- var ThrowStatement_1, CatchClauseNode_1, TryCatchNode_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
  /**
6
5
  * The expression whose value is to be returned.
7
6
  * If omitted, undefined is returned instead.
8
7
  */
9
- let ThrowStatement = ThrowStatement_1 = class ThrowStatement extends AbstractExpressionNode {
10
- static fromJSON(node, deserializer) {
11
- return new ThrowStatement_1(deserializer(node.argument), node.range, node.loc);
12
- }
13
- static visit(node, visitNode) {
14
- visitNode(node.argument);
15
- }
16
- constructor(argument, range, loc) {
17
- super(range, loc);
18
- this.argument = argument;
19
- }
20
- getArgument() {
21
- return this.argument;
22
- }
23
- set(stack, value) {
24
- throw new Error(`ThrowStatement#set() has no implementation.`);
25
- }
26
- get(stack) {
27
- throw this.argument.get(stack);
28
- }
29
- dependency(computed) {
30
- return this.argument.dependency(computed);
31
- }
32
- dependencyPath(computed) {
33
- return this.argument.dependencyPath(computed);
34
- }
35
- toString() {
36
- return `throw ${this.argument.toString()}`;
37
- }
38
- toJson() {
39
- return { argument: this.argument?.toJSON() };
40
- }
41
- };
42
- ThrowStatement = ThrowStatement_1 = __decorate([
43
- Deserializer('ThrowStatement'),
44
- __metadata("design:paramtypes", [Object, Array, Object])
45
- ], ThrowStatement);
8
+ let ThrowStatement = (() => {
9
+ let _classDecorators = [Deserializer('ThrowStatement')];
10
+ let _classDescriptor;
11
+ let _classExtraInitializers = [];
12
+ let _classThis;
13
+ let _classSuper = AbstractExpressionNode;
14
+ var ThrowStatement = class extends _classSuper {
15
+ static { _classThis = this; }
16
+ static {
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);
19
+ ThrowStatement = _classThis = _classDescriptor.value;
20
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
21
+ __runInitializers(_classThis, _classExtraInitializers);
22
+ }
23
+ argument;
24
+ static fromJSON(node, deserializer) {
25
+ return new ThrowStatement(deserializer(node.argument), node.range, node.loc);
26
+ }
27
+ static visit(node, visitNode) {
28
+ visitNode(node.argument);
29
+ }
30
+ constructor(argument, range, loc) {
31
+ super(range, loc);
32
+ this.argument = argument;
33
+ }
34
+ getArgument() {
35
+ return this.argument;
36
+ }
37
+ set(stack, value) {
38
+ throw new Error(`ThrowStatement#set() has no implementation.`);
39
+ }
40
+ get(stack) {
41
+ throw this.argument.get(stack);
42
+ }
43
+ dependency(computed) {
44
+ return this.argument.dependency(computed);
45
+ }
46
+ dependencyPath(computed) {
47
+ return this.argument.dependencyPath(computed);
48
+ }
49
+ toString() {
50
+ return `throw ${this.argument.toString()}`;
51
+ }
52
+ toJson() {
53
+ return { argument: this.argument?.toJSON() };
54
+ }
55
+ };
56
+ return ThrowStatement = _classThis;
57
+ })();
46
58
  export { ThrowStatement };
47
- let CatchClauseNode = CatchClauseNode_1 = class CatchClauseNode extends AbstractExpressionNode {
48
- static fromJSON(node, deserializer) {
49
- return new CatchClauseNode_1(deserializer(node.body), node.param ? deserializer(node.param) : void 0, node.range, node.loc);
50
- }
51
- constructor(body, param, range, loc) {
52
- super(range, loc);
53
- this.body = body;
54
- this.param = param;
55
- }
56
- getParam() {
57
- return this.param;
58
- }
59
- getBody() {
60
- return this.body;
61
- }
62
- set(stack, error) {
63
- this.param?.set(stack, error);
64
- }
65
- get(stack, thisContext) {
66
- return this.body.get(stack);
67
- }
68
- dependency(computed) {
69
- return this.body.dependency();
70
- }
71
- dependencyPath(computed) {
72
- return this.body.dependencyPath(computed);
73
- }
74
- toString() {
75
- return `catch (${this.param?.toString() || ''}) ${this.body.toString()}`;
76
- }
77
- toJson(key) {
78
- return {
79
- param: this.param?.toJSON(),
80
- body: this.body.toJSON()
81
- };
82
- }
83
- };
84
- CatchClauseNode = CatchClauseNode_1 = __decorate([
85
- Deserializer('CatchClause'),
86
- __metadata("design:paramtypes", [Object, Object, Array, Object])
87
- ], CatchClauseNode);
59
+ let CatchClauseNode = (() => {
60
+ let _classDecorators = [Deserializer('CatchClause')];
61
+ let _classDescriptor;
62
+ let _classExtraInitializers = [];
63
+ let _classThis;
64
+ let _classSuper = AbstractExpressionNode;
65
+ var CatchClauseNode = class extends _classSuper {
66
+ static { _classThis = this; }
67
+ static {
68
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
69
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
70
+ CatchClauseNode = _classThis = _classDescriptor.value;
71
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
72
+ __runInitializers(_classThis, _classExtraInitializers);
73
+ }
74
+ body;
75
+ param;
76
+ static fromJSON(node, deserializer) {
77
+ return new CatchClauseNode(deserializer(node.body), node.param ? deserializer(node.param) : void 0, node.range, node.loc);
78
+ }
79
+ constructor(body, param, range, loc) {
80
+ super(range, loc);
81
+ this.body = body;
82
+ this.param = param;
83
+ }
84
+ getParam() {
85
+ return this.param;
86
+ }
87
+ getBody() {
88
+ return this.body;
89
+ }
90
+ set(stack, error) {
91
+ this.param?.set(stack, error);
92
+ }
93
+ get(stack, thisContext) {
94
+ return this.body.get(stack);
95
+ }
96
+ dependency(computed) {
97
+ return this.body.dependency();
98
+ }
99
+ dependencyPath(computed) {
100
+ return this.body.dependencyPath(computed);
101
+ }
102
+ toString() {
103
+ return `catch (${this.param?.toString() || ''}) ${this.body.toString()}`;
104
+ }
105
+ toJson(key) {
106
+ return {
107
+ param: this.param?.toJSON(),
108
+ body: this.body.toJSON()
109
+ };
110
+ }
111
+ };
112
+ return CatchClauseNode = _classThis;
113
+ })();
88
114
  export { CatchClauseNode };
89
- let TryCatchNode = TryCatchNode_1 = class TryCatchNode extends AbstractExpressionNode {
90
- static fromJSON(node, deserializer) {
91
- return new TryCatchNode_1(deserializer(node.block), node.handler ? deserializer(node.handler) : void 0, node.finalizer ? deserializer(node.finalizer) : void 0, node.range, node.loc);
92
- }
93
- constructor(block, handler, finalizer, range, loc) {
94
- super(range, loc);
95
- this.block = block;
96
- this.handler = handler;
97
- this.finalizer = finalizer;
98
- }
99
- getBlock() {
100
- return this.block;
101
- }
102
- getHandler() {
103
- return this.handler;
104
- }
105
- getFinalizer() {
106
- return this.finalizer;
107
- }
108
- set(stack, value) {
109
- throw new Error(`TryCatchNode#set() has no implementation.`);
110
- }
111
- get(stack) {
112
- const scope = stack.lastScope();
113
- if (this.block && this.handler && this.finalizer) {
114
- try {
115
- const blockScope = stack.pushBlockScope();
116
- this.block.get(stack);
117
- stack.clearTo(blockScope);
118
- }
119
- catch (error) {
120
- stack.clearTill(scope);
121
- const blockScope = stack.pushBlockScope();
122
- this.handler.set(stack, error);
123
- this.handler.get(stack);
124
- stack.clearTo(blockScope);
125
- }
126
- finally {
127
- stack.clearTill(scope);
128
- const blockScope = stack.pushBlockScope();
129
- this.finalizer.get(stack);
130
- stack.clearTo(blockScope);
131
- }
115
+ let TryCatchNode = (() => {
116
+ let _classDecorators = [Deserializer('TryStatement')];
117
+ let _classDescriptor;
118
+ let _classExtraInitializers = [];
119
+ let _classThis;
120
+ let _classSuper = AbstractExpressionNode;
121
+ var TryCatchNode = class extends _classSuper {
122
+ static { _classThis = this; }
123
+ static {
124
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
125
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
126
+ TryCatchNode = _classThis = _classDescriptor.value;
127
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
128
+ __runInitializers(_classThis, _classExtraInitializers);
129
+ }
130
+ block;
131
+ handler;
132
+ finalizer;
133
+ static fromJSON(node, deserializer) {
134
+ return new TryCatchNode(deserializer(node.block), node.handler ? deserializer(node.handler) : void 0, node.finalizer ? deserializer(node.finalizer) : void 0, node.range, node.loc);
135
+ }
136
+ constructor(block, handler, finalizer, range, loc) {
137
+ super(range, loc);
138
+ this.block = block;
139
+ this.handler = handler;
140
+ this.finalizer = finalizer;
132
141
  }
133
- else if (this.block && this.handler) {
134
- try {
135
- const blockScope = stack.pushBlockScope();
136
- this.block.get(stack);
137
- stack.clearTo(blockScope);
142
+ getBlock() {
143
+ return this.block;
144
+ }
145
+ getHandler() {
146
+ return this.handler;
147
+ }
148
+ getFinalizer() {
149
+ return this.finalizer;
150
+ }
151
+ set(stack, value) {
152
+ throw new Error(`TryCatchNode#set() has no implementation.`);
153
+ }
154
+ get(stack) {
155
+ const scope = stack.lastScope();
156
+ if (this.block && this.handler && this.finalizer) {
157
+ try {
158
+ const blockScope = stack.pushBlockScope();
159
+ this.block.get(stack);
160
+ stack.clearTo(blockScope);
161
+ }
162
+ catch (error) {
163
+ stack.clearTill(scope);
164
+ const blockScope = stack.pushBlockScope();
165
+ this.handler.set(stack, error);
166
+ this.handler.get(stack);
167
+ stack.clearTo(blockScope);
168
+ }
169
+ finally {
170
+ stack.clearTill(scope);
171
+ const blockScope = stack.pushBlockScope();
172
+ this.finalizer.get(stack);
173
+ stack.clearTo(blockScope);
174
+ }
138
175
  }
139
- catch (error) {
140
- stack.clearTill(scope);
141
- const blockScope = stack.pushBlockScope();
142
- stack.clearTo(blockScope);
143
- this.handler.set(stack, error);
144
- this.handler.get(stack);
145
- stack.clearTo(blockScope);
176
+ else if (this.block && this.handler) {
177
+ try {
178
+ const blockScope = stack.pushBlockScope();
179
+ this.block.get(stack);
180
+ stack.clearTo(blockScope);
181
+ }
182
+ catch (error) {
183
+ stack.clearTill(scope);
184
+ const blockScope = stack.pushBlockScope();
185
+ stack.clearTo(blockScope);
186
+ this.handler.set(stack, error);
187
+ this.handler.get(stack);
188
+ stack.clearTo(blockScope);
189
+ }
146
190
  }
147
- }
148
- else if (this.block && this.finalizer) {
149
- try {
150
- const blockScope = stack.pushBlockScope();
151
- this.block.get(stack);
152
- stack.clearTo(blockScope);
191
+ else if (this.block && this.finalizer) {
192
+ try {
193
+ const blockScope = stack.pushBlockScope();
194
+ this.block.get(stack);
195
+ stack.clearTo(blockScope);
196
+ }
197
+ finally {
198
+ stack.clearTill(scope);
199
+ const blockScope = stack.pushBlockScope();
200
+ this.finalizer.get(stack);
201
+ stack.clearTo(blockScope);
202
+ }
153
203
  }
154
- finally {
155
- stack.clearTill(scope);
156
- const blockScope = stack.pushBlockScope();
157
- this.finalizer.get(stack);
158
- stack.clearTo(blockScope);
204
+ else {
205
+ throw new Error(`Uncaught SyntaxError: Missing catch or finally after try`);
159
206
  }
207
+ stack.clearTill(scope);
208
+ }
209
+ dependency(computed) {
210
+ return this.block.dependency()
211
+ .concat(this.handler?.dependency() || [])
212
+ .concat(this.finalizer?.dependency() || []);
213
+ }
214
+ dependencyPath(computed) {
215
+ return this.block.dependencyPath(computed)
216
+ .concat(this.handler?.dependencyPath(computed) || [], this.finalizer?.dependencyPath(computed) || []);
217
+ }
218
+ toString() {
219
+ return `try ${this.block.toString()} ${this.handler?.toString() || ''} ${this.finalizer ? `finally ${this.finalizer.toString()}` : ''}`;
220
+ }
221
+ toJson() {
222
+ return {
223
+ block: this.block.toJSON(),
224
+ handler: this.handler?.toJSON(),
225
+ finalizer: this.finalizer?.toJSON(),
226
+ };
160
227
  }
161
- else {
162
- throw new Error(`Uncaught SyntaxError: Missing catch or finally after try`);
163
- }
164
- stack.clearTill(scope);
165
- }
166
- dependency(computed) {
167
- return this.block.dependency()
168
- .concat(this.handler?.dependency() || [])
169
- .concat(this.finalizer?.dependency() || []);
170
- }
171
- dependencyPath(computed) {
172
- return this.block.dependencyPath(computed)
173
- .concat(this.handler?.dependencyPath(computed) || [], this.finalizer?.dependencyPath(computed) || []);
174
- }
175
- toString() {
176
- return `try ${this.block.toString()} ${this.handler?.toString() || ''} ${this.finalizer ? `finally ${this.finalizer.toString()}` : ''}`;
177
- }
178
- toJson() {
179
- return {
180
- block: this.block.toJSON(),
181
- handler: this.handler?.toJSON(),
182
- finalizer: this.finalizer?.toJSON(),
183
- };
184
- }
185
- };
186
- TryCatchNode = TryCatchNode_1 = __decorate([
187
- Deserializer('TryStatement'),
188
- __metadata("design:paramtypes", [Object, Object, Object, Array, Object])
189
- ], TryCatchNode);
228
+ };
229
+ return TryCatchNode = _classThis;
230
+ })();
190
231
  export { TryCatchNode };
191
232
  //# sourceMappingURL=throw.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"throw.js","sourceRoot":"","sources":["../../../../src/expressions/api/computing/throw.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 { 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('ThrowStatement')\nexport class ThrowStatement extends AbstractExpressionNode {\n\tstatic fromJSON(node: ThrowStatement, deserializer: NodeDeserializer): ThrowStatement {\n\t\treturn new ThrowStatement(\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: ThrowStatement, 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(`ThrowStatement#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tthrow this.argument.get(stack);\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 `throw ${this.argument.toString()}`;\n\t}\n\ttoJson(): object {\n\t\treturn { argument: this.argument?.toJSON() };\n\t}\n}\n\n\n@Deserializer('CatchClause')\nexport class CatchClauseNode extends AbstractExpressionNode {\n\tstatic fromJSON(node: CatchClauseNode, deserializer: NodeDeserializer): CatchClauseNode {\n\t\treturn new CatchClauseNode(\n\t\t\tdeserializer(node.body),\n\t\t\tnode.param ? deserializer(node.param) : void 0,\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tconstructor(\n\t\tprivate body: ExpressionNode,\n\t\tprivate param?: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetParam() {\n\t\treturn this.param;\n\t}\n\tgetBody() {\n\t\treturn this.body;\n\t}\n\tset(stack: Stack, error: any) {\n\t\tthis.param?.set(stack, error);\n\t}\n\tget(stack: Stack, thisContext?: any) {\n\t\treturn this.body.get(stack);\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.body.dependency();\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.body.dependencyPath(computed);\n\t}\n\ttoString(): string {\n\t\treturn `catch (${this.param?.toString() || ''}) ${this.body.toString()}`;\n\t}\n\ttoJson(key?: string): { [key: string]: any; } {\n\t\treturn {\n\t\t\tparam: this.param?.toJSON(),\n\t\t\tbody: this.body.toJSON()\n\t\t};\n\t}\n\n}\n\n@Deserializer('TryStatement')\nexport class TryCatchNode extends AbstractExpressionNode {\n\tstatic fromJSON(node: TryCatchNode, deserializer: NodeDeserializer): TryCatchNode {\n\t\treturn new TryCatchNode(\n\t\t\tdeserializer(node.block),\n\t\t\tnode.handler ? deserializer(node.handler) : void 0,\n\t\t\tnode.finalizer ? deserializer(node.finalizer) : void 0,\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tconstructor(private block: ExpressionNode,\n\t\tprivate handler?: ExpressionNode,\n\t\tprivate finalizer?: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetBlock() {\n\t\treturn this.block;\n\t}\n\tgetHandler() {\n\t\treturn this.handler;\n\t}\n\tgetFinalizer() {\n\t\treturn this.finalizer;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`TryCatchNode#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tconst scope = stack.lastScope();\n\t\tif (this.block && this.handler && this.finalizer) {\n\t\t\ttry {\n\t\t\t\tconst blockScope = stack.pushBlockScope();\n\t\t\t\tthis.block.get(stack);\n\t\t\t\tstack.clearTo(blockScope);\n\t\t\t} catch (error) {\n\t\t\t\tstack.clearTill(scope);\n\t\t\t\tconst blockScope = stack.pushBlockScope();\n\t\t\t\tthis.handler.set(stack, error);\n\t\t\t\tthis.handler.get(stack);\n\t\t\t\tstack.clearTo(blockScope);\n\t\t\t} finally {\n\t\t\t\tstack.clearTill(scope);\n\t\t\t\tconst blockScope = stack.pushBlockScope();\n\t\t\t\tthis.finalizer.get(stack);\n\t\t\t\tstack.clearTo(blockScope);\n\t\t\t}\n\t\t} else if (this.block && this.handler) {\n\t\t\ttry {\n\t\t\t\tconst blockScope = stack.pushBlockScope();\n\t\t\t\tthis.block.get(stack);\n\t\t\t\tstack.clearTo(blockScope);\n\t\t\t} catch (error) {\n\t\t\t\tstack.clearTill(scope);\n\t\t\t\tconst blockScope = stack.pushBlockScope();\n\t\t\t\tstack.clearTo(blockScope);\n\t\t\t\tthis.handler.set(stack, error);\n\t\t\t\tthis.handler.get(stack);\n\t\t\t\tstack.clearTo(blockScope);\n\t\t\t}\n\t\t} else if (this.block && this.finalizer) {\n\t\t\ttry {\n\t\t\t\tconst blockScope = stack.pushBlockScope();\n\t\t\t\tthis.block.get(stack);\n\t\t\t\tstack.clearTo(blockScope);\n\t\t\t} finally {\n\t\t\t\tstack.clearTill(scope);\n\t\t\t\tconst blockScope = stack.pushBlockScope();\n\t\t\t\tthis.finalizer.get(stack);\n\t\t\t\tstack.clearTo(blockScope);\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new Error(`Uncaught SyntaxError: Missing catch or finally after try`);\n\t\t}\n\t\tstack.clearTill(scope);\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.block.dependency()\n\t\t\t.concat(this.handler?.dependency() || [])\n\t\t\t.concat(this.finalizer?.dependency() || []);\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.block.dependencyPath(computed)\n\t\t\t.concat(\n\t\t\t\tthis.handler?.dependencyPath(computed) || [],\n\t\t\t\tthis.finalizer?.dependencyPath(computed) || []\n\t\t\t);\n\t}\n\ttoString(): string {\n\t\treturn `try ${this.block.toString()} ${this.handler?.toString() || ''} ${this.finalizer ? `finally ${this.finalizer.toString()}` : ''}`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tblock: this.block.toJSON(),\n\t\t\thandler: this.handler?.toJSON(),\n\t\t\tfinalizer: this.finalizer?.toJSON(),\n\t\t};\n\t}\n}\n"]}
1
+ {"version":3,"file":"throw.js","sourceRoot":"","sources":["../../../../src/expressions/api/computing/throw.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 { 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('ThrowStatement')\nexport class ThrowStatement extends AbstractExpressionNode {\n\tstatic fromJSON(node: ThrowStatement, deserializer: NodeDeserializer): ThrowStatement {\n\t\treturn new ThrowStatement(\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: ThrowStatement, 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(`ThrowStatement#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tthrow this.argument.get(stack);\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 `throw ${this.argument.toString()}`;\n\t}\n\ttoJson(): object {\n\t\treturn { argument: this.argument?.toJSON() };\n\t}\n}\n\n\n@Deserializer('CatchClause')\nexport class CatchClauseNode extends AbstractExpressionNode {\n\tstatic fromJSON(node: CatchClauseNode, deserializer: NodeDeserializer): CatchClauseNode {\n\t\treturn new CatchClauseNode(\n\t\t\tdeserializer(node.body),\n\t\t\tnode.param ? deserializer(node.param) : void 0,\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tconstructor(\n\t\tprivate body: ExpressionNode,\n\t\tprivate param?: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetParam() {\n\t\treturn this.param;\n\t}\n\tgetBody() {\n\t\treturn this.body;\n\t}\n\tset(stack: Stack, error: any) {\n\t\tthis.param?.set(stack, error);\n\t}\n\tget(stack: Stack, thisContext?: any) {\n\t\treturn this.body.get(stack);\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.body.dependency();\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.body.dependencyPath(computed);\n\t}\n\ttoString(): string {\n\t\treturn `catch (${this.param?.toString() || ''}) ${this.body.toString()}`;\n\t}\n\ttoJson(key?: string): { [key: string]: any; } {\n\t\treturn {\n\t\t\tparam: this.param?.toJSON(),\n\t\t\tbody: this.body.toJSON()\n\t\t};\n\t}\n\n}\n\n@Deserializer('TryStatement')\nexport class TryCatchNode extends AbstractExpressionNode {\n\tstatic fromJSON(node: TryCatchNode, deserializer: NodeDeserializer): TryCatchNode {\n\t\treturn new TryCatchNode(\n\t\t\tdeserializer(node.block),\n\t\t\tnode.handler ? deserializer(node.handler) : void 0,\n\t\t\tnode.finalizer ? deserializer(node.finalizer) : void 0,\n\t\t\tnode.range,\n\t\t\tnode.loc\n\t\t);\n\t}\n\tconstructor(private block: ExpressionNode,\n\t\tprivate handler?: ExpressionNode,\n\t\tprivate finalizer?: ExpressionNode,\n\t\trange?: [number, number],\n\t\tloc?: SourceLocation) {\n\t\tsuper(range, loc);\n\t}\n\tgetBlock() {\n\t\treturn this.block;\n\t}\n\tgetHandler() {\n\t\treturn this.handler;\n\t}\n\tgetFinalizer() {\n\t\treturn this.finalizer;\n\t}\n\tset(stack: Stack, value: any) {\n\t\tthrow new Error(`TryCatchNode#set() has no implementation.`);\n\t}\n\tget(stack: Stack) {\n\t\tconst scope = stack.lastScope();\n\t\tif (this.block && this.handler && this.finalizer) {\n\t\t\ttry {\n\t\t\t\tconst blockScope = stack.pushBlockScope();\n\t\t\t\tthis.block.get(stack);\n\t\t\t\tstack.clearTo(blockScope);\n\t\t\t} catch (error) {\n\t\t\t\tstack.clearTill(scope);\n\t\t\t\tconst blockScope = stack.pushBlockScope();\n\t\t\t\tthis.handler.set(stack, error);\n\t\t\t\tthis.handler.get(stack);\n\t\t\t\tstack.clearTo(blockScope);\n\t\t\t} finally {\n\t\t\t\tstack.clearTill(scope);\n\t\t\t\tconst blockScope = stack.pushBlockScope();\n\t\t\t\tthis.finalizer.get(stack);\n\t\t\t\tstack.clearTo(blockScope);\n\t\t\t}\n\t\t} else if (this.block && this.handler) {\n\t\t\ttry {\n\t\t\t\tconst blockScope = stack.pushBlockScope();\n\t\t\t\tthis.block.get(stack);\n\t\t\t\tstack.clearTo(blockScope);\n\t\t\t} catch (error) {\n\t\t\t\tstack.clearTill(scope);\n\t\t\t\tconst blockScope = stack.pushBlockScope();\n\t\t\t\tstack.clearTo(blockScope);\n\t\t\t\tthis.handler.set(stack, error);\n\t\t\t\tthis.handler.get(stack);\n\t\t\t\tstack.clearTo(blockScope);\n\t\t\t}\n\t\t} else if (this.block && this.finalizer) {\n\t\t\ttry {\n\t\t\t\tconst blockScope = stack.pushBlockScope();\n\t\t\t\tthis.block.get(stack);\n\t\t\t\tstack.clearTo(blockScope);\n\t\t\t} finally {\n\t\t\t\tstack.clearTill(scope);\n\t\t\t\tconst blockScope = stack.pushBlockScope();\n\t\t\t\tthis.finalizer.get(stack);\n\t\t\t\tstack.clearTo(blockScope);\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new Error(`Uncaught SyntaxError: Missing catch or finally after try`);\n\t\t}\n\t\tstack.clearTill(scope);\n\t}\n\tdependency(computed?: true): ExpressionNode[] {\n\t\treturn this.block.dependency()\n\t\t\t.concat(this.handler?.dependency() || [])\n\t\t\t.concat(this.finalizer?.dependency() || []);\n\t}\n\tdependencyPath(computed?: true): ExpressionEventPath[] {\n\t\treturn this.block.dependencyPath(computed)\n\t\t\t.concat(\n\t\t\t\tthis.handler?.dependencyPath(computed) || [],\n\t\t\t\tthis.finalizer?.dependencyPath(computed) || []\n\t\t\t);\n\t}\n\ttoString(): string {\n\t\treturn `try ${this.block.toString()} ${this.handler?.toString() || ''} ${this.finalizer ? `finally ${this.finalizer.toString()}` : ''}`;\n\t}\n\ttoJson(): object {\n\t\treturn {\n\t\t\tblock: this.block.toJSON(),\n\t\t\thandler: this.handler?.toJSON(),\n\t\t\tfinalizer: this.finalizer?.toJSON(),\n\t\t};\n\t}\n}\n"]}