@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.
- package/dist/codegen/body-ts.js +18 -0
- package/dist/codegen/body-ts.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/ir/semantics/assign.js +4 -4
- package/dist/ir/semantics/assign.js.map +1 -1
- package/dist/ir/semantics/branch.js +11 -9
- package/dist/ir/semantics/branch.js.map +1 -1
- package/dist/ir/semantics/each.js +11 -10
- package/dist/ir/semantics/each.js.map +1 -1
- package/dist/ir/semantics/expression-v1.js +17 -17
- package/dist/ir/semantics/expression-v1.js.map +1 -1
- package/dist/ir/semantics/fmt.js +3 -3
- package/dist/ir/semantics/fmt.js.map +1 -1
- package/dist/ir/semantics/for.js +14 -10
- package/dist/ir/semantics/for.js.map +1 -1
- package/dist/ir/semantics/if.js +12 -4
- package/dist/ir/semantics/if.js.map +1 -1
- package/dist/ir/semantics/index.d.ts +35 -1
- package/dist/ir/semantics/index.js +59 -1
- package/dist/ir/semantics/index.js.map +1 -1
- package/dist/ir/semantics/let.js +3 -3
- package/dist/ir/semantics/let.js.map +1 -1
- package/dist/ir/semantics/portable-scalar.js +6 -5
- package/dist/ir/semantics/portable-scalar.js.map +1 -1
- package/dist/ir/semantics/primitives.js +3 -3
- package/dist/ir/semantics/primitives.js.map +1 -1
- package/dist/ir/semantics/print.d.ts +36 -0
- package/dist/ir/semantics/print.js +102 -0
- package/dist/ir/semantics/print.js.map +1 -0
- package/dist/ir/semantics/register-all.js +2 -0
- package/dist/ir/semantics/register-all.js.map +1 -1
- package/dist/ir/semantics/testing.d.ts +18 -0
- package/dist/ir/semantics/testing.js +19 -0
- package/dist/ir/semantics/testing.js.map +1 -0
- package/dist/ir/semantics/try.js +6 -6
- package/dist/ir/semantics/try.js.map +1 -1
- package/dist/ir/semantics/while.js +7 -4
- package/dist/ir/semantics/while.js.map +1 -1
- package/dist/parser-validate-body-statements.js +1 -0
- package/dist/parser-validate-body-statements.js.map +1 -1
- package/dist/rag-retrieve-runner.d.ts +9 -1
- package/dist/rag-retrieve-runner.js +149 -2
- package/dist/rag-retrieve-runner.js.map +1 -1
- package/dist/runner.d.ts +28 -0
- package/dist/runner.js +30 -0
- package/dist/runner.js.map +1 -0
- package/dist/schema.js +8 -0
- package/dist/schema.js.map +1 -1
- package/dist/spec.d.ts +2 -2
- package/dist/spec.js +3 -1
- package/dist/spec.js.map +1 -1
- package/dist/testing.d.ts +16 -0
- package/dist/testing.js +17 -0
- package/dist/testing.js.map +1 -0
- 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
|
-
|
|
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":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ir/semantics/index.ts"],"names":[],"mappings":"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"}
|
package/dist/ir/semantics/let.js
CHANGED
|
@@ -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
|
|
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
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,
|
|
1
|
+
{"version":3,"file":"let.js","sourceRoot":"","sources":["../../../src/ir/semantics/let.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EACL,aAAa,EACb,aAAa,EAGb,gBAAgB,GAEjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAShF,SAAS,UAAU,CAAC,EAAU;IAC5B,OAAO,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAa,CAAC;AACtC,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAU,EAAE,GAAgB;IACpD,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACrD,IAAI,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,EAAE,OAAO,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE;QAAE,OAAO,KAAK,CAAC;IAChF,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAClH,IAAI,CAAC;QACH,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,EAAU,EAAE,GAAgB;IAC9C,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAc,CAAC;IAClC,MAAM,KAAK,GAAG,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3E,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;AAC7F,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,uBAAuB;IACvB,yCAAyC;IACzC,qCAAqC;IACrC,+BAA+B;CAChC,CAAC,CAAC;AAEH,SAAS,OAAO,CACd,WAAmB,EACnB,EAAU,EACV,cAA+B,EAC/B,GAA0B;IAE1B,OAAO;QACL,WAAW;QACX,EAAE;QACF,GAAG;QACH,QAAQ,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;KACrE,CAAC;AACJ,CAAC;AAED,MAAM,QAAQ,GAA2B,MAAM,CAAC,MAAM,CAAC;IACrD,OAAO,CACL,yDAAyD,EACzD,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAC1D,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CACnD;IACD,OAAO,CACL,iEAAiE,EACjE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAC5D,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAC7C,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CACrC;IACD,OAAO,CAAC,sCAAsC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;QACvG,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE;KAC9C,CAAC;IACF,OAAO,CAAC,mCAAmC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;QACvG,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE;KACjD,CAAC;IACF,OAAO,CACL,6EAA6E,EAC7E;QACE,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE;QACpC,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACrD,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;SAC/D;KACF,EACD;QACE,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE;QAC3C,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;KAC7C,CACF;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"}
|
|
@@ -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
|
|
168
|
+
if (!hasBinding(env, node.name))
|
|
168
169
|
throw new Error(`portable: binding "${node.name}" not found`);
|
|
169
|
-
return assertPortableScalar(env
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAuC,gBAAgB,EAAoB,MAAM,YAAY,CAAC;
|
|
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;
|
|
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"}
|
package/dist/ir/semantics/try.js
CHANGED
|
@@ -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
|
|
92
|
-
const prevValue = hadPrev ? env
|
|
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
|
|
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
|
|
101
|
+
defineBinding(env, caught, prevValue);
|
|
102
102
|
else
|
|
103
|
-
env
|
|
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,
|
|
1
|
+
{"version":3,"file":"try.js","sourceRoot":"","sources":["../../../src/ir/semantics/try.ts"],"names":[],"mappings":"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"}
|