@kernlang/core 4.1.0 → 4.1.1-canary.227.1.dcaa3f78

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 (57) hide show
  1. package/dist/codegen/body-ts.js +18 -0
  2. package/dist/codegen/body-ts.js.map +1 -1
  3. package/dist/index.d.ts +5 -4
  4. package/dist/index.js +7 -2
  5. package/dist/index.js.map +1 -1
  6. package/dist/ir/semantics/assign.js +4 -4
  7. package/dist/ir/semantics/assign.js.map +1 -1
  8. package/dist/ir/semantics/branch.js +11 -9
  9. package/dist/ir/semantics/branch.js.map +1 -1
  10. package/dist/ir/semantics/each.js +11 -10
  11. package/dist/ir/semantics/each.js.map +1 -1
  12. package/dist/ir/semantics/expression-v1.js +17 -17
  13. package/dist/ir/semantics/expression-v1.js.map +1 -1
  14. package/dist/ir/semantics/fmt.js +3 -3
  15. package/dist/ir/semantics/fmt.js.map +1 -1
  16. package/dist/ir/semantics/for.js +14 -10
  17. package/dist/ir/semantics/for.js.map +1 -1
  18. package/dist/ir/semantics/if.js +12 -4
  19. package/dist/ir/semantics/if.js.map +1 -1
  20. package/dist/ir/semantics/index.d.ts +35 -1
  21. package/dist/ir/semantics/index.js +59 -1
  22. package/dist/ir/semantics/index.js.map +1 -1
  23. package/dist/ir/semantics/let.js +3 -3
  24. package/dist/ir/semantics/let.js.map +1 -1
  25. package/dist/ir/semantics/portable-scalar.js +6 -5
  26. package/dist/ir/semantics/portable-scalar.js.map +1 -1
  27. package/dist/ir/semantics/primitives.js +3 -3
  28. package/dist/ir/semantics/primitives.js.map +1 -1
  29. package/dist/ir/semantics/print.d.ts +36 -0
  30. package/dist/ir/semantics/print.js +102 -0
  31. package/dist/ir/semantics/print.js.map +1 -0
  32. package/dist/ir/semantics/register-all.js +2 -0
  33. package/dist/ir/semantics/register-all.js.map +1 -1
  34. package/dist/ir/semantics/testing.d.ts +18 -0
  35. package/dist/ir/semantics/testing.js +19 -0
  36. package/dist/ir/semantics/testing.js.map +1 -0
  37. package/dist/ir/semantics/try.js +6 -6
  38. package/dist/ir/semantics/try.js.map +1 -1
  39. package/dist/ir/semantics/while.js +7 -4
  40. package/dist/ir/semantics/while.js.map +1 -1
  41. package/dist/parser-validate-body-statements.js +1 -0
  42. package/dist/parser-validate-body-statements.js.map +1 -1
  43. package/dist/rag-retrieve-runner.d.ts +9 -1
  44. package/dist/rag-retrieve-runner.js +149 -2
  45. package/dist/rag-retrieve-runner.js.map +1 -1
  46. package/dist/runner.d.ts +28 -0
  47. package/dist/runner.js +30 -0
  48. package/dist/runner.js.map +1 -0
  49. package/dist/schema.js +8 -0
  50. package/dist/schema.js.map +1 -1
  51. package/dist/spec.d.ts +2 -2
  52. package/dist/spec.js +3 -1
  53. package/dist/spec.js.map +1 -1
  54. package/dist/testing.d.ts +16 -0
  55. package/dist/testing.js +17 -0
  56. package/dist/testing.js.map +1 -0
  57. package/package.json +9 -1
@@ -32,6 +32,58 @@ function cloneBindings(bindings) {
32
32
  out.set(key, cloneSemanticValue(value));
33
33
  return out;
34
34
  }
