@elaraai/east 1.0.97 → 1.0.99

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 (154) hide show
  1. package/README.md +0 -1
  2. package/dist/src/builtins.d.ts +1 -1
  3. package/dist/src/builtins.d.ts.map +1 -1
  4. package/dist/src/builtins.js +14 -0
  5. package/dist/src/builtins.js.map +1 -1
  6. package/dist/src/codegen/spellings.d.ts.map +1 -1
  7. package/dist/src/codegen/spellings.js +2 -0
  8. package/dist/src/codegen/spellings.js.map +1 -1
  9. package/dist/src/comparison.d.ts +6 -5
  10. package/dist/src/comparison.d.ts.map +1 -1
  11. package/dist/src/comparison.js +6 -5
  12. package/dist/src/comparison.js.map +1 -1
  13. package/dist/src/compile/builtins/array.d.ts +4 -0
  14. package/dist/src/compile/builtins/array.d.ts.map +1 -1
  15. package/dist/src/compile/builtins/array.js +15 -1
  16. package/dist/src/compile/builtins/array.js.map +1 -1
  17. package/dist/src/compile/builtins/dict.d.ts +4 -0
  18. package/dist/src/compile/builtins/dict.d.ts.map +1 -1
  19. package/dist/src/compile/builtins/dict.js +14 -1
  20. package/dist/src/compile/builtins/dict.js.map +1 -1
  21. package/dist/src/compile/builtins/tree.d.ts +13 -0
  22. package/dist/src/compile/builtins/tree.d.ts.map +1 -1
  23. package/dist/src/compile/builtins/tree.js +27 -1
  24. package/dist/src/compile/builtins/tree.js.map +1 -1
  25. package/dist/src/compile/builtins/vector.d.ts +2 -2
  26. package/dist/src/compile/constructors.d.ts +6 -1
  27. package/dist/src/compile/constructors.d.ts.map +1 -1
  28. package/dist/src/compile/constructors.js +21 -11
  29. package/dist/src/compile/constructors.js.map +1 -1
  30. package/dist/src/compile/control.d.ts +7 -1
  31. package/dist/src/compile/control.d.ts.map +1 -1
  32. package/dist/src/compile/control.js +228 -146
  33. package/dist/src/compile/control.js.map +1 -1
  34. package/dist/src/compile/flow.d.ts +138 -0
  35. package/dist/src/compile/flow.d.ts.map +1 -0
  36. package/dist/src/compile/flow.js +358 -0
  37. package/dist/src/compile/flow.js.map +1 -0
  38. package/dist/src/compile/functions.d.ts +9 -1
  39. package/dist/src/compile/functions.d.ts.map +1 -1
  40. package/dist/src/compile/functions.js +62 -69
  41. package/dist/src/compile/functions.js.map +1 -1
  42. package/dist/src/compile/ir.d.ts +12 -0
  43. package/dist/src/compile/ir.d.ts.map +1 -1
  44. package/dist/src/compile/ir.js +164 -40
  45. package/dist/src/compile/ir.js.map +1 -1
  46. package/dist/src/compile/runtime.d.ts +2 -16
  47. package/dist/src/compile/runtime.d.ts.map +1 -1
  48. package/dist/src/compile/runtime.js +5 -40
  49. package/dist/src/compile/runtime.js.map +1 -1
  50. package/dist/src/compile.control_flow.spec.d.ts +6 -0
  51. package/dist/src/compile.control_flow.spec.d.ts.map +1 -0
  52. package/dist/src/compile.control_flow.spec.js +219 -0
  53. package/dist/src/compile.control_flow.spec.js.map +1 -0
  54. package/dist/src/compile.d.ts +1 -1
  55. package/dist/src/compile.d.ts.map +1 -1
  56. package/dist/src/compile.js +1 -1
  57. package/dist/src/compile.js.map +1 -1
  58. package/dist/src/eastir.d.ts.map +1 -1
  59. package/dist/src/eastir.js +8 -30
  60. package/dist/src/eastir.js.map +1 -1
  61. package/dist/src/expr/array.d.ts +39 -0
  62. package/dist/src/expr/array.d.ts.map +1 -1
  63. package/dist/src/expr/array.js +47 -0
  64. package/dist/src/expr/array.js.map +1 -1
  65. package/dist/src/expr/dict.d.ts +44 -1
  66. package/dist/src/expr/dict.d.ts.map +1 -1
  67. package/dist/src/expr/dict.js +54 -2
  68. package/dist/src/expr/dict.js.map +1 -1
  69. package/dist/src/expr/index.d.ts +130 -0
  70. package/dist/src/expr/index.d.ts.map +1 -1
  71. package/dist/src/expr/index.js +133 -0
  72. package/dist/src/expr/index.js.map +1 -1
  73. package/dist/src/expr/named.d.ts +100 -0
  74. package/dist/src/expr/named.d.ts.map +1 -0
  75. package/dist/src/expr/named.js +182 -0
  76. package/dist/src/expr/named.js.map +1 -0
  77. package/dist/src/functions.d.ts +21 -0
  78. package/dist/src/functions.d.ts.map +1 -1
  79. package/dist/src/functions.js +22 -41
  80. package/dist/src/functions.js.map +1 -1
  81. package/dist/src/internal.d.ts +1 -0
  82. package/dist/src/internal.d.ts.map +1 -1
  83. package/dist/src/internal.js +4 -0
  84. package/dist/src/internal.js.map +1 -1
  85. package/dist/src/ir_locations.d.ts +24 -0
  86. package/dist/src/ir_locations.d.ts.map +1 -0
  87. package/dist/src/ir_locations.js +58 -0
  88. package/dist/src/ir_locations.js.map +1 -0
  89. package/dist/src/location.d.ts +10 -0
  90. package/dist/src/location.d.ts.map +1 -1
  91. package/dist/src/location.js +19 -1
  92. package/dist/src/location.js.map +1 -1
  93. package/dist/src/query/jq/catalog.js +1 -1
  94. package/dist/src/query/jq/catalog.js.map +1 -1
  95. package/dist/src/query/jq/translate-builtins.d.ts.map +1 -1
  96. package/dist/src/query/jq/translate-builtins.js +11 -2
  97. package/dist/src/query/jq/translate-builtins.js.map +1 -1
  98. package/dist/src/query/jq/translate.d.ts +12 -0
  99. package/dist/src/query/jq/translate.d.ts.map +1 -1
  100. package/dist/src/query/jq/translate.js +40 -0
  101. package/dist/src/query/jq/translate.js.map +1 -1
  102. package/dist/src/runner_exec.d.ts +4 -1
  103. package/dist/src/runner_exec.d.ts.map +1 -1
  104. package/dist/src/runner_exec.js +24 -12
  105. package/dist/src/runner_exec.js.map +1 -1
  106. package/dist/src/runner_merge.d.ts +18 -0
  107. package/dist/src/runner_merge.d.ts.map +1 -1
  108. package/dist/src/runner_merge.js +36 -2
  109. package/dist/src/runner_merge.js.map +1 -1
  110. package/dist/src/serialization/beast2/decoded-function.spec.js +7 -4
  111. package/dist/src/serialization/beast2/decoded-function.spec.js.map +1 -1
  112. package/dist/src/serialization/beast2/shared.d.ts.map +1 -1
  113. package/dist/src/serialization/beast2/shared.js +6 -21
  114. package/dist/src/serialization/beast2/shared.js.map +1 -1
  115. package/dist/src/serialization/beast2/v4/container.d.ts.map +1 -1
  116. package/dist/src/serialization/beast2/v4/container.js +3 -4
  117. package/dist/src/serialization/beast2/v4/container.js.map +1 -1
  118. package/dist/src/serialization/beast2/v4/type-table.d.ts +42 -14
  119. package/dist/src/serialization/beast2/v4/type-table.d.ts.map +1 -1
  120. package/dist/src/serialization/beast2/v4/type-table.js +139 -53
  121. package/dist/src/serialization/beast2/v4/type-table.js.map +1 -1
  122. package/dist/src/serialization/beast2/v5/codec.d.ts +29 -2
  123. package/dist/src/serialization/beast2/v5/codec.d.ts.map +1 -1
  124. package/dist/src/serialization/beast2/v5/codec.js +153 -27
  125. package/dist/src/serialization/beast2/v5/codec.js.map +1 -1
  126. package/dist/src/serialization/beast2/v5/manifest.d.ts +3 -3
  127. package/dist/src/serialization/beast2/v5/manifest.js +3 -3
  128. package/dist/src/serialization/beast2/v5/runs.d.ts.map +1 -1
  129. package/dist/src/serialization/beast2/v5/runs.js +16 -4
  130. package/dist/src/serialization/beast2/v5/runs.js.map +1 -1
  131. package/dist/src/serialization/beast2/v5/source-maps.spec.d.ts +6 -0
  132. package/dist/src/serialization/beast2/v5/source-maps.spec.d.ts.map +1 -0
  133. package/dist/src/serialization/beast2/v5/source-maps.spec.js +81 -0
  134. package/dist/src/serialization/beast2/v5/source-maps.spec.js.map +1 -0
  135. package/dist/src/serialization/beast2/v5/type-section.js +1 -1
  136. package/dist/src/serialization/beast2/v5/type-section.js.map +1 -1
  137. package/dist/src/type_of_type.d.ts +12 -33
  138. package/dist/src/type_of_type.d.ts.map +1 -1
  139. package/dist/src/type_of_type.js +46 -174
  140. package/dist/src/type_of_type.js.map +1 -1
  141. package/dist/src/type_of_type.recursive_id.spec.d.ts +6 -0
  142. package/dist/src/type_of_type.recursive_id.spec.d.ts.map +1 -0
  143. package/dist/src/type_of_type.recursive_id.spec.js +86 -0
  144. package/dist/src/type_of_type.recursive_id.spec.js.map +1 -0
  145. package/dist/src/type_of_type.to_etv.spec.js +9 -9
  146. package/dist/src/type_of_type.to_etv.spec.js.map +1 -1
  147. package/dist/src/type_value_equal.d.ts +31 -0
  148. package/dist/src/type_value_equal.d.ts.map +1 -0
  149. package/dist/src/type_value_equal.js +170 -0
  150. package/dist/src/type_value_equal.js.map +1 -0
  151. package/dist/src/types.d.ts.map +1 -1
  152. package/dist/src/types.js +3 -1
  153. package/dist/src/types.js.map +1 -1
  154. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ir.js","sourceRoot":"","sources":["../../../src/compile/ir.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ir.js","sourceRoot":"","sources":["../../../src/compile/ir.ts"],"names":[],"mappings":"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"}
