@elaraai/east 0.0.1-beta.28 → 0.0.1-beta.29

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 (81) hide show
  1. package/dist/src/analyze.d.ts.map +1 -1
  2. package/dist/src/analyze.js +12 -4
  3. package/dist/src/analyze.js.map +1 -1
  4. package/dist/src/ast.d.ts +33 -33
  5. package/dist/src/ast.d.ts.map +1 -1
  6. package/dist/src/ast_to_ir.d.ts +2 -2
  7. package/dist/src/ast_to_ir.d.ts.map +1 -1
  8. package/dist/src/ast_to_ir.js +100 -100
  9. package/dist/src/ast_to_ir.js.map +1 -1
  10. package/dist/src/compile.d.ts +20 -1
  11. package/dist/src/compile.d.ts.map +1 -1
  12. package/dist/src/compile.js +103 -84
  13. package/dist/src/compile.js.map +1 -1
  14. package/dist/src/error.d.ts +8 -1
  15. package/dist/src/error.d.ts.map +1 -1
  16. package/dist/src/error.js +11 -1
  17. package/dist/src/error.js.map +1 -1
  18. package/dist/src/expr/array.js +48 -48
  19. package/dist/src/expr/array.js.map +1 -1
  20. package/dist/src/expr/ast.d.ts +1 -1
  21. package/dist/src/expr/ast.d.ts.map +1 -1
  22. package/dist/src/expr/ast.js +14 -14
  23. package/dist/src/expr/ast.js.map +1 -1
  24. package/dist/src/expr/asyncfunction.js +1 -1
  25. package/dist/src/expr/asyncfunction.js.map +1 -1
  26. package/dist/src/expr/blob.js +7 -7
  27. package/dist/src/expr/blob.js.map +1 -1
  28. package/dist/src/expr/block.d.ts +2 -2
  29. package/dist/src/expr/block.d.ts.map +1 -1
  30. package/dist/src/expr/block.js +131 -131
  31. package/dist/src/expr/block.js.map +1 -1
  32. package/dist/src/expr/boolean.js +5 -5
  33. package/dist/src/expr/boolean.js.map +1 -1
  34. package/dist/src/expr/datetime.js +33 -33
  35. package/dist/src/expr/datetime.js.map +1 -1
  36. package/dist/src/expr/dict.js +55 -55
  37. package/dist/src/expr/dict.js.map +1 -1
  38. package/dist/src/expr/expr.d.ts +1 -1
  39. package/dist/src/expr/expr.d.ts.map +1 -1
  40. package/dist/src/expr/expr.js.map +1 -1
  41. package/dist/src/expr/float.js +16 -16
  42. package/dist/src/expr/float.js.map +1 -1
  43. package/dist/src/expr/function.js +1 -1
  44. package/dist/src/expr/function.js.map +1 -1
  45. package/dist/src/expr/integer.js +17 -17
  46. package/dist/src/expr/integer.js.map +1 -1
  47. package/dist/src/expr/libs/blob.js +2 -2
  48. package/dist/src/expr/libs/blob.js.map +1 -1
  49. package/dist/src/expr/libs/string.js +1 -1
  50. package/dist/src/expr/libs/string.js.map +1 -1
  51. package/dist/src/expr/recursive.js +2 -2
  52. package/dist/src/expr/recursive.js.map +1 -1
  53. package/dist/src/expr/ref.js +3 -3
  54. package/dist/src/expr/ref.js.map +1 -1
  55. package/dist/src/expr/set.js +45 -45
  56. package/dist/src/expr/set.js.map +1 -1
  57. package/dist/src/expr/string.js +22 -22
  58. package/dist/src/expr/string.js.map +1 -1
  59. package/dist/src/expr/struct.d.ts +1 -1
  60. package/dist/src/expr/struct.d.ts.map +1 -1
  61. package/dist/src/expr/struct.js +1 -1
  62. package/dist/src/expr/struct.js.map +1 -1
  63. package/dist/src/expr/variant.js +2 -2
  64. package/dist/src/expr/variant.js.map +1 -1
  65. package/dist/src/ir.d.ts +121 -114
  66. package/dist/src/ir.d.ts.map +1 -1
  67. package/dist/src/ir.js +49 -34
  68. package/dist/src/ir.js.map +1 -1
  69. package/dist/src/location.d.ts +30 -10
  70. package/dist/src/location.d.ts.map +1 -1
  71. package/dist/src/location.js +70 -28
  72. package/dist/src/location.js.map +1 -1
  73. package/dist/src/serialization/beast2.d.ts +1 -1
  74. package/dist/src/serialization/beast2.d.ts.map +1 -1
  75. package/dist/src/serialization/beast2.js +131 -22
  76. package/dist/src/serialization/beast2.js.map +1 -1
  77. package/dist/src/serialization/index.d.ts +1 -1
  78. package/dist/src/serialization/index.d.ts.map +1 -1
  79. package/dist/src/serialization/index.js +1 -1
  80. package/dist/src/serialization/index.js.map +1 -1
  81. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ast_to_ir.js","sourceRoot":"","sources":["../../src/ast_to_ir.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast_to_ir.js","sourceRoot":"","sources":["../../src/ast_to_ir.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type IR } from "./ir.js";
