@nudojs/core 1.2.0 → 1.2.2

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.
@@ -41,7 +41,7 @@ import {
41
41
  unknown,
42
42
  v,
43
43
  withExecPhi
44
- } from "./chunk-WB565PQK.js";
44
+ } from "./chunk-4V3CRVSD.js";
45
45
 
46
46
  // src/algebra/constraint.ts
47
47
  var SELF = "__nudo_self__";
package/dist/exec.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { $ as $add, a as $arguments, b as $arr, c as $arrMutContainer, d as $arrRest, e as $arrWithHoles, f as $assignRecord, g as $async, h as $asyncReturn, i as $await, j as $bitand, k as $bitnot, l as $bitor, m as $bitxor, n as $call, o as $callNamed, p as $catchVal, q as $class, r as $classExpr, s as $collectionForEach, t as $concat, u as $copy, v as $del, w as $delRes, x as $div, y as $dynamicImport, z as $elems, B as $eq, C as $eqLoose, D as $fnVal, E as $for, F as $forInKeys, G as $forIter, H as $forOf, I as $fork, J as $ge, K as $gen, L as $get, M as $gt, N as $idx, O as $idxSet, P as $importMeta, Q as $in, S as $instanceof, T as $instanceofNonIdent, U as $invoke, V as $invokeSuper, W as $isBreakTo, X as $isForkExit, Y as $join, Z as $le, _ as $len, a0 as $lit, a1 as $loopBreak, a2 as $loopContinue, a3 as $loopReturn, a4 as $lt, a5 as $mod, a6 as $mul, a7 as $ne, a8 as $neLoose, a9 as $neg, aa as $new, ab as $not, ac as $nullishTest, ad as $obj, ae as $objAccessor, af as $objRest, ag as $optionalGet, ah as $optionalInvoke, ai as $orDefault, aj as $pow, ak as $pushLoopExit, al as $rawThis, am as $reStateCall, an as $recordBinding, ao as $regex, ap as $rethrowIfNudoReturn, aq as $set, ar as $setKey, as as $shl, at as $shr, au as $spread, av as $staticInvoke, aw as $sub, ax as $super, ay as $switch, az as $thisGet, aA as $thisSet, aB as $throw, aC as $toNumber, aD as $tryCurrentMark, aE as $tryDetachSoftCatch, aF as $tryDigestSoftCatch, aG as $tryDiscardSoft, aH as $tryMark, aI as $tryOrphanSoft, aJ as $tryPopMark, aK as $tryReleaseSoftCatch, aL as $tryReleaseSoftOut, aM as $tryTakeSince, aN as $typeof, aO as $unknown, aP as $ushr, aQ as $while, aR as $whileSeq, aS as $yield, aT as DEFAULT_MAX_LOOP_ITERS, aU as EvalAbsAssignRecord, aV as EvalCallRecord, aW as EvalClassSpec, aX as EvalFallback, aY as MAX_EVAL_CALL_DEPTH, aZ as MAX_EVAL_TOTAL_CALLS, a_ as NudoLoopSignal, a$ as NudoReturn, b0 as NudoThrow, b1 as NudoUnsupportedError, b2 as RUNTIME_IMPORT_RE, R as RunTranspiledOptions, b3 as TranspileOptions, b4 as TranspiledCallResult, b5 as asAbsVal, b7 as bindingsOf, b8 as callAtFunctionBoundary, b9 as callTranspiledExport, ba as callTranspiledExportFull, bb as clearBClasses, bc as clearStaleTermPred, be as currentExecPhi, bf as evalExprAbs, bg as fillTuple, bh as foldRequireSpecArg, bi as foldStaticStringExpr, bj as getEvalCallCollector, bk as getEvalClass, bl as isArrMutator, bm as isDefinitelyFalse, bn as isDefinitelyTrue, bo as isNudoBreak, bp as isNudoContinue, bq as isNudoReturn, br as isNudoThrow, bs as litTruth, bt as lookupObjAccessor, bu as namespaceNameOf, bv as noteEvalCallRecord, bw as noteEvalFallback, bx as pushLoopExit, by as pushThrowExit, bz as registerEvalClass, bA as resetEvalCallBudget, bB as runTranspiled, bC as runTranspiledOptionsMemoKey, bD as runWithLoopExits, bE as runtimeImportOf, bF as setEvalAssignCollector, bG as setEvalBindingSink, bH as setEvalCallCollector, bI as setEvalFallbackCollector, bJ as takeLoopExits, bK as takeThrowExits, bL as transpile, bM as transpileBodyNode, bN as transpileExpression, bO as transpileFile, bP as transpileSource, bQ as tryRunTranspiled, bR as withExecPhi } from './index-DMjMPLV0.js';
2
- import './hof-types-COqDeD5F.js';
1
+ export { $ as $add, a as $arguments, b as $arr, c as $arrMutContainer, d as $arrRest, e as $arrWithHoles, f as $assignRecord, g as $async, h as $asyncReturn, i as $await, j as $bitand, k as $bitnot, l as $bitor, m as $bitxor, n as $call, o as $callNamed, p as $catchVal, q as $class, r as $classExpr, s as $collectionForEach, t as $concat, u as $copy, v as $del, w as $delRes, x as $div, y as $dynamicImport, z as $elems, B as $eq, C as $eqLoose, D as $fnVal, E as $for, F as $forInKeys, G as $forIter, H as $forOf, I as $fork, J as $ge, K as $gen, L as $get, M as $gt, N as $idx, O as $idxSet, P as $importMeta, Q as $in, S as $instanceof, T as $instanceofNonIdent, U as $invoke, V as $invokeSuper, W as $isBreakTo, X as $isForkExit, Y as $join, Z as $le, _ as $len, a0 as $lit, a1 as $loopBreak, a2 as $loopContinue, a3 as $loopReturn, a4 as $lt, a5 as $mod, a6 as $mul, a7 as $ne, a8 as $neLoose, a9 as $neg, aa as $new, ab as $not, ac as $nullishTest, ad as $obj, ae as $objAccessor, af as $objRest, ag as $optionalGet, ah as $optionalInvoke, ai as $orDefault, aj as $pow, ak as $pushLoopExit, al as $rawThis, am as $reStateCall, an as $recordBinding, ao as $regex, ap as $rethrowIfNudoReturn, aq as $set, ar as $setKey, bV as $setProto, as as $shl, at as $shr, au as $spread, av as $staticInvoke, aw as $sub, ax as $super, ay as $switch, az as $thisGet, aA as $thisSet, aB as $throw, aC as $toNumber, aD as $toNumeric, aE as $tryCurrentMark, aF as $tryDetachSoftCatch, aG as $tryDigestSoftCatch, aH as $tryDiscardSoft, aI as $tryMark, aJ as $tryOrphanSoft, aK as $tryPopMark, aL as $tryReleaseSoftCatch, aM as $tryReleaseSoftOut, aN as $tryTakeSince, aO as $typeof, aP as $unknown, aQ as $updateAdd, aR as $updateSub, aS as $ushr, aT as $while, aU as $whileSeq, aV as $yield, aW as DEFAULT_MAX_LOOP_ITERS, aX as EvalAbsAssignRecord, aY as EvalCallRecord, aZ as EvalClassSpec, a_ as EvalFallback, a$ as MAX_EVAL_CALL_DEPTH, b0 as MAX_EVAL_TOTAL_CALLS, b1 as NudoLoopSignal, b2 as NudoReturn, b3 as NudoThrow, b4 as NudoUnsupportedError, b5 as RUNTIME_IMPORT_RE, R as RunTranspiledOptions, b6 as TranspileOptions, b7 as TranspiledCallResult, b8 as asAbsVal, ba as bindingsOf, bb as callAtFunctionBoundary, bc as callTranspiledExport, bd as callTranspiledExportFull, be as clearBClasses, bf as clearStaleTermPred, bh as currentExecPhi, bi as evalExprAbs, bj as fillTuple, bk as foldRequireSpecArg, bl as foldStaticStringExpr, bm as getEvalCallCollector, bn as getEvalClass, bo as isArrMutator, bp as isDefinitelyFalse, bq as isDefinitelyTrue, br as isNudoBreak, bs as isNudoContinue, bt as isNudoReturn, bu as isNudoThrow, bv as litTruth, bw as lookupObjAccessor, bx as namespaceNameOf, by as noteEvalCallRecord, bz as noteEvalFallback, bA as pushLoopExit, bB as pushThrowExit, bC as registerEvalClass, bD as resetEvalCallBudget, bE as runTranspiled, bF as runTranspiledOptionsMemoKey, bG as runWithLoopExits, bH as runtimeImportOf, bI as setEvalAssignCollector, bJ as setEvalBindingSink, bK as setEvalCallCollector, bL as setEvalFallbackCollector, bM as takeLoopExits, bN as takeThrowExits, bO as transpile, bP as transpileBodyNode, bQ as transpileExpression, bR as transpileFile, bS as transpileSource, bT as tryRunTranspiled, bU as withExecPhi } from './index-BNiZvVHw.js';
2
+ import './hof-types-DqDpAxfh.js';
3
3
  import '@babel/types';