@@ -48,22 +48,8 @@ export declare const iterationLocks: WeakMap<any, number>;
48
48
  export declare const lockForIteration: (obj: any) => void;
49
49
  /** @internal Unlock a collection after iteration */
50
50
  export declare const unlockForIteration: (obj: any) => void;
51
- /** @internal An exception throw for the purpose of early function return */
52
- export declare class ReturnException {
53
- value: any;
54
- constructor(value: any);
55
- }
56
- /** @internal An exception throw for the purpose of early loop continue */
57
- export declare class ContinueException {
58
- label: string;
59
- constructor(label: string);
60
- }
61
- /** @internal An exception throw for the purpose of early loop break */
62
- export declare class BreakException {
63
- label: string;
64
- constructor(label: string);
65
- }
66
- /** Used to call a compiled function with the given arguments and handle errors within builtin functions */
51
+ /** Used to call a compiled function with the given arguments within builtin functions: the function gives
52
+ * its value, and a call nested too deeply is an East error at the builtin's location. */
67
53
  export declare function call_function(loc_id: bigint, source_map: SourceMap | null, compiled_f: (...args: any[]) => any, ...args: any[]): any;
68
54
  /** @internal The error a node that reads collections throws for `e`: a read a
69
55
  * lazy input served that failed becomes an East error at this node's
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/compile/runtime.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,KAAK,EAAY,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,KAAK,aAAa,EAAqB,MAAM,oBAAoB,CAAC;AAM3E,eAAO,MAAM,cAAc,EAAkC,CAAC,IAAI,EAAE,aAAa,KAAK,MAAM,CAAC;AAI7F,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAMtG;;;;GAIG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAChC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GACnB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAExB,qEAAqE;AACrE,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAE1D,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,QAAQ,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAEzF;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAM/E;AAID;;+CAE+C;AAC/C,eAAO,MAAM,cAAc,+EAA0E,CAAC;AAEtG;;2EAE2E;AAC3E,eAAO,MAAM,kBAAkB,uDAAuD,CAAC;AAEvF;;;;;;;;mDAQmD;AACnD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAIlG;AAED,yEAAyE;AACzE,eAAO,MAAM,cAAc,sBAA6B,CAAC;AAEzD,qFAAqF;AACrF,eAAO,MAAM,gBAAgB,GAAI,KAAK,GAAG,SAExC,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,kBAAkB,GAAI,KAAK,GAAG,SAO1C,CAAC;AAEF,4EAA4E;AAC5E,qBAAa,eAAe;IACP,KAAK,EAAE,GAAG;gBAAV,KAAK,EAAE,GAAG;CAC9B;AAED,0EAA0E;AAC1E,qBAAa,iBAAiB;IACT,KAAK,EAAE,MAAM;gBAAb,KAAK,EAAE,MAAM;CACjC;AAED,uEAAuE;AACvE,qBAAa,cAAc;IACN,KAAK,EAAE,MAAM;gBAAb,KAAK,EAAE,MAAM;CACjC;AAED,2GAA2G;AAC3G,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,GAAG,IAAI,EAAE,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAiBpI;AAED;;;yBAGyB;AACzB,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAIjG;AAED;yDACyD;AACzD,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,GAAG,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE,GAAG,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAE/J,0CAA0C;AAC1C,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/compile/runtime.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,KAAK,EAAY,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,KAAK,aAAa,EAAqB,MAAM,oBAAoB,CAAC;AAM3E,eAAO,MAAM,cAAc,EAAkC,CAAC,IAAI,EAAE,aAAa,KAAK,MAAM,CAAC;AAI7F,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAMtG;;;;GAIG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAChC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GACnB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAExB,qEAAqE;AACrE,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAE1D,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,QAAQ,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAEzF;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAM/E;AAID;;+CAE+C;AAC/C,eAAO,MAAM,cAAc,+EAA0E,CAAC;AAEtG;;2EAE2E;AAC3E,eAAO,MAAM,kBAAkB,uDAAuD,CAAC;AAEvF;;;;;;;;mDAQmD;AACnD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAIlG;AAED,yEAAyE;AACzE,eAAO,MAAM,cAAc,sBAA6B,CAAC;AAEzD,qFAAqF;AACrF,eAAO,MAAM,gBAAgB,GAAI,KAAK,GAAG,SAExC,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,kBAAkB,GAAI,KAAK,GAAG,SAO1C,CAAC;AAEF;0FAC0F;AAC1F,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,GAAG,IAAI,EAAE,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAMpI;AAED;;;yBAGyB;AACzB,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAIjG;AAED;yDACyD;AACzD,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,GAAG,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE,GAAG,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;AAE/J,0CAA0C;AAC1C,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC"}
@@ -3,8 +3,8 @@ import { EastError, InternalError, LazyReadError } from "../error.js";
3
3
  import { printFor } from "../serialization/east.js";
4
4
  import { EastTypeValueType } from "../type_of_type.js";
5
5
  /* The pieces every compiled closure and builtin shares: the context values
6
- * variables live in, the control-flow exceptions, the iteration locks, and
7
- * the call into a compiled East function a builtin makes. */
6
+ * variables live in, the iteration locks, and the call into a compiled East
7
+ * function a builtin makes. Control flow is compiled as values (`flow.ts`). */
8
8
  export const printTypeValue = printFor(EastTypeValueType);