2
+ import { variant } from "./containers/variant.js";
2
3
  import { isTypeValueEqual, type EastTypeValue } from "./type_of_type.js";
3
4
  import type { AnalyzedIR } from "./analyze.js";
4
5
  import type { PlatformFunction } from "./platform.js";
@@ -9,6 +10,24 @@ export declare const printTypeValue: (type: EastTypeValue) => string;
9
10
  * This enables serialization of free functions (functions with no captures).
10
11
  */
11
12
  export declare const EAST_IR_SYMBOL: unique symbol;
13
+ /**
14
+ * Symbol used to attach capture values to compiled functions.
15
+ * This enables serialization of closures (functions with captures).
16
+ */
17
+ export declare const EAST_CAPTURES_SYMBOL: unique symbol;
18
+ /**
19
+ * Context values are stored as variants to distinguish regular values from boxed mutable captures.
20
+ * - variant("value", x): regular immutable or non-captured mutable variable
21
+ * - variant("boxed", x): mutable captured variable (box enables shared mutation across closures)
22
+ */
23
+ export type ContextValue<T = unknown> = variant<"value", T> | variant<"boxed", T>;
24
+ /** Runtime context mapping variable names to their wrapped values */
25
+ export type RuntimeContext = Record<string, ContextValue>;
26
+ /** Determines if a variable requires boxing (mutable + captured) */
27
+ export declare function requiresBoxing(variable: {
28
+ mutable: boolean;
29
+ captured: boolean;
30
+ }): boolean;
12
31
  /** @internal An exception throw for the purpose of early function return */