package/dist/exec.js CHANGED
@@ -80,6 +80,7 @@ import {
80
80
  $rethrowIfNudoReturn,
81
81
  $set,
82
82
  $setKey,
83
+ $setProto,
83
84
  $shl,
84
85
  $shr,
85
86
  $spread,
@@ -91,6 +92,7 @@ import {
91
92
  $thisSet,
92
93
  $throw,
93
94
  $toNumber,
95
+ $toNumeric,
94
96
  $tryCurrentMark,
95
97
  $tryDetachSoftCatch,
96
98
  $tryDigestSoftCatch,
@@ -103,6 +105,8 @@ import {
103
105
  $tryTakeSince,
104
106
  $typeof,
105
107
  $unknown,
108
+ $updateAdd,
109
+ $updateSub,
106
110
  $ushr,
107
111
  $while,
108
112
  $whileSeq,
@@ -162,7 +166,7 @@ import {
162
166
  transpileSource,
163
167
  tryRunTranspiled,
164
168
  withExecPhi
165
- } from "./chunk-WB565PQK.js";
169
+ } from "./chunk-4V3CRVSD.js";
166
170
  export {
167
171
  $add,
168
172
  $arguments,
@@ -244,6 +248,7 @@ export {
244
248
  $rethrowIfNudoReturn,
245
249
  $set,
246
250
  $setKey,
251
+ $setProto,
247
252
  $shl,
248
253
  $shr,
249
254
  $spread,
@@ -255,6 +260,7 @@ export {
255
260
  $thisSet,
256
261
  $throw,
257
262
  $toNumber,
263
+ $toNumeric,
258
264
  $tryCurrentMark,
259
265
  $tryDetachSoftCatch,
260
266
  $tryDigestSoftCatch,
@@ -267,6 +273,8 @@ export {
267
273
  $tryTakeSince,
268
274
  $typeof,
269
275
  $unknown,
276
+ $updateAdd,
277
+ $updateSub,
270
278
  $ushr,
271
279
  $while,
272
280
  $whileSeq,
@@ -88,6 +88,11 @@ declare function not(p: Pred): Pred;
88
88
  * 逻辑否定(De Morgan):¬(A∧B)=¬A∨¬B;¬(A∨B)=¬A∧¬B;双重否定消去。
89
89
  * typeof 否定展开为其余 TypeofName 标签的析取——8 标签域是 JS typeof 的
90
90
  * 完整结果域,展开健全且相对完备。
91
+ *
92
+ * 关系比较(lt/le/gt/ge)的否定 **不是** 全序对偶:JS 里 NaN 参与时
93
+ * 全部关系为 false,故 ¬(x<5) 真而 x≥5 假。精确否定是 not(lt);
94
+ * 正向全序事实(Φ ⊢ x≥5 ⇒ x<5 为假)仍由 totalOrderDual 处理。
95
+ * eq↔ne 是精确否定,不受 NaN 影响。
91
96
  */
92
97
  declare function negatePred(p: Pred): Pred;
93
98
  declare function predEquals(a: Pred, b: Pred): boolean;
@@ -162,6 +167,15 @@ type Shape = {
162
167
  name?: string;
163
168
  paramTypes?: Abs[];
164
169
  returnType?: Abs;
170
+ /**
171
+ * Dual-facet globals (Number/Array/…): callable AND carries static members.
172
+ * `$get` reads these before falling back to Function.prototype names.
173
+ */
174
+ slots?: Record<string, {
175
+ value: Abs;
176
+ optional?: boolean;
177
+ readonly?: boolean;
178
+ }>;
165
179
  } | {
166
180
  k: "brand";
167
181
  name: string;
@@ -1,4 +1,4 @@
1
- import { A as Abs, M as MayThrowEffect, b as Phi, c as AstEnv } from './hof-types-COqDeD5F.js';
1
+ import { A as Abs, M as MayThrowEffect, b as Phi, c as AstEnv } from './hof-types-DqDpAxfh.js';
2
2
  import * as _babel_types from '@babel/types';
3
3
  import { Node, Expression, File, ImportDeclaration } from '@babel/types';
4
4
 
@@ -141,6 +141,12 @@ declare function $shr(a: Abs, b: Abs): Abs;
141
141
  declare function $ushr(a: Abs, b: Abs): Abs;
142
142
  declare function $pow(a: Abs, b: Abs): Abs;
143
143
  declare function $toNumber(a: Abs): Abs;
144
+ /** ToNumeric(UpdateExpression):number|bigint,bigint 保持 */
145
+ declare function $toNumeric(a: Abs): Abs;
146
+ /** UpdateExpression `old+1`:ToNumeric 后按 numeric type 加 1(无 string concat) */
147
+ declare function $updateAdd(a: Abs): Abs;
148
+ /** UpdateExpression `old-1` */
149
+ declare function $updateSub(a: Abs): Abs;
144
150
  declare function $neg(a: Abs): Abs;
145
151
  declare function $typeof(a: Abs): Abs;
146
152
  declare function $not(a: Abs): Abs;
@@ -297,8 +303,15 @@ declare function $idx(a: Abs, i: Abs): Abs;
297
303
  declare function $idxSet(a: Abs, i: Abs, value: Abs): Abs;
298
304
  /** 数组/字符串长度 */
299
305
  declare function $len(a: Abs): Abs;
300
- /** 对象字面量 → Abs obj */
306
+ /** 对象字面量 → Abs obj(槽位写走 setSlot,`__proto__` 不踩宿主 setter) */
301
307
  declare function $obj(slots: Record<string, Abs>): Abs;
308
+ /**
309
+ * 对象字面量非计算 `__proto__: v` 的特殊原型设定(ES PropertyDefinition)。
310
+ * - v 为 null → null-proto(无 Object.prototype 回退)
311
+ * - v 为 object → 保守 open(继承读不折 exact undefined;细节不建模)
312
+ * - v 为 primitive → 原生忽略(无自有键、不改原型)
313
+ */
314
+ declare function $setProto(o: Abs, proto: Abs): Abs;
302
315
  /** 对象展开 { ...a, b } */
303
316
  declare function $spread(a: Abs, b: Abs): Abs;
304
317
  /**
@@ -723,4 +736,4 @@ declare class NudoUnsupportedError extends Error {
723
736
  });
724
737
  }
725
738
 
726
- export { $add as $, type AbsModuleExports as A, $eq as B, $eqLoose as C, $fnVal as D, $for as E, $forInKeys as F, $forIter as G, $forOf as H, $fork as I, $ge as J, $gen as K, $get as L, $gt as M, $idx as N, $idxSet as O, $importMeta as P, $in as Q, type RunTranspiledOptions as R, $instanceof as S, $instanceofNonIdent as T, $invoke as U, $invokeSuper as V, $isBreakTo as W, $isForkExit as X, $join as Y, $le as Z, $len as _, $arguments as a, NudoReturn as a$, $lit as a0, $loopBreak as a1, $loopContinue as a2, $loopReturn as a3, $lt as a4, $mod as a5, $mul as a6, $ne as a7, $neLoose as a8, $neg as a9, $thisSet as aA, $throw as aB, $toNumber as aC, $tryCurrentMark as aD, $tryDetachSoftCatch as aE, $tryDigestSoftCatch as aF, $tryDiscardSoft as aG, $tryMark as aH, $tryOrphanSoft as aI, $tryPopMark as aJ, $tryReleaseSoftCatch as aK, $tryReleaseSoftOut as aL, $tryTakeSince as aM, $typeof as aN, $unknown as aO, $ushr as aP, $while as aQ, $whileSeq as aR, $yield as aS, DEFAULT_MAX_LOOP_ITERS as aT, type EvalAbsAssignRecord as aU, type EvalCallRecord as aV, type EvalClassSpec as aW, type EvalFallback as aX, MAX_EVAL_CALL_DEPTH as aY, MAX_EVAL_TOTAL_CALLS as aZ, NudoLoopSignal as a_, $new as aa, $not as ab, $nullishTest as ac, $obj as ad, $objAccessor as ae, $objRest as af, $optionalGet as ag, $optionalInvoke as ah, $orDefault as ai, $pow as aj, $pushLoopExit as ak, $rawThis as al, $reStateCall as am, $recordBinding as an, $regex as ao, $rethrowIfNudoReturn as ap, $set as aq, $setKey as ar, $shl as as, $shr as at, $spread as au, $staticInvoke as av, $sub as aw, $super as ax, $switch as ay, $thisGet as az, $arr as b, NudoThrow as b0, NudoUnsupportedError as b1, RUNTIME_IMPORT_RE as b2, type TranspileOptions as b3, type TranspiledCallResult as b4, asAbsVal as b5, bindImports as b6, bindingsOf as b7, callAtFunctionBoundary as b8, callTranspiledExport as b9, resetEvalCallBudget as bA, runTranspiled as bB, runTranspiledOptionsMemoKey as bC, runWithLoopExits as bD, runtimeImportOf as bE, setEvalAssignCollector as bF, setEvalBindingSink as bG, setEvalCallCollector as bH, setEvalFallbackCollector as bI, takeLoopExits as bJ, takeThrowExits as bK, transpile as bL, transpileBodyNode as bM, transpileExpression as bN, transpileFile as bO, transpileSource as bP, tryRunTranspiled as bQ, withExecPhi as bR, callTranspiledExportFull as ba, clearBClasses as bb, clearStaleTermPred as bc, collectAbsExports as bd, currentExecPhi as be, evalExprAbs as bf, fillTuple as bg, foldRequireSpecArg as bh, foldStaticStringExpr as bi, getEvalCallCollector as bj, getEvalClass as bk, isArrMutator as bl, isDefinitelyFalse as bm, isDefinitelyTrue as bn, isNudoBreak as bo, isNudoContinue as bp, isNudoReturn as bq, isNudoThrow as br, litTruth as bs, lookupObjAccessor as bt, namespaceNameOf as bu, noteEvalCallRecord as bv, noteEvalFallback as bw, pushLoopExit as bx, pushThrowExit as by, registerEvalClass as bz, $arrMutContainer as c, $arrRest as d, $arrWithHoles as e, $assignRecord as f, $async as g, $asyncReturn as h, $await as i, $bitand as j, $bitnot as k, $bitor as l, $bitxor as m, $call as n, $callNamed as o, $catchVal as p, $class as q, $classExpr as r, $collectionForEach as s, $concat as t, $copy as u, $del as v, $delRes as w, $div as x, $dynamicImport as y, $elems as z };
739
+ export { $add as $, type AbsModuleExports as A, $eq as B, $eqLoose as C, $fnVal as D, $for as E, $forInKeys as F, $forIter as G, $forOf as H, $fork as I, $ge as J, $gen as K, $get as L, $gt as M, $idx as N, $idxSet as O, $importMeta as P, $in as Q, type RunTranspiledOptions as R, $instanceof as S, $instanceofNonIdent as T, $invoke as U, $invokeSuper as V, $isBreakTo as W, $isForkExit as X, $join as Y, $le as Z, $len as _, $arguments as a, MAX_EVAL_CALL_DEPTH as a$, $lit as a0, $loopBreak as a1, $loopContinue as a2, $loopReturn as a3, $lt as a4, $mod as a5, $mul as a6, $ne as a7, $neLoose as a8, $neg as a9, $thisSet as aA, $throw as aB, $toNumber as aC, $toNumeric as aD, $tryCurrentMark as aE, $tryDetachSoftCatch as aF, $tryDigestSoftCatch as aG, $tryDiscardSoft as aH, $tryMark as aI, $tryOrphanSoft as aJ, $tryPopMark as aK, $tryReleaseSoftCatch as aL, $tryReleaseSoftOut as aM, $tryTakeSince as aN, $typeof as aO, $unknown as aP, $updateAdd as aQ, $updateSub as aR, $ushr as aS, $while as aT, $whileSeq as aU, $yield as aV, DEFAULT_MAX_LOOP_ITERS as aW, type EvalAbsAssignRecord as aX, type EvalCallRecord as aY, type EvalClassSpec as aZ, type EvalFallback as a_, $new as aa, $not as ab, $nullishTest as ac, $obj as ad, $objAccessor as ae, $objRest as af, $optionalGet as ag, $optionalInvoke as ah, $orDefault as ai, $pow as aj, $pushLoopExit as ak, $rawThis as al, $reStateCall as am, $recordBinding as an, $regex as ao, $rethrowIfNudoReturn as ap, $set as aq, $setKey as ar, $shl as as, $shr as at, $spread as au, $staticInvoke as av, $sub as aw, $super as ax, $switch as ay, $thisGet as az, $arr as b, MAX_EVAL_TOTAL_CALLS as b0, NudoLoopSignal as b1, NudoReturn as b2, NudoThrow as b3, NudoUnsupportedError as b4, RUNTIME_IMPORT_RE as b5, type TranspileOptions as b6, type TranspiledCallResult as b7, asAbsVal as b8, bindImports as b9, pushLoopExit as bA, pushThrowExit as bB, registerEvalClass as bC, resetEvalCallBudget as bD, runTranspiled as bE, runTranspiledOptionsMemoKey as bF, runWithLoopExits as bG, runtimeImportOf as bH, setEvalAssignCollector as bI, setEvalBindingSink as bJ, setEvalCallCollector as bK, setEvalFallbackCollector as bL, takeLoopExits as bM, takeThrowExits as bN, transpile as bO, transpileBodyNode as bP, transpileExpression as bQ, transpileFile as bR, transpileSource as bS, tryRunTranspiled as bT, withExecPhi as bU, $setProto as bV, bindingsOf as ba, callAtFunctionBoundary as bb, callTranspiledExport as bc, callTranspiledExportFull as bd, clearBClasses as be, clearStaleTermPred as bf, collectAbsExports as bg, currentExecPhi as bh, evalExprAbs as bi, fillTuple as bj, foldRequireSpecArg as bk, foldStaticStringExpr as bl, getEvalCallCollector as bm, getEvalClass as bn, isArrMutator as bo, isDefinitelyFalse as bp, isDefinitelyTrue as bq, isNudoBreak as br, isNudoContinue as bs, isNudoReturn as bt, isNudoThrow as bu, litTruth as bv, lookupObjAccessor as bw, namespaceNameOf as bx, noteEvalCallRecord as by, noteEvalFallback as bz, $arrMutContainer as c, $arrRest as d, $arrWithHoles as e, $assignRecord as f, $async as g, $asyncReturn as h, $await as i, $bitand as j, $bitnot as k, $bitor as l, $bitxor as m, $call as n, $callNamed as o, $catchVal as p, $class as q, $classExpr as r, $collectionForEach as s, $concat as t, $copy as u, $del as v, $delRes as w, $div as x, $dynamicImport as y, $elems as z };
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- import { c as AstEnv, A as Abs, b as Phi, C as Confidence, T as Term, H as HofCollectCtx, S as Shape, a as Pred, R as RelSource, w as HofSite } from './hof-types-COqDeD5F.js';
2
- export { I as ImplicationOracle, L as LiteralValue, P as PrimName, x as TYPEOF_NAMES, y as TypeofName, z as abs, B as absToString, D as and, F as anyAbs, G as anyVar, J as app, K as bigintLit, N as bool, O as boolLit, Q as confJoin, U as emptyPhi, V as eq, W as ge, X as geNum, Y as getImplicationOracle, Z as gt, _ as gtNum, a0 as implies, a1 as isBigPrim, a2 as isExactLit, a3 as isNumPrim, a4 as isStrPrim, a5 as le, a6 as leNum, a7 as lit, a8 as litValue, a9 as lt, aa as ltNum, ab as ne, ac as negatePred, ad as never, ae as not, af as num, ag as numLit, ah as numVar, ai as obj, aj as or, ak as pFalse, al as pTrue, am as phiAnd, an as predEquals, ao as predToString, ap as predVars, aq as primToTypeof, ar as ptypeof, as as setImplicationOracle, at as shapeOfTerm, au as shapeToString, av as simplifyTerm, aw as str, ax as strLit, ay as substPred, az as termEquals, aA as termToString, aB as unknown, aC as v } from './hof-types-COqDeD5F.js';
1
+ import { c as AstEnv, A as Abs, b as Phi, C as Confidence, T as Term, H as HofCollectCtx, S as Shape, a as Pred, R as RelSource, w as HofSite } from './hof-types-DqDpAxfh.js';
2
+ export { I as ImplicationOracle, L as LiteralValue, P as PrimName, x as TYPEOF_NAMES, y as TypeofName, z as abs, B as absToString, D as and, F as anyAbs, G as anyVar, J as app, K as bigintLit, N as bool, O as boolLit, Q as confJoin, U as emptyPhi, V as eq, W as ge, X as geNum, Y as getImplicationOracle, Z as gt, _ as gtNum, a0 as implies, a1 as isBigPrim, a2 as isExactLit, a3 as isNumPrim, a4 as isStrPrim, a5 as le, a6 as leNum, a7 as lit, a8 as litValue, a9 as lt, aa as ltNum, ab as ne, ac as negatePred, ad as never, ae as not, af as num, ag as numLit, ah as numVar, ai as obj, aj as or, ak as pFalse, al as pTrue, am as phiAnd, an as predEquals, ao as predToString, ap as predVars, aq as primToTypeof, ar as ptypeof, as as setImplicationOracle, at as shapeOfTerm, au as shapeToString, av as simplifyTerm, aw as str, ax as strLit, ay as substPred, az as termEquals, aA as termToString, aB as unknown, aC as v } from './hof-types-DqDpAxfh.js';
3
3
  import { Node } from '@babel/types';
4
- import { p as parseSource, L as LeakBudget, E as EffectiveInterfaceOpts, b as LoadDepsFingerprint, i as CheckReport, N as NudoConstraint } from './check-report-TEOZ4cPZ.js';
5
- export { j as CheckAction, C as CheckIssue, k as CheckJson, o as CheckJsonMulti, q as ConstraintBuilder, D as Diagnostic, u as EffectiveInterface, G as GitlabCodeQualityIssue, v as InterfaceDiag, I as InterfaceSource, w as InterfaceTierInfo, a as InterfaceTierOpts, x as NamedImport, y as NudoField, z as NudoFnConstraint, A as NudoSidecarError, B as NudoSig, R as RefineDiag, F as RefineEntry, H as RefineResolveOpts, S as SELF, J as actionsForIssue, K as andC, M as any, O as array, P as boolean, Q as checkArg, T as checkCall, U as constraintToEntryAbs, V as effectiveInterface, W as execNudoModule, X as extractDeclaredThrows, Y as extractNudoImports, Z as extractRefineReturnFromSource, _ as extractRefinesFromSource, $ as fn, a0 as fnConstraintToEntryReqs, a1 as formatCheckReport, a2 as formatConstraint, a3 as formatDiagnostics, a4 as formatEffectiveInterfaceDisplay, a5 as formatGithubAnnotations, a6 as formatGitlabCodeQuality, a7 as formatInterfaceTierLine, a8 as generatedExportNames, a9 as getParseSourceCacheSize, aa as getTerm, ab as instantiateConstraint, ac as interfaceDiagCount, ad as interfaceSourceOf, ae as interfaceTierOf, af as isIntFlag, ag as isNodeModulesPath, ah as isNudoConstraint, ai as lenTerm, aj as litC, ak as localNamedExports, al as number, am as omit, an as partial, ao as pick, ap as refineDiagCount, aq as refineToIndexedFull, ar as resetNudoModuleExecCache, as as resetParseSourceCache, at as serializeCheckJson, au as serializeCheckJsonMulti, av as setInterfaceDiagCollector, aw as setRefineDiagCollector, ax as shape, ay as sidecarClosureFingerprint, az as sidecarPathOf, aA as string, aB as takeInterfaceDiags, aC as takeInterfaceDiagsSince, aD as takeRefineDiags, aE as takeRefineDiagsSince, aF as throwConstraintToKinds, aG as union } from './check-report-TEOZ4cPZ.js';
6
- import { A as AbsModuleExports, R as RunTranspiledOptions } from './index-DMjMPLV0.js';
7
- export { $ as $add, a as $arguments, b as $arr, c as $arrMutContainer, d as $arrRest, e as $arrWithHoles, f as $assignRecord, g as $async, h as $asyncReturn, i as $await, j as $bitand, k as $bitnot, l as $bitor, m as $bitxor, n as $call, o as $callNamed, p as $catchVal, q as $class, r as $classExpr, s as $collectionForEach, t as $concat, u as $copy, v as $del, w as $delRes, x as $div, y as $dynamicImport, z as $elems, B as $eq, C as $eqLoose, D as $fnVal, E as $for, F as $forInKeys, G as $forIter, H as $forOf, I as $fork, J as $ge, K as $gen, L as $get, M as $gt, N as $idx, O as $idxSet, P as $importMeta, Q as $in, S as $instanceof, T as $instanceofNonIdent, U as $invoke, V as $invokeSuper, W as $isBreakTo, X as $isForkExit, Y as $join, Z as $le, _ as $len, a0 as $lit, a1 as $loopBreak, a2 as $loopContinue, a3 as $loopReturn, a4 as $lt, a5 as $mod, a6 as $mul, a7 as $ne, a8 as $neLoose, a9 as $neg, aa as $new, ab as $not, ac as $nullishTest, ad as $obj, ae as $objAccessor, af as $objRest, ag as $optionalGet, ah as $optionalInvoke, ai as $orDefault, aj as $pow, ak as $pushLoopExit, al as $rawThis, am as $reStateCall, an as $recordBinding, ao as $regex, ap as $rethrowIfNudoReturn, aq as $set, ar as $setKey, as as $shl, at as $shr, au as $spread, av as $staticInvoke, aw as $sub, ax as $super, ay as $switch, az as $thisGet, aA as $thisSet, aB as $throw, aC as $toNumber, aD as $tryCurrentMark, aE as $tryDetachSoftCatch, aF as $tryDigestSoftCatch, aG as $tryDiscardSoft, aH as $tryMark, aI as $tryOrphanSoft, aJ as $tryPopMark, aK as $tryReleaseSoftCatch, aL as $tryReleaseSoftOut, aM as $tryTakeSince, aN as $typeof, aO as $unknown, aP as $ushr, aQ as $while, aR as $whileSeq, aS as $yield, aT as DEFAULT_MAX_LOOP_ITERS, aU as EvalAbsAssignRecord, aV as EvalCallRecord, aW as EvalClassSpec, aX as EvalFallback, aY as MAX_EVAL_CALL_DEPTH, aZ as MAX_EVAL_TOTAL_CALLS, a_ as NudoLoopSignal, a$ as NudoReturn, b0 as NudoThrow, b1 as NudoUnsupportedError, b2 as RUNTIME_IMPORT_RE, b3 as TranspileOptions, b4 as TranspiledCallResult, b5 as asAbsVal, b6 as bindImports, b7 as bindingsOf, b8 as callAtFunctionBoundary, b9 as callTranspiledExport, ba as callTranspiledExportFull, bb as clearBClasses, bc as clearStaleTermPred, bd as collectAbsExports, be as currentExecPhi, bf as evalExprAbs, bg as fillTuple, bh as foldRequireSpecArg, bi as foldStaticStringExpr, bj as getEvalCallCollector, bk as getEvalClass, bl as isArrMutator, bm as isDefinitelyFalse, bn as isDefinitelyTrue, bo as isNudoBreak, bp as isNudoContinue, bq as isNudoReturn, br as isNudoThrow, bs as litTruth, bt as lookupObjAccessor, bu as namespaceNameOf, bv as noteEvalCallRecord, bw as noteEvalFallback, bx as pushLoopExit, by as pushThrowExit, bz as registerEvalClass, bA as resetEvalCallBudget, bB as runTranspiled, bC as runTranspiledOptionsMemoKey, bD as runWithLoopExits, bE as runtimeImportOf, bF as setEvalAssignCollector, bG as setEvalBindingSink, bH as setEvalCallCollector, bI as setEvalFallbackCollector, bJ as takeLoopExits, bK as takeThrowExits, bL as transpile, bM as transpileBodyNode, bN as transpileExpression, bO as transpileFile, bP as transpileSource, bQ as tryRunTranspiled, bR as withExecPhi } from './index-DMjMPLV0.js';
4
+ import { p as parseSource, L as LeakBudget, E as EffectiveInterfaceOpts, b as LoadDepsFingerprint, i as CheckReport, N as NudoConstraint } from './check-report-0B9Z66n0.js';
5
+ export { j as CheckAction, C as CheckIssue, k as CheckJson, o as CheckJsonMulti, q as ConstraintBuilder, D as Diagnostic, u as EffectiveInterface, G as GitlabCodeQualityIssue, v as InterfaceDiag, I as InterfaceSource, w as InterfaceTierInfo, a as InterfaceTierOpts, x as NamedImport, y as NudoField, z as NudoFnConstraint, A as NudoSidecarError, B as NudoSig, R as RefineDiag, F as RefineEntry, H as RefineResolveOpts, S as SELF, J as actionsForIssue, K as andC, M as any, O as array, P as boolean, Q as checkArg, T as checkCall, U as constraintToEntryAbs, V as effectiveInterface, W as execNudoModule, X as extractDeclaredThrows, Y as extractNudoImports, Z as extractRefineReturnFromSource, _ as extractRefinesFromSource, $ as fn, a0 as fnConstraintToEntryReqs, a1 as formatCheckReport, a2 as formatConstraint, a3 as formatDiagnostics, a4 as formatEffectiveInterfaceDisplay, a5 as formatGithubAnnotations, a6 as formatGitlabCodeQuality, a7 as formatInterfaceTierLine, a8 as generatedExportNames, a9 as getParseSourceCacheSize, aa as getTerm, ab as instantiateConstraint, ac as interfaceDiagCount, ad as interfaceSourceOf, ae as interfaceTierOf, af as isIntFlag, ag as isNodeModulesPath, ah as isNudoConstraint, ai as lenTerm, aj as litC, ak as localNamedExports, al as number, am as omit, an as partial, ao as pick, ap as refineDiagCount, aq as refineToIndexedFull, ar as resetNudoModuleExecCache, as as resetParseSourceCache, at as serializeCheckJson, au as serializeCheckJsonMulti, av as setInterfaceDiagCollector, aw as setRefineDiagCollector, ax as shape, ay as sidecarClosureFingerprint, az as sidecarPathOf, aA as string, aB as takeInterfaceDiags, aC as takeInterfaceDiagsSince, aD as takeRefineDiags, aE as takeRefineDiagsSince, aF as throwConstraintToKinds, aG as union } from './check-report-0B9Z66n0.js';
6
+ import { A as AbsModuleExports, R as RunTranspiledOptions } from './index-BNiZvVHw.js';
7
+ export { $ as $add, a as $arguments, b as $arr, c as $arrMutContainer, d as $arrRest, e as $arrWithHoles, f as $assignRecord, g as $async, h as $asyncReturn, i as $await, j as $bitand, k as $bitnot, l as $bitor, m as $bitxor, n as $call, o as $callNamed, p as $catchVal, q as $class, r as $classExpr, s as $collectionForEach, t as $concat, u as $copy, v as $del, w as $delRes, x as $div, y as $dynamicImport, z as $elems, B as $eq, C as $eqLoose, D as $fnVal, E as $for, F as $forInKeys, G as $forIter, H as $forOf, I as $fork, J as $ge, K as $gen, L as $get, M as $gt, N as $idx, O as $idxSet, P as $importMeta, Q as $in, S as $instanceof, T as $instanceofNonIdent, U as $invoke, V as $invokeSuper, W as $isBreakTo, X as $isForkExit, Y as $join, Z as $le, _ as $len, a0 as $lit, a1 as $loopBreak, a2 as $loopContinue, a3 as $loopReturn, a4 as $lt, a5 as $mod, a6 as $mul, a7 as $ne, a8 as $neLoose, a9 as $neg, aa as $new, ab as $not, ac as $nullishTest, ad as $obj, ae as $objAccessor, af as $objRest, ag as $optionalGet, ah as $optionalInvoke, ai as $orDefault, aj as $pow, ak as $pushLoopExit, al as $rawThis, am as $reStateCall, an as $recordBinding, ao as $regex, ap as $rethrowIfNudoReturn, aq as $set, ar as $setKey, as as $shl, at as $shr, au as $spread, av as $staticInvoke, aw as $sub, ax as $super, ay as $switch, az as $thisGet, aA as $thisSet, aB as $throw, aC as $toNumber, aD as $toNumeric, aE as $tryCurrentMark, aF as $tryDetachSoftCatch, aG as $tryDigestSoftCatch, aH as $tryDiscardSoft, aI as $tryMark, aJ as $tryOrphanSoft, aK as $tryPopMark, aL as $tryReleaseSoftCatch, aM as $tryReleaseSoftOut, aN as $tryTakeSince, aO as $typeof, aP as $unknown, aQ as $updateAdd, aR as $updateSub, aS as $ushr, aT as $while, aU as $whileSeq, aV as $yield, aW as DEFAULT_MAX_LOOP_ITERS, aX as EvalAbsAssignRecord, aY as EvalCallRecord, aZ as EvalClassSpec, a_ as EvalFallback, a$ as MAX_EVAL_CALL_DEPTH, b0 as MAX_EVAL_TOTAL_CALLS, b1 as NudoLoopSignal, b2 as NudoReturn, b3 as NudoThrow, b4 as NudoUnsupportedError, b5 as RUNTIME_IMPORT_RE, b6 as TranspileOptions, b7 as TranspiledCallResult, b8 as asAbsVal, b9 as bindImports, ba as bindingsOf, bb as callAtFunctionBoundary, bc as callTranspiledExport, bd as callTranspiledExportFull, be as clearBClasses, bf as clearStaleTermPred, bg as collectAbsExports, bh as currentExecPhi, bi as evalExprAbs, bj as fillTuple, bk as foldRequireSpecArg, bl as foldStaticStringExpr, bm as getEvalCallCollector, bn as getEvalClass, bo as isArrMutator, bp as isDefinitelyFalse, bq as isDefinitelyTrue, br as isNudoBreak, bs as isNudoContinue, bt as isNudoReturn, bu as isNudoThrow, bv as litTruth, bw as lookupObjAccessor, bx as namespaceNameOf, by as noteEvalCallRecord, bz as noteEvalFallback, bA as pushLoopExit, bB as pushThrowExit, bC as registerEvalClass, bD as resetEvalCallBudget, bE as runTranspiled, bF as runTranspiledOptionsMemoKey, bG as runWithLoopExits, bH as runtimeImportOf, bI as setEvalAssignCollector, bJ as setEvalBindingSink, bK as setEvalCallCollector, bL as setEvalFallbackCollector, bM as takeLoopExits, bN as takeThrowExits, bO as transpile, bP as transpileBodyNode, bQ as transpileExpression, bR as transpileFile, bS as transpileSource, bT as tryRunTranspiled, bU as withExecPhi } from './index-BNiZvVHw.js';
8
8
 
9
9
  /**
10
10
  * AstEnv:抽象求值环境类型面(ast-eval 删除后保留)。
@@ -164,7 +164,17 @@ declare function markPureFn(target: object, name: string): void;
164
164
  /** 读纯函数标记(Abs impl 或对象属性 `_memoize`) */
165
165
  declare function pureFnNameOf(fn: unknown): string | undefined;
166
166
  /** 造一个带实现的 Abs 函数值 */
167
- declare function absFunction(params: string[], impl: Omit<AbsFnImpl, "params">): Abs;
167
+ declare function absFunction(params: string[], impl: Omit<AbsFnImpl, "params">, opts?: {
168
+ name?: string;
169
+ paramTypes?: Abs[];
170
+ returnType?: Abs;
171
+ slots?: Record<string, {
172
+ value: Abs;
173
+ optional?: boolean;
174
+ readonly?: boolean;
175
+ }>;
176
+ conf?: Confidence;
177
+ }): Abs;
168
178
  /** relationFn 稳定 fingerprint(同签名共享,见 §3.3 已知限制) */
169
179
  declare function relationFingerprint(paramTypes: Abs[], returnType: Abs): string;
170
180
  /**
@@ -410,7 +420,7 @@ declare function shrAbs(a: Abs, b: Abs): Abs;
410
420
  declare function ushrAbs(a: Abs, b: Abs): Abs;
411
421
  /** ** —— 幂(右结合由 AST 保证);负指数 bigint 原生 RangeError → 不可折叠 */
412
422
  declare function powAbs(a: Abs, b: Abs): Abs;
413
- /** 一元 + —— ToNumber 折叠;bigint 原生恒抛 TypeError → 不可折叠 */
423
+ /** 一元 + —— ToNumber 折叠;bigint(含抽象 prim)原生恒抛 TypeError → 硬抛 */
414
424
  declare function toNumberAbs(a: Abs): Abs;
415
425
  /** JS typeof:结果域永远是 string */
416
426
  declare function typeofAbs(a: Abs): Abs;
@@ -669,6 +679,13 @@ type Slot = {
669
679
  };
670
680
  /** ES 规范数组下标(无前导零、< 2^32-1);非规范键返回 undefined */
671
681
  declare function canonicalArrayIndex(v: unknown): number | undefined;
682
+ /**
683
+ * ES ToPropertyKey 的字面量折叠:null→"null"、undefined→"undefined"、
684
+ * true/false→"true"/"false"、number/bigint/string → String(v)(ToString)。
685
+ * 必须看 term——litValue 把 lit(undefined) 吞成哨兵 undefined。
686
+ * 抽象 / symbol 返回 undefined(调用方保守处理)。
687
+ */
688
+ declare function propertyKeyOf(a: Abs | undefined): string | undefined;
672
689
  type ObjShape = {
673
690
  k: "obj";
674
691
  slots: Record<string, Slot>;
@@ -1198,4 +1215,4 @@ declare function absToConstraint(a: Abs): NudoConstraint | undefined;
1198
1215
  */
1199
1216
  declare function joinThenProject(absList: Abs[]): NudoConstraint | undefined;
1200
1217
 
1201
- export { Abs, type AbsAssignRecord, type AbsCallRecord, type AbsFnImpl, AbsModuleExports, type AbsSigImpl, AstEnv, type CheckOptions, CheckReport, Confidence, EffectiveInterfaceOpts, type Environment, type ExtState, type FnAbs, type FormalParam, type FormatOptions, HofCollectCtx, HofSite, type LeqResult, type MockHelper, NudoConstraint, OBJECT_PROTO_METHOD_NAMES, type ObjShape, Phi, type PolyFn, Pred, type PropFlags, RelSource, RunTranspiledOptions, Shape, type Slot, Term, type TypeParam, absFunction, absShapeKey, absToConstraint, add, alphaOf, applyCallbackAbs, applyCallbackValue, asAbs, assignSourceSlots, attachFnImpl, beginCollectionFork, betaOf, bitandAbs, bitnotAbs, bitorAbs, bitxorAbs, buildArgsFromAssume, builtinCtorAbs, builtinCtorNameOf, callAbsMethod, canonicalArrayIndex, checkSource, clearCollectionTables, cmp, collectAbsFreeVars, collectionElementJoin, collectionExactLen, contractParamNameSet, createEnvironment, createHofCollectCtx, ctorArgDefinitelyInvalid, ctorNameOfRecv, currentPhi, definitelyNotNullishShape, describePhi, div, drainPromiseMicros, emptyEnv, endCollectionFork, enterPromiseExecutorScope, errorBrandAbs, evalArrayStatic, evalBuiltinInstanceMethod, evalBuiltinNew, evalDateCtor, evalDateMethod, evalDateStatic, evalGlobalFn, evalJsonMethod, evalMathMethod, evalNamespaceCall, evalNumberStatic, evalObjectMethod, evalObjectProtoMethod, evalPromiseCtor, evalPromiseMethod, evalPromiseStatic, evalRegExpCtor, evalRegExpMethod, evalStringStatic, evalSymbolCtor, evictCheckSourceMemoForPaths, evictGeneralizeMemoForPaths, extStateOf, extractFn, falseConstraint, fnOf, formalParamDisplayNames, formalParamsFromNodes, formatAbs, formatAbsMultiline, formatShape, formatShapeSlot, generalizeAll, generalizeFromAst, getAbsProperty, getFnImpl, getGeneralizeMemoSize, getPropFlags, getSlot, hostBuiltinCtorName, instantiateReturn, isErrorCtorName, isMapAbs, isNullProtoObj, isNullishLitAbs, isObj, isObjectProtoBrand, isRelFn, isSetAbs, isSymbolAbs, joinAbs, joinFunctions, joinObjects, joinThenProject, joinValues, leavePromiseExecutorScope, leqAbs, listFunctionNames, literalMeetsConstraint, locateContractParam, looseEqAbs, makeArrayCtorAbs, makeMapAbs, makeSetAbs, makeSum, makeSymbolAbs, mapClearEntries, mapDeleteEntry, mapElementFallback, mapEntriesAbs, mapGetEntry, mapHasEntry, mapSetEntry, mapSizeAbs, mapValuesAbs, markExtState, markNullProtoObj, markPureFn, matchRelIdentLit, mergeCollectionArms, migrateInvariants, migrateNullProto, mock, mod, mul, negAbs, notAbs, noteCollectionWrite, notePromiseExecutorFork, objOf, objectProtoBrand, objectProtoMethodAbs, parseSource, popCollectionArm, popPhi, powAbs, projectFlatMapResult, promoteParamShape, protoBrandAbs, protoOfRecv, pureFnNameOf, pushCollectionArm, pushPhi, queuePromiseMicro, refineAbsForRelTrue, regexBrandAbsFrom, relationFingerprint, relationFn, requiredFnArity, resetCheckSourceMemo, resetGeneralizeMemo, resetPhi, setAddEntry, setApplyCallbackHost, setClearEntries, setDeleteEntry, setElementsAbs, setHasEntry, setPropFlags, setSizeAbs, shapeOnlyFn, shlAbs, shrAbs, snapshotAbs, spread, spy, strictEqAbs, stringOfSymbol, stripTypes, stub, sub, substAbs, substPredAbs, symbolDescriptionAbs, symbolIdOf, toNumberAbs, trueConstraint, tryMakeRegexAbs, tryPromoteDirectCall, tryPromoteForOfIteratee, tryPromoteHofCallback, tryPromoteReceiverAsArr, typeofAbs, undefAbs, ushrAbs, withPhiConstraint, withVar };
1218
+ export { Abs, type AbsAssignRecord, type AbsCallRecord, type AbsFnImpl, AbsModuleExports, type AbsSigImpl, AstEnv, type CheckOptions, CheckReport, Confidence, EffectiveInterfaceOpts, type Environment, type ExtState, type FnAbs, type FormalParam, type FormatOptions, HofCollectCtx, HofSite, type LeqResult, type MockHelper, NudoConstraint, OBJECT_PROTO_METHOD_NAMES, type ObjShape, Phi, type PolyFn, Pred, type PropFlags, RelSource, RunTranspiledOptions, Shape, type Slot, Term, type TypeParam, absFunction, absShapeKey, absToConstraint, add, alphaOf, applyCallbackAbs, applyCallbackValue, asAbs, assignSourceSlots, attachFnImpl, beginCollectionFork, betaOf, bitandAbs, bitnotAbs, bitorAbs, bitxorAbs, buildArgsFromAssume, builtinCtorAbs, builtinCtorNameOf, callAbsMethod, canonicalArrayIndex, checkSource, clearCollectionTables, cmp, collectAbsFreeVars, collectionElementJoin, collectionExactLen, contractParamNameSet, createEnvironment, createHofCollectCtx, ctorArgDefinitelyInvalid, ctorNameOfRecv, currentPhi, definitelyNotNullishShape, describePhi, div, drainPromiseMicros, emptyEnv, endCollectionFork, enterPromiseExecutorScope, errorBrandAbs, evalArrayStatic, evalBuiltinInstanceMethod, evalBuiltinNew, evalDateCtor, evalDateMethod, evalDateStatic, evalGlobalFn, evalJsonMethod, evalMathMethod, evalNamespaceCall, evalNumberStatic, evalObjectMethod, evalObjectProtoMethod, evalPromiseCtor, evalPromiseMethod, evalPromiseStatic, evalRegExpCtor, evalRegExpMethod, evalStringStatic, evalSymbolCtor, evictCheckSourceMemoForPaths, evictGeneralizeMemoForPaths, extStateOf, extractFn, falseConstraint, fnOf, formalParamDisplayNames, formalParamsFromNodes, formatAbs, formatAbsMultiline, formatShape, formatShapeSlot, generalizeAll, generalizeFromAst, getAbsProperty, getFnImpl, getGeneralizeMemoSize, getPropFlags, getSlot, hostBuiltinCtorName, instantiateReturn, isErrorCtorName, isMapAbs, isNullProtoObj, isNullishLitAbs, isObj, isObjectProtoBrand, isRelFn, isSetAbs, isSymbolAbs, joinAbs, joinFunctions, joinObjects, joinThenProject, joinValues, leavePromiseExecutorScope, leqAbs, listFunctionNames, literalMeetsConstraint, locateContractParam, looseEqAbs, makeArrayCtorAbs, makeMapAbs, makeSetAbs, makeSum, makeSymbolAbs, mapClearEntries, mapDeleteEntry, mapElementFallback, mapEntriesAbs, mapGetEntry, mapHasEntry, mapSetEntry, mapSizeAbs, mapValuesAbs, markExtState, markNullProtoObj, markPureFn, matchRelIdentLit, mergeCollectionArms, migrateInvariants, migrateNullProto, mock, mod, mul, negAbs, notAbs, noteCollectionWrite, notePromiseExecutorFork, objOf, objectProtoBrand, objectProtoMethodAbs, parseSource, popCollectionArm, popPhi, powAbs, projectFlatMapResult, promoteParamShape, propertyKeyOf, protoBrandAbs, protoOfRecv, pureFnNameOf, pushCollectionArm, pushPhi, queuePromiseMicro, refineAbsForRelTrue, regexBrandAbsFrom, relationFingerprint, relationFn, requiredFnArity, resetCheckSourceMemo, resetGeneralizeMemo, resetPhi, setAddEntry, setApplyCallbackHost, setClearEntries, setDeleteEntry, setElementsAbs, setHasEntry, setPropFlags, setSizeAbs, shapeOnlyFn, shlAbs, shrAbs, snapshotAbs, spread, spy, strictEqAbs, stringOfSymbol, stripTypes, stub, sub, substAbs, substPredAbs, symbolDescriptionAbs, symbolIdOf, toNumberAbs, trueConstraint, tryMakeRegexAbs, tryPromoteDirectCall, tryPromoteForOfIteratee, tryPromoteHofCallback, tryPromoteReceiverAsArr, typeofAbs, undefAbs, ushrAbs, withPhiConstraint, withVar };
package/dist/index.js CHANGED
@@ -67,7 +67,7 @@ import {
67
67
  takeRefineDiagsSince,
68
68
  throwConstraintToKinds,
69
69
  union
70
- } from "./chunk-GD5XIQQK.js";
70
+ } from "./chunk-TOURNNEA.js";
71
71
  import {
72
72
  $add,
73
73
  $arguments,
@@ -160,6 +160,7 @@ import {
160
160
  $thisSet,
161
161
  $throw,
162
162
  $toNumber,
163
+ $toNumeric,
163
164
  $tryCurrentMark,
164
165
  $tryDetachSoftCatch,
165
166
  $tryDigestSoftCatch,
@@ -172,6 +173,8 @@ import {
172
173
  $tryTakeSince,
173
174
  $typeof,
174
175
  $unknown,
176
+ $updateAdd,
177
+ $updateSub,
175
178
  $ushr,
176
179
  $while,
177
180
  $whileSeq,
@@ -385,6 +388,7 @@ import {
385
388
  primToTypeof,
386
389
  projectFlatMapResult,
387
390
  promoteParamShape,
391
+ propertyKeyOf,
388
392
  protoBrandAbs,
389
393
  protoOfRecv,
390
394
  ptypeof,
@@ -466,7 +470,7 @@ import {
466
470
  v,
467
471
  withExecPhi,
468
472
  withVar
469
- } from "./chunk-WB565PQK.js";
473
+ } from "./chunk-4V3CRVSD.js";
470
474
 
471
475
  // src/environment.ts
472
476
  function createEnvironment(parent, bindings = /* @__PURE__ */ new Map()) {
@@ -1465,8 +1469,11 @@ function widenForAssign(a) {
1465
1469
  a.conf
1466
1470
  );
1467
1471
  }
1468
- const lv = litValue(a);
1469
- if (lv !== void 0 && a.term?.op === "lit") {
1472
+ if (a.term?.op === "lit") {
1473
+ const lv = a.term.value;
1474
+ if (lv === null || lv === void 0) {
1475
+ return abs({ k: "unknown" }, void 0, void 0, a.conf);
1476
+ }
1470
1477
  if (typeof lv === "number") {
1471
1478
  return abs({ k: "prim", type: "number" }, void 0, void 0, a.conf);
1472
1479
  }
@@ -2847,6 +2854,7 @@ export {
2847
2854
  $thisSet,
2848
2855
  $throw,
2849
2856
  $toNumber,
2857
+ $toNumeric,
2850
2858
  $tryCurrentMark,
2851
2859
  $tryDetachSoftCatch,
2852
2860
  $tryDigestSoftCatch,
@@ -2859,6 +2867,8 @@ export {
2859
2867
  $tryTakeSince,
2860
2868
  $typeof,
2861
2869
  $unknown,
2870
+ $updateAdd,
2871
+ $updateSub,
2862
2872
  $ushr,
2863
2873
  $while,
2864
2874
  $whileSeq,
@@ -3126,6 +3136,7 @@ export {
3126
3136
  primToTypeof,
3127
3137
  projectFlatMapResult,
3128
3138
  promoteParamShape,
3139
+ propertyKeyOf,
3129
3140
  protoBrandAbs,
3130
3141
  protoOfRecv,
3131
3142
  ptypeof,
@@ -1,7 +1,7 @@
1
- import { I as InterfaceSource, a as InterfaceTierOpts, p as parseSource, C as CheckIssue } from './check-report-TEOZ4cPZ.js';
2
- export { L as LeakBudget, b as LoadDepsFingerprint, d as defaultLeakBudget, e as exceedsBudget, c as extractAllLoadSpecs, l as leakIfNeeded, f as loadModuleDepsFingerprint, m as maybeLeak, n as normPath, r as resetLeakCounter, g as resolveDepPath, s as sidecarSpecsOf, t as termDepth, h as termNodes } from './check-report-TEOZ4cPZ.js';
3
- import { A as Abs, T as Term, c as AstEnv } from './hof-types-COqDeD5F.js';
4
- export { $ as $tryDigestSoft, d as $tryMarkSoft, e as $tryReleaseSoft, E as ERROR_FAMILY, M as MayThrowEffect, f as errorTypeAbs, g as filterDeclaredThrows, h as filterGateThrows, i as filterIgnoredThrows, j as flushMayThrowEffects, k as formatThrowsAbs, l as getMayThrowCollector, m as isThrowsIgnored, n as mayThrowEffectsToAbs, o as orphanMayThrowEffects, p as popMayThrowFrame, q as pushMayThrowFrame, r as recordMayThrow, s as runWithMayThrowSession, t as setMayThrowCollector, u as throwAbsToKinds, v as throwsKindCovered } from './hof-types-COqDeD5F.js';
1
+ import { I as InterfaceSource, a as InterfaceTierOpts, p as parseSource, C as CheckIssue } from './check-report-0B9Z66n0.js';
2
+ export { L as LeakBudget, b as LoadDepsFingerprint, d as defaultLeakBudget, e as exceedsBudget, c as extractAllLoadSpecs, l as leakIfNeeded, f as loadModuleDepsFingerprint, m as maybeLeak, n as normPath, r as resetLeakCounter, g as resolveDepPath, s as sidecarSpecsOf, t as termDepth, h as termNodes } from './check-report-0B9Z66n0.js';
3
+ import { A as Abs, T as Term, c as AstEnv } from './hof-types-DqDpAxfh.js';
4
+ export { $ as $tryDigestSoft, d as $tryMarkSoft, e as $tryReleaseSoft, E as ERROR_FAMILY, M as MayThrowEffect, f as errorTypeAbs, g as filterDeclaredThrows, h as filterGateThrows, i as filterIgnoredThrows, j as flushMayThrowEffects, k as formatThrowsAbs, l as getMayThrowCollector, m as isThrowsIgnored, n as mayThrowEffectsToAbs, o as orphanMayThrowEffects, p as popMayThrowFrame, q as pushMayThrowFrame, r as recordMayThrow, s as runWithMayThrowSession, t as setMayThrowCollector, u as throwAbsToKinds, v as throwsKindCovered } from './hof-types-DqDpAxfh.js';
5
5
  import { File, Node } from '@babel/types';
6
6
 
7
7
  /**
package/dist/internal.js CHANGED
@@ -16,7 +16,7 @@ import {
16
16
  resolveDepPath,
17
17
  sidecarSpecsOf,
18
18
  stableAnalyzeKeySource
19
- } from "./chunk-GD5XIQQK.js";
19
+ } from "./chunk-TOURNNEA.js";
20
20
  import {
21
21
  $tryDigestSoft,
22
22
  $tryMarkSoft,
@@ -135,7 +135,7 @@ import {
135
135
  truncatedAbs,
136
136
  viewTemplateParts,
137
137
  wrapPromise
138
- } from "./chunk-WB565PQK.js";
138
+ } from "./chunk-4V3CRVSD.js";
139
139
 
140
140
  // src/algebra/inlay.ts
141
141
  function listFunctions(source) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nudojs/core",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "engines": {
5
5
  "node": ">=20"
6
6
  },