9
9
  // The symbols a compiled function value carries live in their own module, so
10
10
  // the comparators that read function values need not import the compiler.
@@ -60,49 +60,14 @@ export const unlockForIteration = (obj) => {
60
60
  iterationLocks.delete(obj);
61
61
  }
62
62
  };
63
- /** @internal An exception throw for the purpose of early function return */
64
- export class ReturnException {
65
- value;
66
- constructor(value) {
67
- this.value = value;
68
- }
69
- }
70
- /** @internal An exception throw for the purpose of early loop continue */
71
- export class ContinueException {
72
- label;
73
- constructor(label) {
74
- this.label = label;
75
- }
76
- }
77
- /** @internal An exception throw for the purpose of early loop break */
78
- export class BreakException {
79
- label;
80
- constructor(label) {
81
- this.label = label;
82
- }
83
- }
84
- /** Used to call a compiled function with the given arguments and handle errors within builtin functions */
63
+ /** Used to call a compiled function with the given arguments within builtin functions: the function gives
64
+ * its value, and a call nested too deeply is an East error at the builtin's location. */
85
65
  export function call_function(loc_id, source_map, compiled_f, ...args) {
86
66
  try {
87
67
  return compiled_f(...args);
88
68
  }
89
69
  catch (e) {
90
- if (e instanceof ReturnException) {
91
- return e.value;
92
- }
93
- else if (e instanceof EastError) {
94
- // TODO: push loc_id to EastError once SourceMap resolution is wired up
95
- throw (e);
96
- }
97
- else if (e instanceof ContinueException) {
98
- throw new Error(`continue failed to find label ${e.label} at loc_id ${loc_id}`);
99
- }
100
- else if (e instanceof BreakException) {
101
- throw new Error(`break failed to find label ${e.label} at loc_id ${loc_id}`);
102
- }
103
- else {
104
- throw callDepthErrorAt(e, loc_id, source_map);
105
- }
70
+ throw callDepthErrorAt(e, loc_id, source_map);
106
71
  }
107
72
  }