35
+ // ── Lexical scope chain ──────────────────────────────────────────────────────
36
+ // Generalized from the closure-evaluator scope in `lambda.ts`. A flat env
37
+ // (`parent === undefined`) makes every helper below behave IDENTICALLY to direct
38
+ // `env.bindings.get/set/has` — so migrating contracts onto these helpers is
39
+ // behavior-preserving until a child scope is actually introduced.
40
+ /**
41
+ * Open a child scope nested under `parent`. `let` binds in the child; reads and
42
+ * `assign` fall through to `parent`. Used for lexically-scoped blocks (a loop
43
+ * body iteration, a lambda call) so inner declarations are fresh per scope and
44
+ * mutations to outer bindings write through to where they were declared.
45
+ */
46
+ export function childEnv(parent) {
47
+ return { bindings: new Map(), parent, seed: parent.seed, now: parent.now };
48
+ }
49
+ /** The nearest scope in the chain that declares `name`, or undefined if unbound. */
50
+ function declaringScope(env, name) {
51
+ for (let cur = env; cur; cur = cur.parent) {
52
+ if (cur.bindings.has(name))
53
+ return cur;
54
+ }
55
+ return undefined;
56
+ }
57
+ /** True if `name` is bound anywhere in the scope chain. */
58
+ export function hasBinding(env, name) {
59
+ return declaringScope(env, name) !== undefined;
60
+ }
61
+ /** True if `name` is bound in the INNERMOST scope only (for `let`-redeclaration checks). */
62
+ export function hasOwnBinding(env, name) {
63
+ return env.bindings.has(name);
64
+ }
65
+ /** Read `name` walking the chain; returns `undefined` if unbound (pair with a prior has-check). */
66
+ export function getBinding(env, name) {
67
+ return declaringScope(env, name)?.bindings.get(name);
68
+ }
69
+ /** Declare `name` in the INNERMOST scope (`let`). Overwrites a same-scope binding. */
70
+ export function defineBinding(env, name, value) {
71
+ env.bindings.set(name, value);
72
+ }
73
+ /**
74
+ * Write `name` in its declaring scope (write-through, `assign`). If `name` is not
75
+ * declared anywhere in the chain, writes in the innermost scope — callers that
76
+ * require an existing binding must check [[hasBinding]] first (the `assign`
77
+ * contract does).
78
+ */
79
+ export function assignBinding(env, name, value) {
80
+ const scope = declaringScope(env, name) ?? env;
81
+ scope.bindings.set(name, value);
82
+ }
83
+ /** Delete `name` from the INNERMOST scope only (scope teardown). */
84
+ export function deleteOwnBinding(env, name) {
85
+ env.bindings.delete(name);
86
+ }
35
87
  function cloneSemanticValue(value) {
36
88
  if (Array.isArray(value))
37
89
  return value.map(cloneSemanticValue);
@@ -63,7 +115,13 @@ export function registerContract(contract) {
63
115
  CONTRACT_REGISTRY.set(contract.nodeType, contract);
64
116
  }
65
117
  export { serializeJson, serializeMarkdown, snapshotRegistry, } from './doc-generator.js';
66
- export { runAllContracts, runDifferential } from './harness.js';
118
+ // NOTE: the differential-TEST harness (`runDifferential`, `runAllContracts`,
119
+ // `DifferentialResult`, `Verdict`) is DELIBERATELY NOT re-exported here. It pulls
120
+ // the in-process TS-emitter leg (`harness → ts-leg → body-ts → closure-eligibility
121
+ // → typescript`, ~10MB) and is test-only. Keeping it out of this runtime barrel is
122
+ // what lets the standalone runner entry (`@kernlang/core/runner`) stay typescript-
123
+ // free. The harness lives in the sibling `./testing.js` barrel; the anti-rot guard
124
+ // `tests/runner-entry-import-graph.test.ts` pins the runner closure to zero TS.
67
125
  export { ReferenceRunnerError, referenceRun, referenceRunSequence } from './reference-runner.js';
68
126
  export { registerAllContracts } from './register-all.js';
69
127
  export { completionsEqual, deepEqual, emptyTrace, eventsEqual, tracesEqual } from './trace.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ir/semantics/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ir/semantics/index.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@
26
26
  * contract because TS and Python disagree on at least one observable edge.
27
27
  */
28
28
  import { parseExpression } from '../../parser-expression.js';
29
- import { registerContract } from './index.js';
29
+ import { defineBinding, hasOwnBinding, registerContract, } from './index.js';
30
30
  import { evalPortableValue, isPortableBindingName } from './portable-scalar.js';
31
31
  function asLetProps(ir) {
32
32
  return (ir.props ?? {});
@@ -35,7 +35,7 @@ function letPreconditions(ir, env) {
35
35
  const props = asLetProps(ir);
36
36
  if (!isPortableBindingName(props.name))
37
37
  return false;
38
- if (env.bindings.has(props.name))
38
+ if (hasOwnBinding(env, props.name))
39
39
  return false;
40
40
  if (!Object.hasOwn(ir.props ?? {}, 'value') || props.value === '')
41
41
  return false;
@@ -53,7 +53,7 @@ function letEffects(ir, env) {
53
53
  const props = asLetProps(ir);
54
54
  const name = props.name;
55
55
  const value = evalPortableValue(parseExpression(String(props.value)), env);
56
- env.bindings.set(name, value);
56
+ defineBinding(env, name, value);
57
57
  return { events: [{ op: 'assign', target: name, value }], completion: { kind: 'normal' } };
58
58
  }
59
59
  function letCompletion(ir, env) {
@@ -1 +1 @@
1
- {"version":3,"file":"let.js","sourceRoot":"","sources":["../../../src/ir/semantics/let.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"let.js","sourceRoot":"","sources":["../../../src/ir/semantics/let.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@
19
19
  */
20
20
  import { assertPortableDecimalLiteral, DECIMAL_DIV_ZERO_FAILCLOSE, DECIMAL_MOD_ZERO_FAILCLOSE, DECIMAL_POW_ZERO_NEGATIVE_EXP_FAILCLOSE, DECIMAL_SCALE_FAILCLOSE, kDecimalDiv, kDecimalMod, kDecimalPowInt, kernDecimalStr, makeKDecimal, } from '../../decimal/contract.js';
21
21
  import { assertNonZeroDecimalDivisor, assertPortableDecimalPow, DECIMAL_POW_NON_INTEGER_EXP_FAILCLOSE, } from '../../decimal/probe-gates.js';
22
+ import { getBinding, hasBinding } from './index.js';
22
23
  export const IDENT_RE = /^[A-Za-z_][A-Za-z0-9_]*$/;
23
24
  export const RESERVED_NAMES = new Set([
24
25
  'Array',
@@ -164,9 +165,9 @@ export function evalPortableValue(node, env) {
164
165
  case 'nullLit':
165
166
  return null;
166
167
  case 'ident': {
167
- if (!env.bindings.has(node.name))
168
+ if (!hasBinding(env, node.name))
168
169
  throw new Error(`portable: binding "${node.name}" not found`);
169
- return assertPortableScalar(env.bindings.get(node.name), `binding "${node.name}"`);
170
+ return assertPortableScalar(getBinding(env, node.name), `binding "${node.name}"`);
170
171
  }
171
172
  case 'unary': {
172
173
  const value = evalPortableValue(node.argument, env);
@@ -201,7 +202,7 @@ export function evalPortableValue(node, env) {
201
202
  if (node.object.kind !== 'ident') {
202
203
  throw new Error('portable: member access is only admitted on a caught-error binding');
203
204
  }
204
- const obj = env.bindings.get(node.object.name);
205
+ const obj = getBinding(env, node.object.name);
205
206
  if (!isCaughtErrorValue(obj)) {
206
207
  throw new Error(`portable: member access on "${node.object.name}" is outside the portable scalar domain`);
207
208
  }
@@ -467,7 +468,7 @@ function evalDecimalNode(node, env, KDecimal) {
467
468
  // the emitters lower through — so a wrapped producer evaluates natively.
468
469
  const inner = unwrapTransparent(node);
469
470
  if (inner.kind === 'ident') {
470
- const bound = env.bindings.get(inner.name);
471
+ const bound = getBinding(env, inner.name);
471
472
  if (!isDecimalValue(bound)) {
472
473
  throw new Error(`portable-decimal: binding "${inner.name}" is not a Decimal value`);
473
474
  }
@@ -530,7 +531,7 @@ function evalDecimalNode(node, env, KDecimal) {
530
531
  }
531
532
  }
532
533
  export function evalRunnerNativeDecimalScalarCall(node, env) {
533
- if (env.bindings.has('Decimal'))
534
+ if (hasBinding(env, 'Decimal'))
534
535
  return undefined;
535
536
  const method = decimalNamespaceMethod(node);
536
537
  if (method === null || !RUNNER_DECIMAL_COMPARATOR_METHODS.has(method))
@@ -1 +1 @@
1
- {"version":3,"file":"portable-scalar.js","sourceRoot":"","sources":["../../../src/ir/semantics/portable-scalar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"portable-scalar.js","sourceRoot":"","sources":["../../../src/ir/semantics/portable-scalar.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@
17
17
  * helper — it is never emitted by user code.
18
18
  */
19
19
  import { parseExpression } from '../../parser-expression.js';
20
- import { registerContract } from './index.js';
20
+ import { getBinding, registerContract } from './index.js';
21
21
  import { evalExplicitThrowError } from './portable-error.js';
22
22
  import { evalPortableValue } from './portable-scalar.js';
23
23
  const NO_FIXTURES = [];
@@ -151,7 +151,7 @@ export const breakIfEqualContract = {
151
151
  const name = ir.props?.name;
152
152
  return {
153
153
  events: [],
154
- completion: Object.is(env.bindings.get(name), ir.props?.value) ? { kind: 'break' } : { kind: 'normal' },
154
+ completion: Object.is(getBinding(env, name), ir.props?.value) ? { kind: 'break' } : { kind: 'normal' },
155
155
  };
156
156
  },
157
157
  completion: (ir, env) => breakIfEqualContract.effects(ir, env).completion,
@@ -166,7 +166,7 @@ export const assignIndexContract = {
166
166
  Object.hasOwn(ir.props, 'value'),
167
167
  effects: (ir, env) => {
168
168
  const targetName = ir.props?.target;
169
- const target = env.bindings.get(targetName);
169
+ const target = getBinding(env, targetName);
170
170
  if (!Array.isArray(target)) {
171
171
  throw new Error(`__assignIndex: binding "${targetName}" must be an array`);
172
172
  }
@@ -1 +1 @@
1
- {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../../src/ir/semantics/primitives.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../../src/ir/semantics/primitives.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * `print` runtime semantics — KERN's portable stdout primitive.
3
+ *
4
+ * Operational semantics:
5
+ * 1. Evaluate `value=` once over the portable-scalar domain
6
+ * (`evalPortableValue(parseExpression(value), env)`).
7
+ * 2. Coerce the result to its KERN-canonical string via {@link printText}
8
+ * (null -> "null", bool -> "true"/"false", string -> exact, finite SAFE
9
+ * integer -> base-10).
10
+ * 3. Emit ONE observable `{op:'stdout', text}` event and complete normally.
11
+ *
12
+ * Portability domain (identical fence philosophy to `fmt`'s `canonicalFmt`,
13
+ * TIGHTENED to safe integers):
14
+ * - Admitted: null, boolean, string, finite integer in the IEEE-754 safe
15
+ * range. For these, JS template-literal coercion (`console.log(`${x}`)`),
16
+ * the Python `_kern_fmt` helper (`print(_kern_fmt(x))`), and this reference
17
+ * all produce byte-identical output, so the 3-leg stdout is portable.
18
+ * - Fail-close (precondition fails -> the runner ABSTAINS): non-integer
19
+ * floats (the runner refuses to certify them even though both emitters
20
+ * happen to agree — mirrors `fmt`'s conservative integer-only rule),
21
+ * UNSAFE integers (|n| > 2^53-1: JS rounds `9007199254740993` to
22
+ * `...992` while CPython keeps full precision -> a REAL divergence, the
23
+ * one hole `Number.isInteger` would miss), and objects / arrays /
24
+ * undefined / NaN / Infinity.
25
+ *
26
+ * `print` carries no value and always completes normally; its only observable
27
+ * is the single stdout event. Production codegen lowers it to a real
28
+ * `console.log` / `print(...)` that appends exactly one newline on both
29
+ * targets — the trailing `\n` is the platform default, never hand-emitted.
30
+ */
31
+ import { type NodeContract } from './index.js';
32
+ export declare const printContract: NodeContract;
33
+ /** Idempotent registration. Test cleanup that clears the registry must re-call. */
34
+ export declare function registerPrintContract(): void;
35
+ /** Reset registration flag — only for test cleanup that clears the registry. */
36
+ export declare function _resetPrintContractForTest(): void;
@@ -0,0 +1,102 @@
1
+ /**
2
+ * `print` runtime semantics — KERN's portable stdout primitive.
3
+ *
4
+ * Operational semantics:
5
+ * 1. Evaluate `value=` once over the portable-scalar domain
6
+ * (`evalPortableValue(parseExpression(value), env)`).
7
+ * 2. Coerce the result to its KERN-canonical string via {@link printText}
8
+ * (null -> "null", bool -> "true"/"false", string -> exact, finite SAFE
9
+ * integer -> base-10).
10
+ * 3. Emit ONE observable `{op:'stdout', text}` event and complete normally.
11
+ *
12
+ * Portability domain (identical fence philosophy to `fmt`'s `canonicalFmt`,
13
+ * TIGHTENED to safe integers):
14
+ * - Admitted: null, boolean, string, finite integer in the IEEE-754 safe
15
+ * range. For these, JS template-literal coercion (`console.log(`${x}`)`),
16
+ * the Python `_kern_fmt` helper (`print(_kern_fmt(x))`), and this reference
17
+ * all produce byte-identical output, so the 3-leg stdout is portable.
18
+ * - Fail-close (precondition fails -> the runner ABSTAINS): non-integer
19
+ * floats (the runner refuses to certify them even though both emitters
20
+ * happen to agree — mirrors `fmt`'s conservative integer-only rule),
21
+ * UNSAFE integers (|n| > 2^53-1: JS rounds `9007199254740993` to
22
+ * `...992` while CPython keeps full precision -> a REAL divergence, the
23
+ * one hole `Number.isInteger` would miss), and objects / arrays /
24
+ * undefined / NaN / Infinity.
25
+ *
26
+ * `print` carries no value and always completes normally; its only observable
27
+ * is the single stdout event. Production codegen lowers it to a real
28
+ * `console.log` / `print(...)` that appends exactly one newline on both
29
+ * targets — the trailing `\n` is the platform default, never hand-emitted.
30
+ */
31
+ import { parseExpression } from '../../parser-expression.js';
32
+ import { registerContract } from './index.js';
33
+ import { evalPortableValue } from './portable-scalar.js';
34
+ const NO_FIXTURES = [];
35
+ /**
36
+ * KERN-canonical coercion of a printed value to its stdout text (WITHOUT the
37
+ * trailing newline — production codegen's `console.log`/`print` supplies that).
38
+ * Throws on any value outside the portable domain so the precondition can
39
+ * fail-close. `Number.isSafeInteger` (not `Number.isInteger`) closes the
40
+ * 2^53-precision hole: JS silently rounds large integers, Python does not.
41
+ */
42
+ function printText(value) {
43
+ if (value === null)
44
+ return 'null';
45
+ if (typeof value === 'boolean')
46
+ return value ? 'true' : 'false';
47
+ if (typeof value === 'string')
48
+ return value;
49
+ if (typeof value === 'number' && Number.isSafeInteger(value))
50
+ return String(value);
51
+ throw new Error('print: value must be a portable scalar (null, boolean, string, or safe integer)');
52
+ }
53
+ function resolvePrintText(ir, env) {
54
+ const raw = ir.props?.value;
55
+ if (typeof raw !== 'string')
56
+ throw new Error('print: value= must be a string expression');
57
+ return printText(evalPortableValue(parseExpression(raw), env));
58
+ }
59
+ function printPreconditions(ir, env) {
60
+ try {
61
+ resolvePrintText(ir, env);
62
+ return true;
63
+ }
64
+ catch {
65
+ return false;
66
+ }
67
+ }
68
+ function printEffects(ir, env) {
69
+ const text = resolvePrintText(ir, env);
70
+ return { events: [{ op: 'stdout', text }], completion: { kind: 'normal' } };
71
+ }
72
+ function printCompletion(_ir, _env) {
73
+ return { kind: 'normal' };
74
+ }
75
+ const FORBIDDEN_REWRITES = Object.freeze([
76
+ 'suppress or reorder a print relative to its surrounding side effects',
77
+ 'coalesce adjacent prints into one stdout write (newline boundaries are observable)',
78
+ 'raw Python str()/print() coercion for bool/null without canonicalization (True/None vs true/null)',
79
+ 'admit unsafe integers (>2^53) — JS rounds, Python keeps precision',
80
+ 'append the newline by hand instead of relying on console.log / print default',
81
+ ]);
82
+ export const printContract = {
83
+ nodeType: 'print',
84
+ preconditions: printPreconditions,
85
+ effects: printEffects,
86
+ completion: printCompletion,
87
+ forbiddenRewrites: FORBIDDEN_REWRITES,
88
+ fixtures: NO_FIXTURES,
89
+ };
90
+ let registered = false;
91
+ /** Idempotent registration. Test cleanup that clears the registry must re-call. */
92
+ export function registerPrintContract() {
93
+ if (registered)
94
+ return;
95
+ registerContract(printContract);
96
+ registered = true;
97
+ }
98
+ /** Reset registration flag — only for test cleanup that clears the registry. */
99
+ export function _resetPrintContractForTest() {
100
+ registered = false;
101
+ }
102
+ //# sourceMappingURL=print.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"print.js","sourceRoot":"","sources":["../../../src/ir/semantics/print.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAuC,gBAAgB,EAAoB,MAAM,YAAY,CAAC;AACrG,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,MAAM,WAAW,GAA2B,EAAE,CAAC;AAM/C;;;;;;GAMG;AACH,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAChE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACnF,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;AACrG,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAU,EAAE,GAAgB;IACpD,MAAM,GAAG,GAAI,EAAE,CAAC,KAAoB,EAAE,KAAK,CAAC;IAC5C,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC1F,OAAO,SAAS,CAAC,iBAAiB,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,kBAAkB,CAAC,EAAU,EAAE,GAAgB;IACtD,IAAI,CAAC;QACH,gBAAgB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,EAAU,EAAE,GAAgB;IAChD,MAAM,IAAI,GAAG,gBAAgB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACvC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;AAC9E,CAAC;AAED,SAAS,eAAe,CAAC,GAAW,EAAE,IAAiB;IACrD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAW,CAAC;AACrC,CAAC;AAED,MAAM,kBAAkB,GAAsB,MAAM,CAAC,MAAM,CAAC;IAC1D,sEAAsE;IACtE,oFAAoF;IACpF,mGAAmG;IACnG,mEAAmE;IACnE,8EAA8E;CAC/E,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,QAAQ,EAAE,OAAO;IACjB,aAAa,EAAE,kBAAkB;IACjC,OAAO,EAAE,YAAY;IACrB,UAAU,EAAE,eAAe;IAC3B,iBAAiB,EAAE,kBAAkB;IACrC,QAAQ,EAAE,WAAW;CACtB,CAAC;AAEF,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,mFAAmF;AACnF,MAAM,UAAU,qBAAqB;IACnC,IAAI,UAAU;QAAE,OAAO;IACvB,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAChC,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,0BAA0B;IACxC,UAAU,GAAG,KAAK,CAAC;AACrB,CAAC"}
@@ -22,6 +22,7 @@ import { registerIfContract } from './if.js';
22
22
  import { registerLambdaContract } from './lambda.js';
23
23
  import { registerLetContract } from './let.js';
24
24
  import { registerPrimitives } from './primitives.js';
25
+ import { registerPrintContract } from './print.js';
25
26
  import { registerTryContract } from './try.js';
26
27
  import { registerWhileContract } from './while.js';
27
28
  export function registerAllContracts() {
@@ -37,5 +38,6 @@ export function registerAllContracts() {
37
38
  registerWhileContract();
38
39
  registerTryContract();
39
40
  registerExpressionV1Contract();
41
+ registerPrintContract();
40
42
  }
41
43
  //# sourceMappingURL=register-all.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"register-all.js","sourceRoot":"","sources":["../../../src/ir/semantics/register-all.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,UAAU,oBAAoB;IAClC,kBAAkB,EAAE,CAAC;IACrB,oBAAoB,EAAE,CAAC;IACvB,sBAAsB,EAAE,CAAC;IACzB,kBAAkB,EAAE,CAAC;IACrB,mBAAmB,EAAE,CAAC;IACtB,sBAAsB,EAAE,CAAC;IACzB,mBAAmB,EAAE,CAAC;IACtB,sBAAsB,EAAE,CAAC;IACzB,mBAAmB,EAAE,CAAC;IACtB,qBAAqB,EAAE,CAAC;IACxB,mBAAmB,EAAE,CAAC;IACtB,4BAA4B,EAAE,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"register-all.js","sourceRoot":"","sources":["../../../src/ir/semantics/register-all.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,UAAU,oBAAoB;IAClC,kBAAkB,EAAE,CAAC;IACrB,oBAAoB,EAAE,CAAC;IACvB,sBAAsB,EAAE,CAAC;IACzB,kBAAkB,EAAE,CAAC;IACrB,mBAAmB,EAAE,CAAC;IACtB,sBAAsB,EAAE,CAAC;IACzB,mBAAmB,EAAE,CAAC;IACtB,sBAAsB,EAAE,CAAC;IACzB,mBAAmB,EAAE,CAAC;IACtB,qBAAqB,EAAE,CAAC;IACxB,mBAAmB,EAAE,CAAC;IACtB,4BAA4B,EAAE,CAAC;IAC/B,qBAAqB,EAAE,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Differential-TEST harness barrel — the test-only home of the 3-leg oracle.
3
+ *
4
+ * This module re-exports the differential harness (`runDifferential`,
5
+ * `runAllContracts`, `DifferentialResult`, `Verdict`), which compares the
6
+ * ReferenceRunner against the emitted TS and Python legs. The harness runs the
7
+ * emitted TypeScript IN-PROCESS via `node:vm`, so it transitively imports the
8
+ * ~10MB TS compiler (`harness → ts-leg → body-ts → closure-eligibility →
9
+ * typescript`).
10
+ *
11
+ * It is INTENTIONALLY kept OUT of the runtime barrel (`./index.js`) so the
12
+ * standalone runner entry (`@kernlang/core/runner`) and any browser/embedded
13
+ * consumer never drag in the compiler. Tests and tooling that need the
14
+ * differential oracle import it from here (or from the `@kernlang/core/testing`
15
+ * subpath), never from the runtime path. See
16
+ * `tests/runner-entry-import-graph.test.ts` for the anti-rot gate.
17
+ */
18
+ export { type DifferentialResult, runAllContracts, runDifferential, type Verdict } from './harness.js';
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Differential-TEST harness barrel — the test-only home of the 3-leg oracle.
3
+ *
4
+ * This module re-exports the differential harness (`runDifferential`,
5
+ * `runAllContracts`, `DifferentialResult`, `Verdict`), which compares the
6
+ * ReferenceRunner against the emitted TS and Python legs. The harness runs the
7
+ * emitted TypeScript IN-PROCESS via `node:vm`, so it transitively imports the
8
+ * ~10MB TS compiler (`harness → ts-leg → body-ts → closure-eligibility →
9
+ * typescript`).
10
+ *
11
+ * It is INTENTIONALLY kept OUT of the runtime barrel (`./index.js`) so the
12
+ * standalone runner entry (`@kernlang/core/runner`) and any browser/embedded
13
+ * consumer never drag in the compiler. Tests and tooling that need the
14
+ * differential oracle import it from here (or from the `@kernlang/core/testing`
15
+ * subpath), never from the runtime path. See
16
+ * `tests/runner-entry-import-graph.test.ts` for the anti-rot gate.
17
+ */
18
+ export { runAllContracts, runDifferential } from './harness.js';
19
+ //# sourceMappingURL=testing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../../../src/ir/semantics/testing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAA2B,eAAe,EAAE,eAAe,EAAgB,MAAM,cAAc,CAAC"}
@@ -30,7 +30,7 @@
30
30
  * - Typed/multi-catch, implicit runtime errors (null-deref, div-by-zero),
31
31
  * throwing primitives, and abrupt finally are deferred to a later contract.
32
32
  */
33
- import { registerContract } from './index.js';
33
+ import { defineBinding, deleteOwnBinding, getBinding, hasOwnBinding, registerContract, } from './index.js';
34
34
  import { makeCaughtErrorValue } from './portable-error.js';
35
35
  import { referenceRunSequence } from './reference-runner.js';
36
36
  import { emptyTrace } from './trace.js';
@@ -88,19 +88,19 @@ function tryEffects(ir, env) {
88
88
  // survive the catch: TS block-scopes the catch parameter and Python `del`s it
89
89
  // at the end of `except`, so a POST-catch (or finally) `<name>` read must
90
90
  // ABSTAIN, never certify a value both emitted targets reject.
91
- const hadPrev = hasBinding && env.bindings.has(caught);
92
- const prevValue = hadPrev ? env.bindings.get(caught) : undefined;
91
+ const hadPrev = hasBinding && hasOwnBinding(env, caught);
92
+ const prevValue = hadPrev ? getBinding(env, caught) : undefined;
93
93
  if (completion.error && hasBinding) {
94
94
  const caughtValue = makeCaughtErrorValue(completion.error);
95
95
  if (caughtValue !== null)
96
- env.bindings.set(caught, caughtValue);
96
+ defineBinding(env, caught, caughtValue);
97
97
  }
98
98
  const catchTrace = referenceRunSequence(catchNode.children ?? [], env);
99
99
  if (hasBinding) {
100
100
  if (hadPrev)
101
- env.bindings.set(caught, prevValue);
101
+ defineBinding(env, caught, prevValue);
102
102
  else
103
- env.bindings.delete(caught);
103
+ deleteOwnBinding(env, caught);
104
104
  }
105
105
  out.events.push(...catchTrace.events);
106
106
  completion = catchTrace.completion;
@@ -1 +1 @@
1
- {"version":3,"file":"try.js","sourceRoot":"","sources":["../../../src/ir/semantics/try.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,OAAO,EAAuC,gBAAgB,EAAoB,MAAM,YAAY,CAAC;AACrG,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAyB,UAAU,EAAc,MAAM,YAAY,CAAC;AAQ3E,SAAS,SAAS,CAAC,QAA2B;IAC5C,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;QACxE,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI;QAC3D,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,IAAI;KAChE,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAU,EAAE,IAAiB;IACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,MAAM,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAClE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,aAAa;IAC/E,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC;QACnC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,EAAE;YAAE,OAAO,KAAK,CAAC;QAC1D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IACvD,CAAC;IACD,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACxE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,EAAU,EAAE,GAAgB;IAC9C,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IACtE,MAAM,GAAG,GAAU,UAAU,EAAE,CAAC;IAEhC,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,UAAU,GAAqB,SAAS,CAAC,UAAU,CAAC;IAExD,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,IAAI,SAAS,EAAE,CAAC;QAC7C,2EAA2E;QAC3E,4EAA4E;QAC5E,mEAAmE;QACnE,yEAAyE;QACzE,+DAA+D;QAC/D,2EAA2E;QAC3E,gEAAgE;QAChE,2EAA2E;QAC3E,2EAA2E;QAC3E,2EAA2E;QAC3E,4BAA4B;QAC5B,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC;QACrC,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,EAAE,CAAC;QAC/D,8EAA8E;QAC9E,2EAA2E;QAC3E,yEAAyE;QACzE,8EAA8E;QAC9E,0EAA0E;QAC1E,8DAA8D;QAC9D,MAAM,OAAO,GAAG,UAAU,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAgB,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3E,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,oBAAoB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,WAAW,KAAK,IAAI;gBAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAgB,EAAE,WAAW,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,UAAU,GAAG,oBAAoB,CAAC,SAAS,CAAC,QAAQ,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QACvE,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,OAAO;gBAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAgB,EAAE,SAAS,CAAC,CAAC;;gBACtD,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAgB,CAAC,CAAC;QAC7C,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACtC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;IACrC,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,YAAY,GAAG,oBAAoB,CAAC,WAAW,CAAC,QAAQ,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;QAC3E,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9C,uEAAuE;YACvE,+CAA+C;YAC/C,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACnF,CAAC;QACD,0CAA0C;IAC5C,CAAC;IAED,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;IAC5B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,EAAU,EAAE,GAAgB;IACjD,OAAO,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC;AACxC,CAAC;AAED,MAAM,kBAAkB,GAAsB,MAAM,CAAC,MAAM,CAAC;IAC1D,yBAAyB;IACzB,yBAAyB;IACzB,0BAA0B;IAC1B,oCAAoC;IACpC,kFAAkF;IAClF,wEAAwE;CACzE,CAAC,CAAC;AAEH,SAAS,GAAG,CAAC,IAAY;IACvB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACvE,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,UAAU,CAAC,QAAkB,EAAE,IAAI,GAAG,GAAG;IAChD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC;AACtD,CAAC;AAED,SAAS,YAAY,CAAC,QAAkB;IACtC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AACvC,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,QAAQ,GAA2B,MAAM,CAAC,MAAM,CAAC;IACrD;QACE,WAAW,EAAE,+EAA+E;QAC5F,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;QAC3F,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;KAClG;IACD;QACE,WAAW,EAAE,uDAAuD;QACpE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;QAC1E,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;KAC1E;IACD;QACE,WAAW,EAAE,+CAA+C;QAC5D,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;QAC5E,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;KACpG;IACD;QACE,WAAW,EAAE,gFAAgF;QAC7F,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;QAC/F,QAAQ,EAAE;YACR,MAAM,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;YACrD,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;SACxD;KACF;IACD;QACE,WAAW,EAAE,6EAA6E;QAC1F,EAAE,EAAE;YACF,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACvG;QACD,QAAQ,EAAE;YACR,MAAM,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;YAC3E,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC/B;KACF;IACD;QACE,WAAW,EAAE,qEAAqE;QAClF,EAAE,EAAE;YACF,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACtF;QACD,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;KAClG;IACD;QACE,WAAW,EAAE,qEAAqE;QAClF,EAAE,EAAE;YACF,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACjG;QACD,QAAQ,EAAE;YACR,MAAM,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;YACrD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;SACzC;KACF;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAiB;IACvC,QAAQ,EAAE,KAAK;IACf,aAAa,EAAE,gBAAgB;IAC/B,OAAO,EAAE,UAAU;IACnB,UAAU,EAAE,aAAa;IACzB,iBAAiB,EAAE,kBAAkB;IACrC,QAAQ,EAAE,QAAQ;CACnB,CAAC;AAEF,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,mFAAmF;AACnF,MAAM,UAAU,mBAAmB;IACjC,IAAI,UAAU;QAAE,OAAO;IACvB,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC9B,UAAU,GAAG,IAAI,CAAC;AACpB,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,wBAAwB;IACtC,UAAU,GAAG,KAAK,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"try.js","sourceRoot":"","sources":["../../../src/ir/semantics/try.ts"],"names":[],"mappings":"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"}