13
32
  export declare class ReturnException {
14
33
  value: any;
@@ -22,7 +41,7 @@ export declare class ReturnException {
22
41
  *
23
42
  * @internal
24
43
  */
25
- export declare function compile_internal(ir: AnalyzedIR, ctx: Record<string, EastTypeValue>, platform: Record<string, (...args: any[]) => any>, asyncPlatformFns: Set<string>, platformDef: PlatformFunction[], fresh_ctx?: boolean, compilingNodes?: Set<IR>): (ctx: Record<string, any>) => any;
44
+ export declare function compile_internal(ir: AnalyzedIR, ctx: Record<string, EastTypeValue>, platform: Record<string, (...args: any[]) => any>, asyncPlatformFns: Set<string>, platformDef: PlatformFunction[], fresh_ctx?: boolean, compilingNodes?: Set<IR>): (ctx: RuntimeContext) => any;
26
45
  /** @internal */
27
46
  export declare function applyTypeParameters(t: EastTypeValue | string, params: Map<string, EastTypeValue>): EastTypeValue;
28
47
  //# sourceMappingURL=compile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/compile.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAE,EAA0C,MAAM,SAAS,CAAC;AAiB1E,OAAO,EAAqB,gBAAgB,EAAE,KAAK,aAAa,EAA+E,MAAM,mBAAmB,CAAC;AACzK,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC5B,eAAO,MAAM,cAAc,EAAkC,CAAC,IAAI,EAAE,aAAa,KAAK,MAAM,CAAC;AAE7F;;;GAGG;AACH,eAAO,MAAM,cAAc,eAAwB,CAAC;AAoBpD,4EAA4E;AAC5E,qBAAa,eAAe;IACP,KAAK,EAAE,GAAG;gBAAV,KAAK,EAAE,GAAG;CAC9B;AAYD;;;;;;;EAOE;AACF,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE,SAAS,GAAE,OAAc,EAAE,cAAc,GAAE,GAAG,CAAC,EAAE,CAAa,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,CA6hCzS;AAy3DD,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,aAAa,CA8BhH"}
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/compile.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAE,EAA0C,MAAM,SAAS,CAAC;AAQ1E,OAAO,EAAE,OAAO,EAAe,MAAM,yBAAyB,CAAC;AAS/D,OAAO,EAAqB,gBAAgB,EAAE,KAAK,aAAa,EAA+E,MAAM,mBAAmB,CAAC;AACzK,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC5B,eAAO,MAAM,cAAc,EAAkC,CAAC,IAAI,EAAE,aAAa,KAAK,MAAM,CAAC;AAE7F;;;GAGG;AACH,eAAO,MAAM,cAAc,eAAwB,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,oBAAoB,eAA8B,CAAC;AAMhE;;;;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;AA+BD,4EAA4E;AAC5E,qBAAa,eAAe;IACP,KAAK,EAAE,GAAG;gBAAV,KAAK,EAAE,GAAG;CAC9B;AAYD;;;;;;;EAOE;AACF,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE,SAAS,GAAE,OAAc,EAAE,cAAc,GAAE,GAAG,CAAC,EAAE,CAAa,GAAG,CAAC,GAAG,EAAE,cAAc,KAAK,GAAG,CAkiCpS;AAy3DD,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,aAAa,CA8BhH"}
@@ -12,7 +12,7 @@ import { invertFor } from "./patch/invert.js";
12
12
  import { ConflictError } from "./patch/index.js";
13
13
  import { printFor, parseFor } from "./serialization/east.js";
14
14
  import { variant } from "./containers/variant.js";
15
- import { EastError } from "./error.js";
15
+ import { EastError, InternalError } from "./error.js";
16
16
  import { SortedSet } from "./containers/sortedset.js";
17
17
  import { SortedMap } from "./containers/sortedmap.js";
18
18
  import { BufferWriter } from "./serialization/binary-utils.js";
@@ -28,6 +28,24 @@ export const printTypeValue = printFor(EastTypeValueType);
28
28
  * This enables serialization of free functions (functions with no captures).
29
29
  */
30
30
  export const EAST_IR_SYMBOL = Symbol.for("east.ir");
31
+ /**
32
+ * Symbol used to attach capture values to compiled functions.
33
+ * This enables serialization of closures (functions with captures).
34
+ */
35
+ export const EAST_CAPTURES_SYMBOL = Symbol.for("east.captures");
36
+ /** Determines if a variable requires boxing (mutable + captured) */
37
+ export function requiresBoxing(variable) {
38
+ return variable.mutable && variable.captured;
39
+ }
40
+ /** Get a context value, throwing InternalError if missing */
41
+ function getContextValue(ctx, name) {
42
+ const value = ctx[name];
43
+ if (value === undefined) {
44
+ throw new InternalError(`Variable '${name}' not found in runtime context`);
45
+ }
46
+ return value;
47
+ }
48
+ // =============================================================================
31
49
  /** @internal Track iteration locks to prevent concurrent modification */
32
50
  const iterationLocks = new WeakMap();
33
51
  /** @internal Lock a collection for iteration (prevents size/keyset modifications) */
@@ -111,8 +129,8 @@ export function compile_internal(ir, ctx, platform, asyncPlatformFns, platformDe
111
129
  catch (e) {
112
130
  if (e instanceof EastError) {
113
131
  const new_ctx = Object.create(ctx);
114
- new_ctx[message_name] = e.message;
115
- new_ctx[stack_name] = e.location;
132
+ new_ctx[message_name] = variant("value", e.message);
133
+ new_ctx[stack_name] = variant("value", e.location);
116
134
  return await catch_body(new_ctx);
117
135
  }
118
136
  else {
@@ -129,8 +147,8 @@ export function compile_internal(ir, ctx, platform, asyncPlatformFns, platformDe
129
147
  catch (e) {
130
148
  if (e instanceof EastError) {
131
149
  const new_ctx = Object.create(ctx);
132
- new_ctx[message_name] = e.message;
133
- new_ctx[stack_name] = e.location;
150
+ new_ctx[message_name] = variant("value", e.message);
151
+ new_ctx[stack_name] = variant("value", e.location);
134
152
  return await catch_body(new_ctx);
135
153
  }
136
154
  else {
@@ -152,8 +170,8 @@ export function compile_internal(ir, ctx, platform, asyncPlatformFns, platformDe
152
170
  catch (e) {
153
171
  if (e instanceof EastError) {
154
172
  const new_ctx = Object.create(ctx);
155
- new_ctx[message_name] = e.message;
156
- new_ctx[stack_name] = e.location;
173
+ new_ctx[message_name] = variant("value", e.message);
174
+ new_ctx[stack_name] = variant("value", e.location);
157
175
  return catch_body(new_ctx);
158
176
  }
159
177
  else {
@@ -170,8 +188,8 @@ export function compile_internal(ir, ctx, platform, asyncPlatformFns, platformDe
170
188
  catch (e) {
171
189
  if (e instanceof EastError) {
172
190
  const new_ctx = Object.create(ctx);
173
- new_ctx[message_name] = e.message;
174
- new_ctx[stack_name] = e.location;
191
+ new_ctx[message_name] = variant("value", e.message);
192
+ new_ctx[stack_name] = variant("value", e.location);
175
193
  return catch_body(new_ctx);
176
194
  }
177
195
  else {
@@ -187,73 +205,58 @@ export function compile_internal(ir, ctx, platform, asyncPlatformFns, platformDe
187
205
  }
188
206
  else if (ir.type === "Variable") {
189
207
  const name = ir.value.name;
190
- if (ir.value.mutable && ir.value.captured) {
191
- return (ctx) => ctx[name].x;
192
- }
193
- else {
194
- return (ctx) => ctx[name];
195
- }
208
+ // All context values are variants - read via .value
209
+ return (ctx) => getContextValue(ctx, name).value;
196
210
  }
197
211
  else if (ir.type === "Let") {
198
212
  const compiled_statement = compile_internal(ir.value.value, ctx, platform, asyncPlatformFns, platformDef, false, compilingNodes);
199
213
  const name = ir.value.variable.value.name;
200
214
  ctx[name] = ir.value.variable.value.type;
201
- if (ir.value.variable.value.mutable && ir.value.variable.value.captured) {
202
- if (ir.value.isAsync) {
203
- return async (ctx) => {
204
- ctx[name] = { x: await compiled_statement(ctx) };
205
- return null;
206
- };
207
- }
208
- else {
209
- return (ctx) => {
210
- ctx[name] = { x: compiled_statement(ctx) };
211
- return null;
212
- };
213
- }
215
+ const boxed = requiresBoxing(ir.value.variable.value);
216
+ if (ir.value.isAsync) {
217
+ return async (ctx) => {
218
+ ctx[name] = boxed
219
+ ? variant("boxed", await compiled_statement(ctx))
220
+ : variant("value", await compiled_statement(ctx));
221
+ return null;
222
+ };
214
223
  }
215
224
  else {
216
- if (ir.value.isAsync) {
217
- return async (ctx) => {
218
- ctx[name] = await compiled_statement(ctx);
219
- return null;
220
- };
221
- }
222
- else {
223
- return (ctx) => {
224
- ctx[name] = compiled_statement(ctx);
225
- return null;
226
- };
227
- }
225
+ return (ctx) => {
226
+ ctx[name] = boxed
227
+ ? variant("boxed", compiled_statement(ctx))
228
+ : variant("value", compiled_statement(ctx));
229
+ return null;
230
+ };
228
231
  }
229
232
  }
230
233
  else if (ir.type === "Assign") {
231
234
  const name = ir.value.variable.value.name;
232
235
  const compiled_statement = compile_internal(ir.value.value, ctx, platform, asyncPlatformFns, platformDef, false, compilingNodes);
233
- if (ir.value.variable.value.mutable && ir.value.variable.value.captured) {
236
+ if (requiresBoxing(ir.value.variable.value)) {
237
+ // Boxed variables: mutate in place via .value
234
238
  if (ir.value.isAsync) {
235
239
  return async (ctx) => {
236
- const value = await compiled_statement(ctx);
237
- ctx[name].x = value;
240
+ getContextValue(ctx, name).value = await compiled_statement(ctx);
238
241
  return null;
239
242
  };
240
243
  }
241
244
  else {
242
245
  return (ctx) => {
243
- const value = compiled_statement(ctx);
244
- ctx[name].x = value;
246
+ getContextValue(ctx, name).value = compiled_statement(ctx);
245
247
  return null;
246
248
  };
247
249
  }
248
250
  }
249
251
  else {
252
+ // Non-boxed variables: replace the variant
250
253
  if (ir.value.isAsync) {
251
254
  return async (ctx) => {
252
255
  const value = await compiled_statement(ctx);
253
256
  // We need to check in which prototype the variable lives
254
257
  while (!Object.hasOwn(ctx, name))
255
258
  ctx = Object.getPrototypeOf(ctx);
256
- ctx[name] = value;
259
+ ctx[name] = variant("value", value);
257
260
  return null;
258
261
  };
259
262
  }
@@ -263,7 +266,7 @@ export function compile_internal(ir, ctx, platform, asyncPlatformFns, platformDe
263
266
  // We need to check in which prototype the variable lives
264
267
  while (!Object.hasOwn(ctx, name))
265
268
  ctx = Object.getPrototypeOf(ctx);
266
- ctx[name] = value;
269
+ ctx[name] = variant("value", value);
267
270
  return null;
268
271
  };
269
272
  }
@@ -285,28 +288,29 @@ export function compile_internal(ir, ctx, platform, asyncPlatformFns, platformDe
285
288
  return compile_internal(ir.value.value, ctx, platform, asyncPlatformFns, platformDef, false, compilingNodes);
286
289
  }
287
290
  else if (ir.type === "Function") {
288
- const ctx2 = {};
291
+ // Compile-time type context for body compilation
292
+ const typeCtx = {};
289
293
  for (const variable of ir.value.captures) {
290
- ctx2[variable.value.name] = variable.value.type;
294
+ typeCtx[variable.value.name] = variable.value.type;
291
295
  }
292
296
  for (const parameter of ir.value.parameters) {
293
- const parameter_name = parameter.value.name;
294
- ctx2[parameter_name] = parameter.value.type;
297
+ typeCtx[parameter.value.name] = parameter.value.type;
295
298
  }
296
- const compiled_body = compile_internal(ir.value.body, ctx2, platform, asyncPlatformFns, platformDef, true, compilingNodes);
299
+ const compiled_body = compile_internal(ir.value.body, typeCtx, platform, asyncPlatformFns, platformDef, true, compilingNodes);
297
300
  const capture_names = ir.value.captures.map(v => v.value.name);
298
301
  const parameter_names = ir.value.parameters.map(v => v.value.name);
299
302
  // Store original IR for potential serialization
300
303
  const originalIR = ir;
301
304
  return (ctx) => {
302
- const ctx2 = {};
305
+ // Runtime context for captured values
306
+ const captureCtx = {};
303
307
  for (const name of capture_names) {
304
- ctx2[name] = ctx[name];
308
+ captureCtx[name] = getContextValue(ctx, name);
305
309
  }
306
310
  const fn = (...args) => {
307
- const ctx3 = { ...ctx2 };
308
- parameter_names.forEach((name, i) => ctx3[name] = args[i]);
309
- return compiled_body(ctx3);
311
+ const fnCtx = { ...captureCtx };
312
+ parameter_names.forEach((name, i) => fnCtx[name] = variant("value", args[i]));
313
+ return compiled_body(fnCtx);
310
314
  };
311
315
  // Attach IR to function for serialization support
312
316
  Object.defineProperty(fn, EAST_IR_SYMBOL, {
@@ -315,32 +319,40 @@ export function compile_internal(ir, ctx, platform, asyncPlatformFns, platformDe
315
319
  enumerable: false,
316
320
  configurable: false
317
321
  });
322
+ // Attach capture values for serialization support
323
+ Object.defineProperty(fn, EAST_CAPTURES_SYMBOL, {
324
+ value: captureCtx,
325
+ writable: false,
326
+ enumerable: false,
327
+ configurable: false
328
+ });
318
329
  return fn;
319
330
  };
320
331
  }
321
332
  else if (ir.type === "AsyncFunction") {
322
- const ctx2 = {};
333
+ // Compile-time type context for body compilation
334
+ const typeCtx = {};
323
335
  for (const variable of ir.value.captures) {
324
- ctx2[variable.value.name] = variable.value.type;
336
+ typeCtx[variable.value.name] = variable.value.type;
325
337
  }
326
338
  for (const parameter of ir.value.parameters) {
327
- const parameter_name = parameter.value.name;
328
- ctx2[parameter_name] = parameter.value.type;
339
+ typeCtx[parameter.value.name] = parameter.value.type;
329
340
  }
330
- const compiled_body = compile_internal(ir.value.body, ctx2, platform, asyncPlatformFns, platformDef, true, compilingNodes);
341
+ const compiled_body = compile_internal(ir.value.body, typeCtx, platform, asyncPlatformFns, platformDef, true, compilingNodes);
331
342
  const capture_names = ir.value.captures.map(v => v.value.name);
332
343
  const parameter_names = ir.value.parameters.map(v => v.value.name);
333
344
  // Store original IR for potential serialization
334
345
  const originalIR = ir;
335
346
  return (ctx) => {
336
- const ctx2 = {};
347
+ // Runtime context for captured values
348
+ const captureCtx = {};
337
349
  for (const name of capture_names) {
338
- ctx2[name] = ctx[name];
350
+ captureCtx[name] = getContextValue(ctx, name);
339
351
  }
340
352
  const fn = (...args) => {
341
- const ctx3 = { ...ctx2 };
342
- parameter_names.forEach((name, i) => ctx3[name] = args[i]);
343
- return compiled_body(ctx3); // Promise can pass through in tail position
353
+ const fnCtx = { ...captureCtx };
354
+ parameter_names.forEach((name, i) => fnCtx[name] = variant("value", args[i]));
355
+ return compiled_body(fnCtx); // Promise can pass through in tail position
344
356
  };
345
357
  // Attach IR to function for serialization support
346
358
  Object.defineProperty(fn, EAST_IR_SYMBOL, {
@@ -349,6 +361,13 @@ export function compile_internal(ir, ctx, platform, asyncPlatformFns, platformDe
349
361
  enumerable: false,
350
362
  configurable: false
351
363
  });
364
+ // Attach capture values for serialization support
365
+ Object.defineProperty(fn, EAST_CAPTURES_SYMBOL, {
366
+ value: captureCtx,
367
+ writable: false,
368
+ enumerable: false,
369
+ configurable: false
370
+ });
352
371
  return fn;
353
372
  };
354
373
  }
@@ -371,7 +390,7 @@ export function compile_internal(ir, ctx, platform, asyncPlatformFns, platformDe
371
390
  return e.value;
372
391
  }
373
392
  else if (e instanceof EastError) {
374
- e.location.push(location); // The fact that we need to push the call location not the definition location means we need to handle this here
393
+ e.location.push(...location); // The fact that we need to push the call location not the definition location means we need to handle this here
375
394
  throw (e);
376
395
  }
377
396
  else if (e instanceof ContinueException) {
@@ -396,7 +415,7 @@ export function compile_internal(ir, ctx, platform, asyncPlatformFns, platformDe
396
415
  return e.value;
397
416
  }
398
417
  else if (e instanceof EastError) {
399
- e.location.push(location); // The fact that we need to push the call location not the definition location means we need to handle this here
418
+ e.location.push(...location); // The fact that we need to push the call location not the definition location means we need to handle this here
400
419
  throw (e);
401
420
  }
402
421
  else if (e instanceof ContinueException) {
@@ -429,7 +448,7 @@ export function compile_internal(ir, ctx, platform, asyncPlatformFns, platformDe
429
448
  return e.value;
430
449
  }
431
450
  else if (e instanceof EastError) {
432
- e.location.push(location); // The fact that we need to push the call location not the definition location means we need to handle this here
451
+ e.location.push(...location); // The fact that we need to push the call location not the definition location means we need to handle this here
433
452
  throw (e);
434
453
  }
435
454
  else if (e instanceof ContinueException) {
@@ -506,7 +525,7 @@ export function compile_internal(ir, ctx, platform, asyncPlatformFns, platformDe
506
525
  return async (ctx) => {
507
526
  const v = await compiled_variant(ctx);
508
527
  const ctx2 = Object.create(ctx);
509
- ctx2[data_names[v.type]] = v.value;
528
+ ctx2[data_names[v.type]] = variant("value", v.value);
510
529
  return await compiled_cases[v.type](ctx2);
511
530
  };
512
531
  }
@@ -514,7 +533,7 @@ export function compile_internal(ir, ctx, platform, asyncPlatformFns, platformDe
514
533
  return async (ctx) => {
515
534
  const v = compiled_variant(ctx);
516
535
  const ctx2 = Object.create(ctx);
517
- ctx2[data_names[v.type]] = v.value;
536
+ ctx2[data_names[v.type]] = variant("value", v.value);
518
537
  return await compiled_cases[v.type](ctx2);
519
538
  };
520
539
  }
@@ -523,7 +542,7 @@ export function compile_internal(ir, ctx, platform, asyncPlatformFns, platformDe
523
542
  return (ctx) => {
524
543
  const v = compiled_variant(ctx);
525
544
  const ctx2 = Object.create(ctx);
526
- ctx2[data_names[v.type]] = v.value;
545
+ ctx2[data_names[v.type]] = variant("value", v.value);
527
546
  return compiled_cases[v.type](ctx2);
528
547
  };
529
548
  }
@@ -595,8 +614,8 @@ export function compile_internal(ir, ctx, platform, asyncPlatformFns, platformDe
595
614
  try {
596
615
  for (const [key, value] of array.entries()) {
597
616
  const ctx2 = Object.create(ctx);
598
- ctx2[key_name] = BigInt(key);
599
- ctx2[value_name] = value;
617
+ ctx2[key_name] = variant("value", BigInt(key));
618
+ ctx2[value_name] = variant("value", value);
600
619
  try {
601
620
  await compiled_body(ctx2);
602
621
  }
@@ -626,8 +645,8 @@ export function compile_internal(ir, ctx, platform, asyncPlatformFns, platformDe
626
645
  try {
627
646
  for (const [key, value] of array.entries()) {
628
647
  const ctx2 = Object.create(ctx);
629
- ctx2[key_name] = BigInt(key);
630
- ctx2[value_name] = value;
648
+ ctx2[key_name] = variant("value", BigInt(key));
649
+ ctx2[value_name] = variant("value", value);
631
650
  try {
632
651
  compiled_body(ctx2);
633
652
  }
@@ -666,7 +685,7 @@ export function compile_internal(ir, ctx, platform, asyncPlatformFns, platformDe
666
685
  try {
667
686
  for (const key of set) {
668
687
  const ctx2 = Object.create(ctx);
669
- ctx2[key_name] = key;
688
+ ctx2[key_name] = variant("value", key);
670
689
  try {
671
690
  await compiled_body(ctx2);
672
691
  }
@@ -696,7 +715,7 @@ export function compile_internal(ir, ctx, platform, asyncPlatformFns, platformDe
696
715
  try {
697
716
  for (const key of set) {
698
717
  const ctx2 = Object.create(ctx);
699
- ctx2[key_name] = key;
718
+ ctx2[key_name] = variant("value", key);
700
719
  try {
701
720
  compiled_body(ctx2);
702
721
  }
@@ -738,8 +757,8 @@ export function compile_internal(ir, ctx, platform, asyncPlatformFns, platformDe
738
757
  try {
739
758
  for (const [key, value] of dict) {
740
759
  const ctx2 = Object.create(ctx);
741
- ctx2[key_name] = key;
742
- ctx2[value_name] = value;
760
+ ctx2[key_name] = variant("value", key);
761
+ ctx2[value_name] = variant("value", value);
743
762
  try {
744
763
  await compiled_body(ctx2);
745
764
  }
@@ -769,8 +788,8 @@ export function compile_internal(ir, ctx, platform, asyncPlatformFns, platformDe
769
788
  try {
770
789
  for (const [key, value] of dict) {
771
790
  const ctx2 = Object.create(ctx);
772
- ctx2[key_name] = key;
773
- ctx2[value_name] = value;
791
+ ctx2[key_name] = variant("value", key);
792
+ ctx2[value_name] = variant("value", value);
774
793
  try {
775
794
  compiled_body(ctx2);
776
795
  }
@@ -1226,7 +1245,7 @@ function call_function(location, compiled_f, ...args) {
1226
1245
  return e.value;
1227
1246
  }
1228
1247
  else if (e instanceof EastError) {
1229
- e.location.push(location); // The fact that we need to push the call location not the definition location means we need to handle this here
1248
+ e.location.push(...location); // The fact that we need to push the call location not the definition location means we need to handle this here
1230
1249
  throw (e);
1231
1250
  }
1232
1251
  else if (e instanceof ContinueException) {