108
73
  /** @internal The error a node that reads collections throws for `e`: a read a
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/compile/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/compile/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=compile.control_flow.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.control_flow.spec.d.ts","sourceRoot":"","sources":["../../src/compile.control_flow.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,219 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ /**
6
+ * The compiled `return`, `continue` and `break` (`compile/flow.ts`): signals a
7
+ * closure gives where a value would be, never thrown, but where the IR puts
8
+ * one under a node that computes a value. The cross-runtime cases are the
9
+ * exported "Block" suite's; this file pins what only the TypeScript runtime
10
+ * can get wrong — the positions that keep an exception, which the builders
11
+ * never write, built here as IR; a `continue` or `break` naming no loop; a
12
+ * control statement in a `finally`, as this runtime has always run one; a
13
+ * function value given to TypeScript, decoded, or compiled while another
14
+ * compiles; and errors' messages and locations.
15
+ */
16
+ import { describe, test } from "node:test";
17
+ import assert from "node:assert/strict";
18
+ import { East, ArrayType, AsyncFunctionType, EastError, EastIR, AsyncEastIR, FunctionType, IntegerType, OptionType, decodeBeast2For, encodeBeast2For, toEastTypeValue, variant, some, none, } from "./index.js";
19
+ const Int = toEastTypeValue(IntegerType);
20
+ const Never = variant("Never", null);
21
+ /** An Integer literal. */
22
+ function int(n) {
23
+ return variant("Value", { type: Int, loc_id: 0n, value: variant("Integer", n) });
24
+ }
25
+ /** A `return` of `value`. */
26
+ function ret(value) {
27
+ return variant("Return", { type: Never, loc_id: 0n, value });
28
+ }
29
+ /** A function of no inputs giving an Integer, its body `body`. */
30
+ function fn(body) {
31
+ return variant("Function", { type: toEastTypeValue(FunctionType([], IntegerType)), loc_id: 0n, captures: [], parameters: [], body });
32
+ }
33
+ describe("a control statement under a node that computes a value", () => {
34
+ // The builders never write these: a `return` there has the type the
35
+ // function gives, and they take none but where a statement goes. The IR
36
+ // allows them, so the compiler throws the signal there and the statement
37
+ // around it gives it back.
38
+ test("a return in a builtin's argument leaves the function", () => {
39
+ const body = variant("Builtin", { type: Int, loc_id: 0n, builtin: "IntegerAdd", type_parameters: [], arguments: [ret(int(5n)), int(1n)] });
40
+ assert.equal(new EastIR(fn(body)).compile([])(), 5n);
41
+ });
42
+ test("a return in a call's argument leaves the function", () => {
43
+ const x = variant("Variable", { type: Int, name: "x", loc_id: 0n, mutable: false, captured: false });
44
+ const same = variant("Function", { type: toEastTypeValue(FunctionType([IntegerType], IntegerType)), loc_id: 0n, captures: [], parameters: [x], body: x });
45
+ const body = variant("Call", { type: Int, loc_id: 0n, function: same, arguments: [ret(int(7n))] });
46
+ assert.equal(new EastIR(fn(body)).compile([])(), 7n);
47
+ });
48
+ test("a return in an array's element leaves the function, past the let it was bound by", () => {
49
+ const xs = variant("Variable", { type: toEastTypeValue(ArrayType(IntegerType)), name: "xs", loc_id: 0n, mutable: false, captured: false });
50
+ const body = variant("Block", {
51
+ type: Int, loc_id: 0n, statements: [
52
+ variant("Let", { type: toEastTypeValue(ArrayType(IntegerType)), loc_id: 0n, variable: xs, value: variant("NewArray", { type: toEastTypeValue(ArrayType(IntegerType)), loc_id: 0n, values: [int(1n), ret(int(9n))] }) }),
53
+ int(0n),
54
+ ],
55
+ });
56
+ assert.equal(new EastIR(fn(body)).compile([])(), 9n);
57
+ });
58
+ test("a return in an awaited call's argument leaves the async function", async () => {
59
+ const x = variant("Variable", { type: Int, name: "x", loc_id: 0n, mutable: false, captured: false });
60
+ const same = variant("AsyncFunction", { type: toEastTypeValue(AsyncFunctionType([IntegerType], IntegerType)), loc_id: 0n, captures: [], parameters: [x], body: x });
61
+ const body = variant("CallAsync", { type: Int, loc_id: 0n, function: same, arguments: [ret(int(11n))] });
62
+ const ir = variant("AsyncFunction", { type: toEastTypeValue(AsyncFunctionType([], IntegerType)), loc_id: 0n, captures: [], parameters: [], body });
63
+ assert.equal(await new AsyncEastIR(ir).compile([])(), 11n);
64
+ });
65
+ test("a continue in an awaited call's argument, in a loop, goes on to the loop's next row", async () => {
66
+ const same = East.asyncFunction([IntegerType], IntegerType, (_$, x) => x);
67
+ const sumPresent = East.asyncFunction([ArrayType(OptionType(IntegerType))], IntegerType, ($, xs) => {
68
+ const call = $.const(same);
69
+ const sum = $.let(0n);
70
+ $.for(xs, ($, x, _i, label) => {
71
+ // A continue arm is typed as giving nothing, though it gives Never: the match is an Integer
72
+ $.assign(sum, sum.add(call(x.match({ none: ($) => $.continue(label), some: (_$, v) => v }))));
73
+ });
74
+ return sum;
75
+ });
76
+ assert.equal(await East.compileAsync(sumPresent, [])([some(1n), none, some(2n), none, some(4n)]), 7n);
77
+ });
78
+ });
79
+ describe("a continue or break naming no loop of its function", () => {
80
+ test("raises an error at the function, naming the label, as it did at the call", () => {
81
+ const body = variant("Block", { type: Never, loc_id: 0n, statements: [variant("Continue", { type: Never, loc_id: 3n, label: { name: "nowhere", loc_id: 3n } })] });
82
+ const ir = variant("Function", { type: toEastTypeValue(FunctionType([], IntegerType)), loc_id: 4n, captures: [], parameters: [], body });
83
+ assert.throws(() => new EastIR(ir).compile([])(), { message: "continue failed to find label nowhere at loc_id 4" });
84
+ });
85
+ });
86
+ describe("a control statement in a finally", () => {
87
+ // As when control flow was thrown, a control statement in a finally takes
88
+ // the place of what the try or the catch gave, or threw.
89
+ test("a return in a finally gives the function's value in place of the try's return", () => {
90
+ const f = East.function([], IntegerType, ($) => {
91
+ $.try(($) => { $.return(1n); }).finally(($) => { $.return(2n); });
92
+ return 3n;
93
+ });
94
+ assert.equal(East.compile(f, [])(), 2n);
95
+ });
96
+ test("a return in a finally gives the function's value in place of an error its catch raised", () => {
97
+ const f = East.function([], IntegerType, ($) => {
98
+ $.try(($) => { $.error("first"); }).catch(($) => { $.error("again"); }).finally(($) => { $.return(5n); });
99
+ return 3n;
100
+ });
101
+ assert.equal(East.compile(f, [])(), 5n);
102
+ });
103
+ test("a continue in a finally goes on to the loop's next row, past what follows the try", () => {
104
+ const f = East.function([ArrayType(IntegerType)], IntegerType, ($, xs) => {
105
+ const sum = $.let(0n);
106
+ const after = $.let(0n);
107
+ $.for(xs, ($, x, _i, label) => {
108
+ $.try(($) => { $.assign(sum, sum.add(x)); }).finally(($) => { $.continue(label); });
109
+ $.assign(after, after.add(1n));
110
+ });
111
+ return sum.multiply(10n).add(after);
112
+ });
113
+ // Every row is summed; none reaches the statement after its try
114
+ assert.equal(East.compile(f, [])([1n, 2n, 3n]), 60n);
115
+ });
116
+ test("in an async function whose try and finally await, a return in the finally gives its value", async () => {
117
+ const same = East.asyncFunction([IntegerType], IntegerType, (_$, x) => x);
118
+ const f = East.asyncFunction([], IntegerType, ($) => {
119
+ const call = $.const(same);
120
+ $.try(($) => { $.return(call(1n)); }).finally(($) => { $.return(call(2n)); });
121
+ return 3n;
122
+ });
123
+ assert.equal(await East.compileAsync(f, [])(), 2n);
124
+ });
125
+ });
126
+ describe("a function value gives its value, never a signal", () => {
127
+ test("called by TypeScript, after an early return", () => {
128
+ const make = East.function([], FunctionType([IntegerType], IntegerType), (_$) => East.function([IntegerType], IntegerType, ($, x) => {
129
+ $.if(East.less(x, 0n), ($) => { $.return(0n); });
130
+ return x;
131
+ }));
132
+ const clamp = East.compile(make, [])();
133
+ assert.equal(clamp(-5n), 0n);
134
+ assert.equal(clamp(5n), 5n);
135
+ });
136
+ test("an async one called by TypeScript, after an early return from a loop that awaits", async () => {
137
+ const same = East.asyncFunction([IntegerType], IntegerType, (_$, x) => x);
138
+ const make = East.function([], AsyncFunctionType([ArrayType(IntegerType)], IntegerType), (_$) => East.asyncFunction([ArrayType(IntegerType)], IntegerType, ($, xs) => {
139
+ const call = $.const(same);
140
+ $.for(xs, ($, x) => {
141
+ $.if(East.greater(call(x), 2n), ($) => { $.return(x); });
142
+ });
143
+ return -1n;
144
+ }));
145
+ const firstOver2 = East.compile(make, [])();
146
+ assert.equal(await firstOver2([1n, 3n, 5n]), 3n);
147
+ assert.equal(await firstOver2([1n, 2n]), -1n);
148
+ });
149
+ test("decoded from beast2", () => {
150
+ const Fn = FunctionType([ArrayType(IntegerType)], IntegerType);
151
+ // The sum of the rows before the first negative one, the even ones skipped; a zero returns at once
152
+ const f = East.compile(East.function([ArrayType(IntegerType)], IntegerType, ($, xs) => {
153
+ const sum = $.let(0n);
154
+ $.for(xs, ($, x, _i, label) => {
155
+ $.if(East.equal(x, 0n), ($) => { $.return(-100n); });
156
+ $.if(East.less(x, 0n), ($) => { $.break(label); });
157
+ $.if(East.equal(x.remainder(2n), 0n), ($) => { $.continue(label); });
158
+ $.assign(sum, sum.add(x));
159
+ });
160
+ return sum;
161
+ }), []);
162
+ const decoded = decodeBeast2For(Fn)(encodeBeast2For(Fn)(f));
163
+ assert.equal(decoded([1n, 2n, 3n, -1n, 5n]), 4n);
164
+ assert.equal(decoded([1n, 0n, 3n]), -100n);
165
+ });
166
+ });
167
+ describe("a compile inside another's", () => {
168
+ test("compiles its own control flow, and the one around it goes on with its own", () => {
169
+ // A platform function's factory runs as the function calling it compiles: this one compiles a function whose loop breaks
170
+ const firstOver = East.genericPlatform("control_flow_first_over", ["T"], [ArrayType(IntegerType), IntegerType], IntegerType);
171
+ const implementation = firstOver.implement((_T) => {
172
+ const scan = East.compile(East.function([ArrayType(IntegerType), IntegerType], IntegerType, ($, xs, limit) => {
173
+ const found = $.let(-1n);
174
+ $.for(xs, ($, x, _i, label) => {
175
+ $.if(East.greater(x, limit), ($) => {
176
+ $.assign(found, x);
177
+ $.break(label);
178
+ });
179
+ });
180
+ return found;
181
+ }), []);
182
+ return (xs, limit) => scan(xs, limit);
183
+ });
184
+ // The loop compiles after the platform call: its continue is known only by its own compile's walk
185
+ const outer = East.function([ArrayType(IntegerType)], IntegerType, ($, xs) => {
186
+ const first = $.const(firstOver([IntegerType], xs, 2n));
187
+ const total = $.let(0n);
188
+ $.for(xs, ($, x, _i, label) => {
189
+ $.if(East.equal(x, first), ($) => { $.continue(label); });
190
+ $.assign(total, total.add(x));
191
+ });
192
+ return total;
193
+ });
194
+ assert.equal(East.compile(outer, [implementation])([1n, 2n, 3n, 4n]), 7n);
195
+ });
196
+ });
197
+ describe("an error raised past control flow", () => {
198
+ test("keeps its message and its location", () => {
199
+ const f = East.function([ArrayType(IntegerType)], IntegerType, ($, xs) => {
200
+ const sum = $.let(0n);
201
+ $.for(xs, ($, x, _i, label) => {
202
+ $.if(East.equal(x, 1n), ($) => { $.continue(label); });
203
+ $.if(East.equal(x, 3n), ($) => { $.error("three"); });
204
+ $.assign(sum, sum.add(x));
205
+ });
206
+ return sum;
207
+ });
208
+ try {
209
+ East.compile(f, [])([1n, 2n, 3n]);
210
+ assert.fail("expected the error");
211
+ }
212
+ catch (e) {
213
+ assert.ok(e instanceof EastError);
214
+ assert.equal(e.eastMessage, "three");
215
+ assert.ok(e.location.some(l => l.filename.includes("compile.control_flow.spec")), `expected a frame in this spec file, got: ${e.location.map(l => l.filename).join(", ")}`);
216
+ }
217
+ });
218
+ });
219
+ //# sourceMappingURL=compile.control_flow.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.control_flow.spec.js","sourceRoot":"","sources":["../../src/compile.control_flow.spec.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
4
  */
5
5
  export { isTypeValueEqual } from "./type_of_type.js";
6
- export { printTypeValue, EAST_IR_SYMBOL, EAST_CAPTURES_SYMBOL, EAST_SOURCE_MAP_SYMBOL, requiresBoxing, ReturnException, type ContextValue, type RuntimeContext, } from "./compile/runtime.js";
6
+ export { printTypeValue, EAST_IR_SYMBOL, EAST_CAPTURES_SYMBOL, EAST_SOURCE_MAP_SYMBOL, requiresBoxing, type ContextValue, type RuntimeContext, } from "./compile/runtime.js";
7
7
  export { compile_internal } from "./compile/ir.js";
8
8
  export { applyTypeParameters } from "./compile/type_parameters.js";
9
9
  //# sourceMappingURL=compile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/compile.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,sBAAsB,EAC5E,cAAc,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,GACxE,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/compile.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,sBAAsB,EAC5E,cAAc,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,GACvD,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -7,7 +7,7 @@
7
7
  * module per node family, and the builtins with a module per domain. This
8
8
  * module names what the package exports from it. */
9
9
  export { isTypeValueEqual } from "./type_of_type.js";
10
- export { printTypeValue, EAST_IR_SYMBOL, EAST_CAPTURES_SYMBOL, EAST_SOURCE_MAP_SYMBOL, requiresBoxing, ReturnException, } from "./compile/runtime.js";
10
+ export { printTypeValue, EAST_IR_SYMBOL, EAST_CAPTURES_SYMBOL, EAST_SOURCE_MAP_SYMBOL, requiresBoxing, } from "./compile/runtime.js";
11
11
  export { compile_internal } from "./compile/ir.js";
12
12
  export { applyTypeParameters } from "./compile/type_parameters.js";
13
13
  //# sourceMappingURL=compile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/compile.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;oDAGoD;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,sBAAsB,EAC5E,cAAc,EAAE,eAAe,GAChC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/compile.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;oDAGoD;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,sBAAsB,EAC5E,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"eastir.d.ts","sourceRoot":"","sources":["../../src/eastir.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAEhE;;GAEG;AACH,qBAAa,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,EAAE,MAAM,SAAS,GAAG;IAEvC,EAAE,EAAE,UAAU;IAD1B,UAAU,EAAE,SAAS,GAAG,IAAI,CAAQ;gBACxB,EAAE,EAAE,UAAU;IASjC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE;SAAG,CAAC,IAAI,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KAAE,KAAK,WAAW,CAAC,MAAM,CAAC;CAuD3H;AAED;;GAEG;AACH,qBAAa,WAAW,CAAC,MAAM,SAAS,GAAG,EAAE,EAAE,MAAM,SAAS,GAAG;IAE5C,EAAE,EAAE,eAAe;IAD/B,UAAU,EAAE,SAAS,GAAG,IAAI,CAAQ;gBACxB,EAAE,EAAE,eAAe;IAStC;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE;SAAG,CAAC,IAAI,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KAAE,KAAK,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;CAsDpI"}
1
+ {"version":3,"file":"eastir.d.ts","sourceRoot":"","sources":["../../src/eastir.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAEhE;;GAEG;AACH,qBAAa,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,EAAE,MAAM,SAAS,GAAG;IAEvC,EAAE,EAAE,UAAU;IAD1B,UAAU,EAAE,SAAS,GAAG,IAAI,CAAQ;gBACxB,EAAE,EAAE,UAAU;IASjC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE;SAAG,CAAC,IAAI,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KAAE,KAAK,WAAW,CAAC,MAAM,CAAC;CA8C3H;AAED;;GAEG;AACH,qBAAa,WAAW,CAAC,MAAM,SAAS,GAAG,EAAE,EAAE,MAAM,SAAS,GAAG;IAE5C,EAAE,EAAE,eAAe;IAD/B,UAAU,EAAE,SAAS,GAAG,IAAI,CAAQ;gBACxB,EAAE,EAAE,eAAe;IAStC;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE;SAAG,CAAC,IAAI,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KAAE,KAAK,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;CA6CpI"}
@@ -3,7 +3,7 @@
3
3
  * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
4
  */
5
5
  import {} from "./types.js";
6
- import { compile_internal, ReturnException, EAST_IR_SYMBOL, EAST_SOURCE_MAP_SYMBOL } from "./compile.js";
6
+ import { compile_internal, EAST_IR_SYMBOL, EAST_SOURCE_MAP_SYMBOL } from "./compile.js";
7
7
  import { analyzeIR } from "./analyze.js";
8
8
  import { with_source_map } from "./location.js";
9
9
  /** A helper class wrapping East's "intermediate representation" (IR) for a free function.
@@ -44,22 +44,11 @@ export class EastIR {
44
44
  const compiled_expr = this.source_map
45
45
  ? with_source_map(this.source_map, compile_fn)
46
46
  : compile_fn();
47
- // instantiate the function (with no environment)
47
+ // instantiate the function (with no environment), which gives its value:
48
+ // a `return` is a signal its body gives back to it, never thrown
48
49
  const instantiated_function = compiled_expr({});
49
50
  // Return sync wrapper
50
- const wrapper = (...inputs) => {
51
- try {
52
- return instantiated_function(...inputs);
53
- }
54
- catch (e) {
55
- if (e instanceof ReturnException) {
56
- return e.value;
57
- }
58
- else {
59
- throw e;
60
- }
61
- }
62
- };
51
+ const wrapper = (...inputs) => instantiated_function(...inputs);
63
52
  // Attach IR and source map to wrapper for serialization support
64
53
  Object.defineProperty(wrapper, EAST_IR_SYMBOL, {
65
54
  value: this.ir,
@@ -114,22 +103,11 @@ export class AsyncEastIR {
114
103
  const compiled_expr = this.source_map
115
104
  ? with_source_map(this.source_map, compile_fn)
116
105
  : compile_fn();
117
- // instantiate the function (with no environment)
106
+ // instantiate the function (with no environment), which gives its value:
107
+ // a `return` is a signal its body gives back to it, never thrown
118
108
  const instantiated_function = compiled_expr({});
119
- // Return async wrapper
120
- const wrapper = async (...inputs) => {
121
- try {
122
- return await instantiated_function(...inputs);
123
- }
124
- catch (e) {
125
- if (e instanceof ReturnException) {
126
- return e.value;
127
- }
128
- else {
129
- throw e;
130
- }
131
- }
132
- };
109
+ // Return async wrapper: a promise, whether or not the body awaits
110
+ const wrapper = async (...inputs) => await instantiated_function(...inputs);
133
111
  // Attach IR and source map to wrapper for serialization support
134
112
  Object.defineProperty(wrapper, EAST_IR_SYMBOL, {
135
113
  value: this.ir,
@@ -1 +1 @@
1
- {"version":3,"file":"eastir.js","sourceRoot":"","sources":["../../src/eastir.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eastir.js","sourceRoot":"","sources":["../../src/eastir.ts"],"names":[],"mappings":"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"}
@@ -1510,6 +1510,45 @@ export declare class ArrayExpr<T extends any> extends Expr<ArrayType<T>> {
1510
1510
  */
1511
1511
  toTree<N extends EastType, K>(node: N, keyFn: Expr<FunctionType<[T, IntegerType], K>>, parentFn: SubtypeExprOrValue<FunctionType<[T, IntegerType], OptionType<NoInfer<K>>>>, buildFn: SubtypeExprOrValue<FunctionType<[T, IntegerType, ArrayType<NoInfer<N>>], NoInfer<N>>>): ArrayExpr<N>;
1512
1512
  toTree<N extends EastType, KeyFn extends (($: BlockBuilder<NeverType>, x: ExprType<T>, i: IntegerExpr) => any)>(node: N, keyFn: KeyFn, parentFn: SubtypeExprOrValue<FunctionType<[T, IntegerType], OptionType<TypeOf<ReturnType<NoInfer<KeyFn>>>>>>, buildFn: SubtypeExprOrValue<FunctionType<[T, IntegerType, ArrayType<NoInfer<N>>], NoInfer<N>>>): ArrayExpr<N>;
1513
+ /**
1514
+ * Every node of a tree of any depth whose roots are the array's elements, each with its path of indices from
1515
+ * its root, depth first: the inverse of {@link toTree}.
1516
+ *
1517
+ * `childrenFn` names each node's children, an array of the same element type — empty for a leaf. A root's
1518
+ * path is `[i]`, its child's `[i, j]`, and so on down. The nodes come each before its descendants, siblings
1519
+ * in array order, so a node's parent is the nearest node before it whose path its own extends.
1520
+ *
1521
+ * @param childrenFn - Function taking (element, index) and returning the node's children
1522
+ * @returns An ArrayExpr of every node, `{ path, node }`, depth first
1523
+ *
1524
+ * @remarks
1525
+ * - `childrenFn` runs once per node, in the result's order. A node's children are read as it is walked.
1526
+ * - The walk is iterative, so a deep tree costs no stack. Each node's path is an array of its own, so a
1527
+ * chain n deep holds n(n+1)/2 path elements.
1528
+ * - {@link toTree} takes the result back, its key the path and a node's parent its path less its last index.
1529
+ *
1530
+ * @example
1531
+ * ```ts
1532
+ * const TaskType = RecursiveType(self => StructType({ name: StringType, subtasks: ArrayType(self) }));
1533
+ *
1534
+ * const names = East.function([ArrayType(TaskType)], ArrayType(StringType), ($, tasks) => {
1535
+ * $.return(tasks.flattenTree(($, task, i) => task.unwrap().subtasks)
1536
+ * .map(($, entry) => Expr.str`${entry.path.size()} ${entry.node.unwrap().name}`));
1537
+ * });
1538
+ * const compiled = East.compile(names, []);
1539
+ * compiled([
1540
+ * { name: "Build", subtasks: [{ name: "Compile", subtasks: [] }, { name: "Link", subtasks: [] }] },
1541
+ * { name: "Test", subtasks: [] },
1542
+ * ]);
1543
+ * // ["1 Build", "2 Compile", "2 Link", "1 Test"]
1544
+ * ```
1545
+ *
1546
+ * @see {@link DictExpr.flattenTree} for a tree whose children are a dictionary.
1547
+ */
1548
+ flattenTree(childrenFn: SubtypeExprOrValue<FunctionType<[T, IntegerType], ArrayType<T>>>): ArrayExpr<StructType<{
1549
+ path: ArrayType<IntegerType>;
1550
+ node: T;
1551
+ }>>;
1513
1552
  /**
1514
1553
  * Group array elements by a key function, initialize each group, and reduce within each group.
1515
1554
  *