@nudojs/core 1.11.2 → 1.11.3
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/{chunk-SWG6PLYE.js → chunk-2PFT7GU2.js} +1 -1
- package/dist/{chunk-NEKTOZLJ.js → chunk-GL6VOF75.js} +347 -103
- package/dist/exec.d.ts +14 -4
- package/dist/exec.js +1 -1
- package/dist/index.d.ts +12 -4
- package/dist/index.js +2 -2
- package/dist/internal.d.ts +4 -4
- package/dist/internal.js +2 -2
- package/dist/{projection-budget-PN_0_9D3.d.ts → projection-budget-CeoxA06q.d.ts} +1 -1
- package/dist/{run-dg1bW60I.d.ts → run-DaqGgSre.d.ts} +2 -0
- package/package.json +1 -1
|
@@ -3301,7 +3301,7 @@ function coerceToStringParts(a) {
|
|
|
3301
3301
|
}
|
|
3302
3302
|
if (a.shape.k === "obj" && !a.shape.open && !a.shape.index && !isNullProtoObj(a)) {
|
|
3303
3303
|
const slots = a.shape.slots;
|
|
3304
|
-
if (!Object.hasOwn(slots, "toString") && !Object.hasOwn(slots, "valueOf")) {
|
|
3304
|
+
if (!Object.hasOwn(slots, "toString") && !Object.hasOwn(slots, "valueOf") && !Object.hasOwn(slots, "@@toPrimitive")) {
|
|
3305
3305
|
return [
|
|
3306
3306
|
abs({ k: "prim", type: "string" }, lit("[object Object]"), void 0, "exact")
|
|
3307
3307
|
];
|
|
@@ -4186,7 +4186,9 @@ function getPropFlags(o) {
|
|
|
4186
4186
|
}
|
|
4187
4187
|
function enumOwnKeys(o, slots) {
|
|
4188
4188
|
const flags = getPropFlags(o);
|
|
4189
|
-
return Object.keys(slots).filter(
|
|
4189
|
+
return Object.keys(slots).filter(
|
|
4190
|
+
(k) => flags?.get(k)?.enumerable !== false && slots[k]?.internal !== true
|
|
4191
|
+
);
|
|
4190
4192
|
}
|
|
4191
4193
|
function isEnumerableView(o, key) {
|
|
4192
4194
|
return getPropFlags(o)?.get(key)?.enumerable !== false;
|
|
@@ -5011,6 +5013,71 @@ function classNameOfValue(v2) {
|
|
|
5011
5013
|
return classValues.get(v2);
|
|
5012
5014
|
}
|
|
5013
5015
|
|
|
5016
|
+
// src/algebra/exec/class-registry.ts
|
|
5017
|
+
var classRegistry = /* @__PURE__ */ new Map();
|
|
5018
|
+
var classEpoch = 0;
|
|
5019
|
+
var classEpochs = /* @__PURE__ */ new Map();
|
|
5020
|
+
var classCollisions = [];
|
|
5021
|
+
function beginClassEpoch() {
|
|
5022
|
+
classEpoch++;
|
|
5023
|
+
}
|
|
5024
|
+
function drainClassCollisions() {
|
|
5025
|
+
return classCollisions.splice(0, classCollisions.length);
|
|
5026
|
+
}
|
|
5027
|
+
function specShape(spec) {
|
|
5028
|
+
const ctorName = spec.ctor?.name ?? "anon";
|
|
5029
|
+
const methods = Object.keys(spec.methods ?? {}).sort().join(",");
|
|
5030
|
+
const statics = Object.keys(spec.staticMethods ?? {}).sort().join(",");
|
|
5031
|
+
const accessors = Object.keys(spec.accessors ?? {}).sort().join(",");
|
|
5032
|
+
const fields = Object.keys(spec.statics ?? {}).sort().join(",");
|
|
5033
|
+
const instFields = (spec.instanceFields ?? []).map((f) => f.name ?? "<computed>").sort().join(",");
|
|
5034
|
+
return `${ctorName}[${methods}](${statics}){${accessors}}{${fields}}{${instFields}}`;
|
|
5035
|
+
}
|
|
5036
|
+
function registerEvalClass(spec) {
|
|
5037
|
+
const prev = classRegistry.get(spec.name);
|
|
5038
|
+
const prevEpoch = classEpochs.get(spec.name);
|
|
5039
|
+
if (prev && prev !== spec && // 同 epoch(同一次 run 内)注册两次才可能是真碰撞:
|
|
5040
|
+
// 块级作用域同名类。跨 epoch = 顺序重注册(常态)。
|
|
5041
|
+
prevEpoch === classEpoch && specShape(prev) !== specShape(spec)) {
|
|
5042
|
+
classCollisions.push({
|
|
5043
|
+
name: spec.name,
|
|
5044
|
+
previous: specShape(prev),
|
|
5045
|
+
next: specShape(spec)
|
|
5046
|
+
});
|
|
5047
|
+
}
|
|
5048
|
+
classRegistry.set(spec.name, spec);
|
|
5049
|
+
classEpochs.set(spec.name, classEpoch);
|
|
5050
|
+
}
|
|
5051
|
+
function getEvalClass(name) {
|
|
5052
|
+
return classRegistry.get(name);
|
|
5053
|
+
}
|
|
5054
|
+
function classInstanceInnerOf(a) {
|
|
5055
|
+
const s = a.shape;
|
|
5056
|
+
if (s.k !== "brand") return void 0;
|
|
5057
|
+
if (classNameOfValue(a) === s.name) return void 0;
|
|
5058
|
+
if (!classRegistry.has(s.name)) return void 0;
|
|
5059
|
+
const inner = s.shape;
|
|
5060
|
+
const is = inner.shape;
|
|
5061
|
+
if (is.k !== "obj" || is.open || is.index) return void 0;
|
|
5062
|
+
return inner;
|
|
5063
|
+
}
|
|
5064
|
+
function classChainHasJsonUserFace(name) {
|
|
5065
|
+
let cur = name;
|
|
5066
|
+
const seen = /* @__PURE__ */ new Set();
|
|
5067
|
+
while (cur && !seen.has(cur)) {
|
|
5068
|
+
seen.add(cur);
|
|
5069
|
+
const spec = classRegistry.get(cur);
|
|
5070
|
+
if (spec?.methods?.["toJSON"]) return true;
|
|
5071
|
+
cur = spec?.superName;
|
|
5072
|
+
}
|
|
5073
|
+
return false;
|
|
5074
|
+
}
|
|
5075
|
+
function clearBClasses() {
|
|
5076
|
+
classRegistry.clear();
|
|
5077
|
+
classEpochs.clear();
|
|
5078
|
+
classCollisions.length = 0;
|
|
5079
|
+
}
|
|
5080
|
+
|
|
5014
5081
|
// src/algebra/builtins/json.ts
|
|
5015
5082
|
var NOT_LITERAL = /* @__PURE__ */ Symbol("nudo:not-literal");
|
|
5016
5083
|
var OMIT = /* @__PURE__ */ Symbol("nudo:json-omit");
|
|
@@ -5083,6 +5150,7 @@ function jsonStringifyTotal(a, seen = /* @__PURE__ */ new Set()) {
|
|
|
5083
5150
|
const flags = getPropFlags(a);
|
|
5084
5151
|
for (const [k, sv] of Object.entries(os.slots)) {
|
|
5085
5152
|
if (flags?.get(k)?.enumerable === false) continue;
|
|
5153
|
+
if (sv.internal === true) continue;
|
|
5086
5154
|
if (k === "toJSON" && sv.value.term?.op !== "lit") return false;
|
|
5087
5155
|
if (!jsonStringifyTotal(sv.value, seen)) return false;
|
|
5088
5156
|
}
|
|
@@ -5126,6 +5194,7 @@ function absToJsonNative(a, seen, valueMode) {
|
|
|
5126
5194
|
const flags = getPropFlags(a);
|
|
5127
5195
|
for (const [k, sv] of Object.entries(s.slots)) {
|
|
5128
5196
|
if (flags?.get(k)?.enumerable === false) continue;
|
|
5197
|
+
if (sv.internal === true) continue;
|
|
5129
5198
|
if (k === "toJSON") {
|
|
5130
5199
|
const ts = sv.value;
|
|
5131
5200
|
if (ts.term?.op !== "lit") return NOT_LITERAL;
|
|
@@ -5186,7 +5255,15 @@ function evalJsonMethod(name, args) {
|
|
|
5186
5255
|
if (name === "stringify") {
|
|
5187
5256
|
const a0Abs = args[0];
|
|
5188
5257
|
if (!a0Abs) return undefAbs();
|
|
5189
|
-
|
|
5258
|
+
let jsonArg = a0Abs;
|
|
5259
|
+
{
|
|
5260
|
+
const inner = classInstanceInnerOf(a0Abs);
|
|
5261
|
+
const brandName = a0Abs.shape.k === "brand" ? a0Abs.shape.name : void 0;
|
|
5262
|
+
if (inner && brandName !== void 0 && !classChainHasJsonUserFace(brandName)) {
|
|
5263
|
+
jsonArg = inner;
|
|
5264
|
+
}
|
|
5265
|
+
}
|
|
5266
|
+
const v2 = absToJsonNative(jsonArg, /* @__PURE__ */ new Set(), true);
|
|
5190
5267
|
if (v2 === NOT_LITERAL || v2 === OMIT) {
|
|
5191
5268
|
if (isNonJsonTopLevel(a0Abs)) return undefAbs();
|
|
5192
5269
|
if (v2 === NOT_LITERAL) {
|
|
@@ -6952,6 +7029,7 @@ function hasOwnDecision(recv, key) {
|
|
|
6952
7029
|
}
|
|
6953
7030
|
if (inner.shape.k === "obj") {
|
|
6954
7031
|
const slot = getSlot(inner.shape.slots, key);
|
|
7032
|
+
if (slot?.internal) return boolLit(false);
|
|
6955
7033
|
if (slot && !slot.optional) return boolLit(true);
|
|
6956
7034
|
if (slot?.optional) return boolPrimB();
|
|
6957
7035
|
if (!inner.shape.open) return boolLit(false);
|
|
@@ -6961,6 +7039,7 @@ function hasOwnDecision(recv, key) {
|
|
|
6961
7039
|
}
|
|
6962
7040
|
if (s.k === "obj") {
|
|
6963
7041
|
const slot = getSlot(s.slots, key);
|
|
7042
|
+
if (slot?.internal) return boolLit(false);
|
|
6964
7043
|
if (slot && !slot.optional) return boolLit(true);
|
|
6965
7044
|
if (slot?.optional) return boolPrimB();
|
|
6966
7045
|
if (!s.open && recv.conf === "exact") return boolLit(false);
|
|
@@ -8561,6 +8640,10 @@ function collectArrMutatorReceivers(node, acc = /* @__PURE__ */ new Set()) {
|
|
|
8561
8640
|
function isExpression(n) {
|
|
8562
8641
|
return n.type !== "PrivateName" && !n.type.endsWith("Statement") && !n.type.endsWith("Declaration");
|
|
8563
8642
|
}
|
|
8643
|
+
function privateNameKeySrc(prop) {
|
|
8644
|
+
const priv = prop.id?.name ?? prop.name;
|
|
8645
|
+
return priv ? JSON.stringify(`#${priv}`) : null;
|
|
8646
|
+
}
|
|
8564
8647
|
|
|
8565
8648
|
// src/algebra/exec/transpile/transpile-dispatch.ts
|
|
8566
8649
|
var dispatch = {};
|
|
@@ -10607,7 +10690,7 @@ function classSpecOf(stmt, depth, opts) {
|
|
|
10607
10690
|
if (!k?.type) return null;
|
|
10608
10691
|
if (!computed && k.type === "PrivateName") {
|
|
10609
10692
|
const n = k.id?.name ?? k.name;
|
|
10610
|
-
return n ? { name: `#${n}
|
|
10693
|
+
return n ? { name: `#${n}`, private: true } : null;
|
|
10611
10694
|
}
|
|
10612
10695
|
if (!computed && k.type === "Identifier" && k.name) return { name: k.name };
|
|
10613
10696
|
if (k.type === "StringLiteral" || k.type === "NumericLiteral") {
|
|
@@ -10661,7 +10744,7 @@ function classSpecOf(stmt, depth, opts) {
|
|
|
10661
10744
|
const initSrc = thunkOf(vsrc, depth + 2);
|
|
10662
10745
|
if (keyR2 && "name" in keyR2) {
|
|
10663
10746
|
instanceFieldParts.push(
|
|
10664
|
-
`${indent(depth + 2)}{ name: ${JSON.stringify(keyR2.name)}, init: ${initSrc} },`
|
|
10747
|
+
`${indent(depth + 2)}{ name: ${JSON.stringify(keyR2.name)}, init: ${initSrc}${keyR2.private === true ? ", private: true" : ""} },`
|
|
10665
10748
|
);
|
|
10666
10749
|
} else if (keyR2 && "computed" in keyR2) {
|
|
10667
10750
|
instanceFieldParts.push(
|
|
@@ -11322,6 +11405,18 @@ ${inner}
|
|
|
11322
11405
|
const r2 = isExpression(expr.right) ? transpileExpression(expr.right, opts) : "$lit(void 0)";
|
|
11323
11406
|
return `$instanceofNonIdent(${l2}, ${r2})`;
|
|
11324
11407
|
}
|
|
11408
|
+
if (expr.operator === "in" && expr.left.type === "PrivateName") {
|
|
11409
|
+
const key = privateNameKeySrc(
|
|
11410
|
+
expr.left
|
|
11411
|
+
);
|
|
11412
|
+
if (!key) {
|
|
11413
|
+
throw new NudoUnsupportedError(
|
|
11414
|
+
`binary:in-private`,
|
|
11415
|
+
expr.loc ? { line: expr.loc.start.line, column: expr.loc.start.column } : void 0
|
|
11416
|
+
);
|
|
11417
|
+
}
|
|
11418
|
+
return `$in($lit(${key}), ${transpileExpression(expr.right, opts)})`;
|
|
11419
|
+
}
|
|
11325
11420
|
const fn2 = BIN_OPS[expr.operator];
|
|
11326
11421
|
if (!fn2) {
|
|
11327
11422
|
throw new NudoUnsupportedError(
|
|
@@ -11649,14 +11744,15 @@ ${mBodyInner}
|
|
|
11649
11744
|
}
|
|
11650
11745
|
if (expr.property.type === "PrivateName") {
|
|
11651
11746
|
const recv2 = transpileExpression(expr.object, opts);
|
|
11652
|
-
const
|
|
11653
|
-
|
|
11747
|
+
const key2 = privateNameKeySrc(
|
|
11748
|
+
expr.property
|
|
11749
|
+
);
|
|
11750
|
+
if (!key2) {
|
|
11654
11751
|
throw new NudoUnsupportedError(
|
|
11655
11752
|
`member:PrivateName`,
|
|
11656
11753
|
expr.loc ? { line: expr.loc.start.line, column: expr.loc.start.column } : void 0
|
|
11657
11754
|
);
|
|
11658
11755
|
}
|
|
11659
|
-
const key2 = JSON.stringify(`#${priv}`);
|
|
11660
11756
|
return optional ? `$optionalGet(${recv2}, ${key2})` : `$get(${recv2}, ${key2})`;
|
|
11661
11757
|
}
|
|
11662
11758
|
if (expr.property.type !== "Identifier") {
|
|
@@ -11778,14 +11874,18 @@ ${mBodyInner}
|
|
|
11778
11874
|
}
|
|
11779
11875
|
if (!m.computed && m.property.type === "PrivateName") {
|
|
11780
11876
|
const obj2 = transpileExpression(m.object, opts);
|
|
11781
|
-
const
|
|
11782
|
-
|
|
11877
|
+
const key = privateNameKeySrc(
|
|
11878
|
+
m.property
|
|
11879
|
+
);
|
|
11880
|
+
if (!key) {
|
|
11783
11881
|
throw new NudoUnsupportedError(
|
|
11784
11882
|
`assign-target`,
|
|
11785
11883
|
expr.loc ? { line: expr.loc.start.line, column: expr.loc.start.column } : void 0
|
|
11786
11884
|
);
|
|
11787
11885
|
}
|
|
11788
|
-
|
|
11886
|
+
const cur = `$get(${obj2}, ${key})`;
|
|
11887
|
+
const valSrc = compoundFn ? `${compoundFn}(${cur}, ${right})` : right;
|
|
11888
|
+
return `((__v) => (($set(${obj2}, ${key}, __v)), __v))(${valSrc})`;
|
|
11789
11889
|
}
|
|
11790
11890
|
if (!m.computed && m.property.type === "Identifier") {
|
|
11791
11891
|
const obj2 = transpileExpression(m.object, opts);
|
|
@@ -12644,50 +12744,6 @@ function noteObjSlotMissing(recv, name, loc) {
|
|
|
12644
12744
|
return true;
|
|
12645
12745
|
}
|
|
12646
12746
|
|
|
12647
|
-
// src/algebra/exec/class-registry.ts
|
|
12648
|
-
var classRegistry = /* @__PURE__ */ new Map();
|
|
12649
|
-
var classEpoch = 0;
|
|
12650
|
-
var classEpochs = /* @__PURE__ */ new Map();
|
|
12651
|
-
var classCollisions = [];
|
|
12652
|
-
function beginClassEpoch() {
|
|
12653
|
-
classEpoch++;
|
|
12654
|
-
}
|
|
12655
|
-
function drainClassCollisions() {
|
|
12656
|
-
return classCollisions.splice(0, classCollisions.length);
|
|
12657
|
-
}
|
|
12658
|
-
function specShape(spec) {
|
|
12659
|
-
const ctorName = spec.ctor?.name ?? "anon";
|
|
12660
|
-
const methods = Object.keys(spec.methods ?? {}).sort().join(",");
|
|
12661
|
-
const statics = Object.keys(spec.staticMethods ?? {}).sort().join(",");
|
|
12662
|
-
const accessors = Object.keys(spec.accessors ?? {}).sort().join(",");
|
|
12663
|
-
const fields = Object.keys(spec.statics ?? {}).sort().join(",");
|
|
12664
|
-
const instFields = (spec.instanceFields ?? []).map((f) => f.name ?? "<computed>").sort().join(",");
|
|
12665
|
-
return `${ctorName}[${methods}](${statics}){${accessors}}{${fields}}{${instFields}}`;
|
|
12666
|
-
}
|
|
12667
|
-
function registerEvalClass(spec) {
|
|
12668
|
-
const prev = classRegistry.get(spec.name);
|
|
12669
|
-
const prevEpoch = classEpochs.get(spec.name);
|
|
12670
|
-
if (prev && prev !== spec && // 同 epoch(同一次 run 内)注册两次才可能是真碰撞:
|
|
12671
|
-
// 块级作用域同名类。跨 epoch = 顺序重注册(常态)。
|
|
12672
|
-
prevEpoch === classEpoch && specShape(prev) !== specShape(spec)) {
|
|
12673
|
-
classCollisions.push({
|
|
12674
|
-
name: spec.name,
|
|
12675
|
-
previous: specShape(prev),
|
|
12676
|
-
next: specShape(spec)
|
|
12677
|
-
});
|
|
12678
|
-
}
|
|
12679
|
-
classRegistry.set(spec.name, spec);
|
|
12680
|
-
classEpochs.set(spec.name, classEpoch);
|
|
12681
|
-
}
|
|
12682
|
-
function getEvalClass(name) {
|
|
12683
|
-
return classRegistry.get(name);
|
|
12684
|
-
}
|
|
12685
|
-
function clearBClasses() {
|
|
12686
|
-
classRegistry.clear();
|
|
12687
|
-
classEpochs.clear();
|
|
12688
|
-
classCollisions.length = 0;
|
|
12689
|
-
}
|
|
12690
|
-
|
|
12691
12747
|
// src/algebra/exec/runtime/members.ts
|
|
12692
12748
|
function $objAccessorKey(o, key, get, set) {
|
|
12693
12749
|
const pk = propertyKeyOf(key);
|
|
@@ -14805,7 +14861,18 @@ function $spread(a, b) {
|
|
|
14805
14861
|
}
|
|
14806
14862
|
}
|
|
14807
14863
|
const aa = asAbsVal(a);
|
|
14808
|
-
|
|
14864
|
+
let b0 = bb;
|
|
14865
|
+
{
|
|
14866
|
+
const ciInner = classInstanceInnerOf(b0);
|
|
14867
|
+
if (ciInner) {
|
|
14868
|
+
const ciSlots = ciInner.shape.slots;
|
|
14869
|
+
const pub = {};
|
|
14870
|
+
for (const k of enumOwnKeys(ciInner, ciSlots)) {
|
|
14871
|
+
setSlot(pub, k, getSlot(ciSlots, k));
|
|
14872
|
+
}
|
|
14873
|
+
b0 = abs({ k: "obj", slots: pub }, void 0, void 0, b0.conf);
|
|
14874
|
+
}
|
|
14875
|
+
}
|
|
14809
14876
|
if (aa?.shape?.k === "any" || b0?.shape?.k === "any") {
|
|
14810
14877
|
const base = spread(
|
|
14811
14878
|
aa?.shape?.k === "any" ? abs({ k: "obj", slots: {}, open: true }, void 0, void 0, "partial") : aa,
|
|
@@ -15607,7 +15674,7 @@ function $collectionForEach(recv, cb) {
|
|
|
15607
15674
|
}
|
|
15608
15675
|
return void 0;
|
|
15609
15676
|
}
|
|
15610
|
-
function $set(o, key, value) {
|
|
15677
|
+
function $set(o, key, value, opts) {
|
|
15611
15678
|
privateNameGuard(o, key);
|
|
15612
15679
|
if (!o || typeof o !== "object" || !("shape" in o)) {
|
|
15613
15680
|
return o;
|
|
@@ -15632,12 +15699,16 @@ function $set(o, key, value) {
|
|
|
15632
15699
|
throwStrictWrite();
|
|
15633
15700
|
}
|
|
15634
15701
|
if (getPropFlags(o)?.get(key)?.writable === false) throwStrictWrite();
|
|
15635
|
-
|
|
15702
|
+
const prevSlot2 = getSlot(inner2.shape.slots, key);
|
|
15703
|
+
setSlot(inner2.shape.slots, key, {
|
|
15704
|
+
value: asAbsVal(value),
|
|
15705
|
+
...prevSlot2?.internal || opts?.internal ? { internal: true } : {}
|
|
15706
|
+
});
|
|
15636
15707
|
clearStaleTermPred(o);
|
|
15637
15708
|
return o;
|
|
15638
15709
|
}
|
|
15639
15710
|
}
|
|
15640
|
-
const inner = $set(o.shape.shape, key, value);
|
|
15711
|
+
const inner = $set(o.shape.shape, key, value, opts);
|
|
15641
15712
|
const next = abs(
|
|
15642
15713
|
{ k: "brand", name: o.shape.name, shape: inner },
|
|
15643
15714
|
o.term,
|
|
@@ -15732,7 +15803,11 @@ function $set(o, key, value) {
|
|
|
15732
15803
|
if (key === "__proto__" && !isNullProtoObj(o)) {
|
|
15733
15804
|
return $setProto(o, value);
|
|
15734
15805
|
}
|
|
15735
|
-
|
|
15806
|
+
const prevSlot = getSlot(shape2.slots, key);
|
|
15807
|
+
setSlot(shape2.slots, key, {
|
|
15808
|
+
value: asAbsVal(value),
|
|
15809
|
+
...prevSlot?.internal || opts?.internal ? { internal: true } : {}
|
|
15810
|
+
});
|
|
15736
15811
|
o.conf = confJoin(o.conf, value.conf);
|
|
15737
15812
|
clearStaleTermPred(o);
|
|
15738
15813
|
return o;
|
|
@@ -18898,7 +18973,7 @@ function applyInstanceFields(spec, thisVal) {
|
|
|
18898
18973
|
}
|
|
18899
18974
|
}
|
|
18900
18975
|
if (!key) continue;
|
|
18901
|
-
cur = $set(cur, key, asAbsVal(f.init(cur)));
|
|
18976
|
+
cur = $set(cur, key, asAbsVal(f.init(cur)), { internal: f.private === true });
|
|
18902
18977
|
}
|
|
18903
18978
|
return cur;
|
|
18904
18979
|
}
|
|
@@ -20214,13 +20289,68 @@ function invokeArrMethod(arr, method, args) {
|
|
|
20214
20289
|
);
|
|
20215
20290
|
}
|
|
20216
20291
|
if (method === "concat") {
|
|
20292
|
+
const argObjShapeOf = (v2) => {
|
|
20293
|
+
const s = v2.shape;
|
|
20294
|
+
if (s.k === "obj") return s;
|
|
20295
|
+
if (s.k === "brand" && s.shape.shape.k === "obj") return s.shape.shape;
|
|
20296
|
+
return void 0;
|
|
20297
|
+
};
|
|
20298
|
+
const spreadableOf = (v2) => {
|
|
20299
|
+
const o = argObjShapeOf(v2);
|
|
20300
|
+
const slot = o ? getSlot(o.slots, "@@isConcatSpreadable") : void 0;
|
|
20301
|
+
if (!slot) return "absent";
|
|
20302
|
+
const lv = litValue(slot.value);
|
|
20303
|
+
if (!lv.ok) return "abstract";
|
|
20304
|
+
const w = lv.value;
|
|
20305
|
+
if (w === void 0 || w === null || w === false || w === "" || w === 0n || typeof w === "number" && (w === 0 || Number.isNaN(w))) {
|
|
20306
|
+
return "false";
|
|
20307
|
+
}
|
|
20308
|
+
return "true";
|
|
20309
|
+
};
|
|
20310
|
+
const spreadElsOf = (v2) => {
|
|
20311
|
+
const o = argObjShapeOf(v2);
|
|
20312
|
+
if (!o) return null;
|
|
20313
|
+
const lenAbs = getSlot(o.slots, "length")?.value;
|
|
20314
|
+
if (!lenAbs || isNullishLitAbs(lenAbs)) return [];
|
|
20315
|
+
const lv = litValue(lenAbs);
|
|
20316
|
+
if (!lv.ok || typeof lv.value !== "number") return null;
|
|
20317
|
+
const t = Math.trunc(lv.value);
|
|
20318
|
+
if (t > TUPLE_MATERIALIZE_CAP) return null;
|
|
20319
|
+
const n = t < 0 ? 0 : t;
|
|
20320
|
+
const els = [];
|
|
20321
|
+
for (let i = 0; i < n; i++) els.push(getSlot(o.slots, String(i))?.value ?? undefAbs());
|
|
20322
|
+
return els;
|
|
20323
|
+
};
|
|
20324
|
+
const spreadPossiblesOf = (v2) => {
|
|
20325
|
+
const o = argObjShapeOf(v2);
|
|
20326
|
+
const parts2 = [v2, undefAbs()];
|
|
20327
|
+
if (o) {
|
|
20328
|
+
for (const [k, s] of Object.entries(o.slots)) {
|
|
20329
|
+
if (canonicalArrayIndex(k) !== void 0) parts2.push(s.value);
|
|
20330
|
+
}
|
|
20331
|
+
if (o.index) parts2.push(o.index.value);
|
|
20332
|
+
}
|
|
20333
|
+
return parts2.reduce((x, y) => joinAbs(x, y));
|
|
20334
|
+
};
|
|
20217
20335
|
if (shape2.k === "tuple") {
|
|
20218
20336
|
const out = [...shape2.elements];
|
|
20219
20337
|
const holesC = new Set(holes);
|
|
20220
20338
|
let degraded = false;
|
|
20221
20339
|
for (const a of args) {
|
|
20222
20340
|
const aa = asAbs(a) ?? unknown;
|
|
20223
|
-
|
|
20341
|
+
const spread2 = spreadableOf(aa);
|
|
20342
|
+
if (spread2 === "true") {
|
|
20343
|
+
const els = spreadElsOf(aa);
|
|
20344
|
+
if (els === null) {
|
|
20345
|
+
out.push(spreadPossiblesOf(aa));
|
|
20346
|
+
degraded = true;
|
|
20347
|
+
} else out.push(...els);
|
|
20348
|
+
} else if (spread2 === "false") {
|
|
20349
|
+
out.push(aa);
|
|
20350
|
+
} else if (spread2 === "abstract") {
|
|
20351
|
+
out.push(spreadPossiblesOf(aa));
|
|
20352
|
+
degraded = true;
|
|
20353
|
+
} else if (aa.shape.k === "tuple") {
|
|
20224
20354
|
const argHoles = aa.shape.holes ?? [];
|
|
20225
20355
|
const base = out.length;
|
|
20226
20356
|
for (let i = 0; i < aa.shape.elements.length; i++) {
|
|
@@ -20248,10 +20378,26 @@ function invokeArrMethod(arr, method, args) {
|
|
|
20248
20378
|
confJoin(arr.conf, "path")
|
|
20249
20379
|
);
|
|
20250
20380
|
}
|
|
20251
|
-
const parts = [shape2.element
|
|
20381
|
+
const parts = [shape2.element];
|
|
20382
|
+
for (const a of args) {
|
|
20252
20383
|
const aa = asAbs(a) ?? unknown;
|
|
20253
|
-
|
|
20254
|
-
|
|
20384
|
+
const spread2 = spreadableOf(aa);
|
|
20385
|
+
if (spread2 === "true") {
|
|
20386
|
+
const els = spreadElsOf(aa);
|
|
20387
|
+
if (els === null) parts.push(spreadPossiblesOf(aa));
|
|
20388
|
+
else parts.push(...els);
|
|
20389
|
+
} else if (spread2 === "false") {
|
|
20390
|
+
parts.push(aa);
|
|
20391
|
+
} else if (spread2 === "abstract") {
|
|
20392
|
+
parts.push(spreadPossiblesOf(aa));
|
|
20393
|
+
} else if (aa.shape.k === "arr") {
|
|
20394
|
+
parts.push(aa.shape.element);
|
|
20395
|
+
} else if (aa.shape.k === "tuple") {
|
|
20396
|
+
parts.push(
|
|
20397
|
+
aa.shape.elements.length ? aa.shape.elements.reduce((x, y) => joinAbs(x, y)) : unknown
|
|
20398
|
+
);
|
|
20399
|
+
} else parts.push(aa);
|
|
20400
|
+
}
|
|
20255
20401
|
return abs(
|
|
20256
20402
|
{ k: "arr", element: parts.reduce((x, y) => joinAbs(x, y)) },
|
|
20257
20403
|
void 0,
|
|
@@ -22167,6 +22313,16 @@ function assignSourceSlots(src) {
|
|
|
22167
22313
|
}
|
|
22168
22314
|
return void 0;
|
|
22169
22315
|
}
|
|
22316
|
+
{
|
|
22317
|
+
const inner = classInstanceInnerOf(src);
|
|
22318
|
+
if (inner) {
|
|
22319
|
+
const slots = {};
|
|
22320
|
+
for (const k of enumOwnKeys(inner, inner.shape.slots)) {
|
|
22321
|
+
setSlot(slots, k, getSlot(inner.shape.slots, k));
|
|
22322
|
+
}
|
|
22323
|
+
return slots;
|
|
22324
|
+
}
|
|
22325
|
+
}
|
|
22170
22326
|
if (s.k === "prim") return s.type === "string" ? void 0 : {};
|
|
22171
22327
|
if (s.k === "eff" || s.k === "never") return {};
|
|
22172
22328
|
return void 0;
|
|
@@ -22481,9 +22637,15 @@ function evalObjectMethod(name, args) {
|
|
|
22481
22637
|
const enumKeys = (slots, target) => {
|
|
22482
22638
|
const flags = getPropFlags(target);
|
|
22483
22639
|
return Object.keys(slots).filter(
|
|
22484
|
-
(k) => flags?.get(k)?.enumerable !== false
|
|
22640
|
+
(k) => flags?.get(k)?.enumerable !== false && slots[k]?.internal !== true
|
|
22485
22641
|
);
|
|
22486
22642
|
};
|
|
22643
|
+
const classInstanceEnumEntries = (a02) => {
|
|
22644
|
+
const inner = a02 ? classInstanceInnerOf(a02) : void 0;
|
|
22645
|
+
if (!inner) return void 0;
|
|
22646
|
+
const slots = inner.shape.slots;
|
|
22647
|
+
return enumOwnKeys(inner, slots).map((k) => [k, getSlot(slots, k).value]);
|
|
22648
|
+
};
|
|
22487
22649
|
switch (name) {
|
|
22488
22650
|
case "create": {
|
|
22489
22651
|
if (a0 === void 0 || a0.term?.op === "lit" && a0.term.value === void 0) {
|
|
@@ -22584,6 +22746,10 @@ function evalObjectMethod(name, args) {
|
|
|
22584
22746
|
if (builtinBrandNoEnumKeys(a0)) {
|
|
22585
22747
|
return abs({ k: "tuple", elements: [] }, void 0, void 0, "exact");
|
|
22586
22748
|
}
|
|
22749
|
+
const ciKeys = classInstanceEnumEntries(a0);
|
|
22750
|
+
if (ciKeys) {
|
|
22751
|
+
return abs({ k: "tuple", elements: ciKeys.map(([k]) => strLit(k)) }, void 0, void 0, "exact");
|
|
22752
|
+
}
|
|
22587
22753
|
}
|
|
22588
22754
|
noteRecvMayNullish(a0, "Object.keys receiver ToObject");
|
|
22589
22755
|
return abs({ k: "arr", element: str2("path") }, void 0, void 0, "partial");
|
|
@@ -22638,6 +22804,10 @@ function evalObjectMethod(name, args) {
|
|
|
22638
22804
|
if (builtinBrandNoEnumKeys(a0)) {
|
|
22639
22805
|
return abs({ k: "tuple", elements: [] }, void 0, void 0, "exact");
|
|
22640
22806
|
}
|
|
22807
|
+
const ciVals = classInstanceEnumEntries(a0);
|
|
22808
|
+
if (ciVals) {
|
|
22809
|
+
return abs({ k: "tuple", elements: ciVals.map(([, v2]) => v2) }, void 0, void 0, "exact");
|
|
22810
|
+
}
|
|
22641
22811
|
}
|
|
22642
22812
|
noteRecvMayNullish(a0, "Object.values receiver ToObject");
|
|
22643
22813
|
return abs({ k: "arr", element: unknown }, void 0, void 0, "partial");
|
|
@@ -22715,6 +22885,20 @@ function evalObjectMethod(name, args) {
|
|
|
22715
22885
|
if (builtinBrandNoEnumKeys(a0)) {
|
|
22716
22886
|
return abs({ k: "tuple", elements: [] }, void 0, void 0, "exact");
|
|
22717
22887
|
}
|
|
22888
|
+
const ciEntries = classInstanceEnumEntries(a0);
|
|
22889
|
+
if (ciEntries) {
|
|
22890
|
+
return abs(
|
|
22891
|
+
{
|
|
22892
|
+
k: "tuple",
|
|
22893
|
+
elements: ciEntries.map(
|
|
22894
|
+
([k, v2]) => abs({ k: "tuple", elements: [strLit(k), v2] }, void 0, void 0, "exact")
|
|
22895
|
+
)
|
|
22896
|
+
},
|
|
22897
|
+
void 0,
|
|
22898
|
+
void 0,
|
|
22899
|
+
"exact"
|
|
22900
|
+
);
|
|
22901
|
+
}
|
|
22718
22902
|
}
|
|
22719
22903
|
noteRecvMayNullish(a0, "Object.entries receiver ToObject");
|
|
22720
22904
|
return abs({ k: "arr", element: unknown }, void 0, void 0, "partial");
|
|
@@ -22730,10 +22914,24 @@ function evalObjectMethod(name, args) {
|
|
|
22730
22914
|
if (typeof key !== "string") return boolPrim();
|
|
22731
22915
|
if (a0.shape.k === "obj") {
|
|
22732
22916
|
const shape2 = a0.shape;
|
|
22917
|
+
if (shape2.slots[key]?.internal === true) {
|
|
22918
|
+
return boolLit(false);
|
|
22919
|
+
}
|
|
22733
22920
|
if (Object.prototype.hasOwnProperty.call(shape2.slots, key)) return boolLit(true);
|
|
22734
22921
|
if (!shape2.open && a0.conf === "exact") return boolLit(false);
|
|
22735
22922
|
return boolPrim();
|
|
22736
22923
|
}
|
|
22924
|
+
{
|
|
22925
|
+
const inner = classInstanceInnerOf(a0);
|
|
22926
|
+
if (inner) {
|
|
22927
|
+
const slots = inner.shape.slots;
|
|
22928
|
+
const slot = getSlot(slots, key);
|
|
22929
|
+
if (slot?.internal) return boolLit(false);
|
|
22930
|
+
if (slot && !slot.optional) return boolLit(true);
|
|
22931
|
+
if (slot?.optional) return boolPrim();
|
|
22932
|
+
return boolLit(false);
|
|
22933
|
+
}
|
|
22934
|
+
}
|
|
22737
22935
|
return boolPrim();
|
|
22738
22936
|
}
|
|
22739
22937
|
case "getPrototypeOf": {
|
|
@@ -22966,6 +23164,7 @@ function evalObjectMethod(name, args) {
|
|
|
22966
23164
|
if (os.open || os.index) {
|
|
22967
23165
|
const slots = {};
|
|
22968
23166
|
for (const key of Object.keys(os.slots)) {
|
|
23167
|
+
if (os.slots[key]?.internal === true) continue;
|
|
22969
23168
|
const value = os.slots[key].value;
|
|
22970
23169
|
const flags = getPropFlags(a0)?.get(key);
|
|
22971
23170
|
slots[key] = {
|
|
@@ -22979,9 +23178,7 @@ function evalObjectMethod(name, args) {
|
|
|
22979
23178
|
}
|
|
22980
23179
|
return abs({ k: "obj", slots, open: true }, void 0, void 0, "partial");
|
|
22981
23180
|
}
|
|
22982
|
-
const entries = Object.keys(os.slots).map(
|
|
22983
|
-
(key) => [key, os.slots[key].value]
|
|
22984
|
-
);
|
|
23181
|
+
const entries = Object.keys(os.slots).filter((key) => os.slots[key]?.internal !== true).map((key) => [key, os.slots[key].value]);
|
|
22985
23182
|
const flagsMap = getPropFlags(a0);
|
|
22986
23183
|
return descSlotsOf(entries, (key) => {
|
|
22987
23184
|
const f = flagsMap?.get(key);
|
|
@@ -23057,12 +23254,28 @@ function evalObjectMethod(name, args) {
|
|
|
23057
23254
|
if (builtinBrandNoEnumKeys(a0)) {
|
|
23058
23255
|
return abs({ k: "tuple", elements: [] }, void 0, void 0, "exact");
|
|
23059
23256
|
}
|
|
23257
|
+
{
|
|
23258
|
+
const inner2 = classInstanceInnerOf(a0);
|
|
23259
|
+
if (inner2) {
|
|
23260
|
+
const os = inner2.shape;
|
|
23261
|
+
const names = Object.keys(os.slots).filter((k) => os.slots[k].internal !== true);
|
|
23262
|
+
return abs(
|
|
23263
|
+
{ k: "tuple", elements: names.map((n) => strLit(n)) },
|
|
23264
|
+
void 0,
|
|
23265
|
+
void 0,
|
|
23266
|
+
"exact"
|
|
23267
|
+
);
|
|
23268
|
+
}
|
|
23269
|
+
}
|
|
23060
23270
|
}
|
|
23061
23271
|
if (a0.shape.k === "obj") {
|
|
23062
23272
|
const os = a0.shape;
|
|
23063
23273
|
if (!os.open && !os.index) {
|
|
23064
23274
|
return abs(
|
|
23065
|
-
{
|
|
23275
|
+
{
|
|
23276
|
+
k: "tuple",
|
|
23277
|
+
elements: Object.keys(os.slots).filter((n) => os.slots[n]?.internal !== true).map((n) => strLit(n))
|
|
23278
|
+
},
|
|
23066
23279
|
void 0,
|
|
23067
23280
|
void 0,
|
|
23068
23281
|
"exact"
|
|
@@ -23099,39 +23312,45 @@ function evalObjectMethod(name, args) {
|
|
|
23099
23312
|
const key = typeof kv === "string" || typeof kv === "number" ? String(kv) : void 0;
|
|
23100
23313
|
const mkDesc = mkPropDescAbs;
|
|
23101
23314
|
const maybeDesc = maybePropDescAbs;
|
|
23315
|
+
const accessorDescOf = (target, key2) => {
|
|
23316
|
+
const acc = lookupObjAccessor(target, key2);
|
|
23317
|
+
if (!acc) return void 0;
|
|
23318
|
+
const flags = getPropFlags(target)?.get(key2);
|
|
23319
|
+
const wrapGet = (thunk) => absFunction(["_this"], {
|
|
23320
|
+
body: noBody,
|
|
23321
|
+
apply: (_args, thisVal) => thunk(thisVal ?? target)
|
|
23322
|
+
});
|
|
23323
|
+
const wrapSet = (thunk) => absFunction(["_this", "value"], {
|
|
23324
|
+
body: noBody,
|
|
23325
|
+
apply: (args2, thisVal) => {
|
|
23326
|
+
thunk(thisVal ?? target, args2[0] ?? undefAbs());
|
|
23327
|
+
return undefAbs();
|
|
23328
|
+
}
|
|
23329
|
+
});
|
|
23330
|
+
return abs(
|
|
23331
|
+
{
|
|
23332
|
+
k: "obj",
|
|
23333
|
+
slots: {
|
|
23334
|
+
get: { value: acc.get ? wrapGet(acc.get) : undefAbs() },
|
|
23335
|
+
set: { value: acc.set ? wrapSet(acc.set) : undefAbs() },
|
|
23336
|
+
enumerable: { value: boolLit(flags?.enumerable !== false) },
|
|
23337
|
+
configurable: { value: boolLit(flags?.configurable !== false) }
|
|
23338
|
+
}
|
|
23339
|
+
},
|
|
23340
|
+
void 0,
|
|
23341
|
+
void 0,
|
|
23342
|
+
"exact"
|
|
23343
|
+
);
|
|
23344
|
+
};
|
|
23102
23345
|
if (a0.shape.k === "obj") {
|
|
23103
23346
|
const os = a0.shape;
|
|
23104
23347
|
if (os.open || os.index || key === void 0) return maybeDesc();
|
|
23348
|
+
if (os.slots[key]?.internal === true) {
|
|
23349
|
+
return undefAbs();
|
|
23350
|
+
}
|
|
23105
23351
|
if (Object.prototype.hasOwnProperty.call(os.slots, key)) {
|
|
23106
|
-
const
|
|
23107
|
-
if (
|
|
23108
|
-
const flags2 = getPropFlags(a0)?.get(key);
|
|
23109
|
-
const wrapGet = (thunk) => absFunction(["_this"], {
|
|
23110
|
-
body: noBody,
|
|
23111
|
-
apply: (_args, thisVal) => thunk(thisVal ?? a0)
|
|
23112
|
-
});
|
|
23113
|
-
const wrapSet = (thunk) => absFunction(["_this", "value"], {
|
|
23114
|
-
body: noBody,
|
|
23115
|
-
apply: (args2, thisVal) => {
|
|
23116
|
-
thunk(thisVal ?? a0, args2[0] ?? undefAbs());
|
|
23117
|
-
return undefAbs();
|
|
23118
|
-
}
|
|
23119
|
-
});
|
|
23120
|
-
return abs(
|
|
23121
|
-
{
|
|
23122
|
-
k: "obj",
|
|
23123
|
-
slots: {
|
|
23124
|
-
get: { value: acc.get ? wrapGet(acc.get) : undefAbs() },
|
|
23125
|
-
set: { value: acc.set ? wrapSet(acc.set) : undefAbs() },
|
|
23126
|
-
enumerable: { value: boolLit(flags2?.enumerable !== false) },
|
|
23127
|
-
configurable: { value: boolLit(flags2?.configurable !== false) }
|
|
23128
|
-
}
|
|
23129
|
-
},
|
|
23130
|
-
void 0,
|
|
23131
|
-
void 0,
|
|
23132
|
-
"exact"
|
|
23133
|
-
);
|
|
23134
|
-
}
|
|
23352
|
+
const accDesc = accessorDescOf(a0, key);
|
|
23353
|
+
if (accDesc) return accDesc;
|
|
23135
23354
|
const flags = getPropFlags(a0)?.get(key);
|
|
23136
23355
|
return mkDesc(
|
|
23137
23356
|
readProperty(a0, key),
|
|
@@ -23143,6 +23362,27 @@ function evalObjectMethod(name, args) {
|
|
|
23143
23362
|
if (a0.conf === "exact") return undefAbs();
|
|
23144
23363
|
return maybeDesc();
|
|
23145
23364
|
}
|
|
23365
|
+
{
|
|
23366
|
+
const inner = classInstanceInnerOf(a0);
|
|
23367
|
+
if (inner && key !== void 0) {
|
|
23368
|
+
const slots = inner.shape.slots;
|
|
23369
|
+
if (slots[key]?.internal === true) {
|
|
23370
|
+
return undefAbs();
|
|
23371
|
+
}
|
|
23372
|
+
if (Object.prototype.hasOwnProperty.call(slots, key)) {
|
|
23373
|
+
const accDesc = accessorDescOf(inner, key);
|
|
23374
|
+
if (accDesc) return accDesc;
|
|
23375
|
+
const flags = getPropFlags(a0)?.get(key);
|
|
23376
|
+
return mkDesc(
|
|
23377
|
+
slots[key].value,
|
|
23378
|
+
flags?.writable !== false,
|
|
23379
|
+
flags?.enumerable !== false,
|
|
23380
|
+
flags?.configurable !== false
|
|
23381
|
+
);
|
|
23382
|
+
}
|
|
23383
|
+
return undefAbs();
|
|
23384
|
+
}
|
|
23385
|
+
}
|
|
23146
23386
|
if (a0.shape.k === "tuple" && key !== void 0) {
|
|
23147
23387
|
const holes = a0.shape.holes ?? [];
|
|
23148
23388
|
if (key === "length") {
|
|
@@ -23782,11 +24022,15 @@ function errorBrandAbs(name, args) {
|
|
|
23782
24022
|
const cause = Object.prototype.hasOwnProperty.call(optionsArg.shape.slots, "cause") ? optionsArg.shape.slots["cause"].value : undefAbs();
|
|
23783
24023
|
slots["cause"] = { value: cause };
|
|
23784
24024
|
}
|
|
24025
|
+
const errInner = objOf(slots);
|
|
24026
|
+
for (const k of Object.keys(slots)) {
|
|
24027
|
+
setPropFlags(errInner, k, { enumerable: false });
|
|
24028
|
+
}
|
|
23785
24029
|
return abs(
|
|
23786
24030
|
{
|
|
23787
24031
|
k: "brand",
|
|
23788
24032
|
name,
|
|
23789
|
-
shape:
|
|
24033
|
+
shape: errInner
|
|
23790
24034
|
},
|
|
23791
24035
|
void 0,
|
|
23792
24036
|
void 0,
|
|
@@ -26276,6 +26520,9 @@ export {
|
|
|
26276
26520
|
resetEvalForkBudget,
|
|
26277
26521
|
bumpEvalForkBudget,
|
|
26278
26522
|
evalMathMethod,
|
|
26523
|
+
registerEvalClass,
|
|
26524
|
+
getEvalClass,
|
|
26525
|
+
clearBClasses,
|
|
26279
26526
|
evalJsonMethod,
|
|
26280
26527
|
evalNumberStatic,
|
|
26281
26528
|
makeArrayCtorAbs,
|
|
@@ -26391,9 +26638,6 @@ export {
|
|
|
26391
26638
|
isEvalMissingSlotEnabled,
|
|
26392
26639
|
runWithEvalMissingSlot,
|
|
26393
26640
|
noteObjSlotMissing,
|
|
26394
|
-
registerEvalClass,
|
|
26395
|
-
getEvalClass,
|
|
26396
|
-
clearBClasses,
|
|
26397
26641
|
$objAccessorKey,
|
|
26398
26642
|
$in,
|
|
26399
26643
|
$instanceof,
|
package/dist/exec.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { A as Abs, M as MayThrowEffect, b as Phi } from './run-
|
|
2
|
-
export { W as $assignRecord, X as $call, Y as $callNamed, bI as $nodoPos, Z as $recordBinding, a5 as EvalAbsAssignRecord, a6 as EvalCallRecord, a7 as EvalFallback, g as EvalFallbackStats, a8 as EvalPosRecord, ab as MAX_EVAL_CALL_DEPTH, ac as MAX_EVAL_TOTAL_CALLS, ad as RUNTIME_IMPORT_RE, V as RunTranspiledOptions, af as TranspiledCallResult, at as bindingsOf, aw as callTranspiledExport, ax as callTranspiledExportApply, ay as callTranspiledExportFull, l as clearPureCallMemo, m as clearPureMemo, n as enterEvalCallBudgetSession, aD as evalExprAbs, p as exitEvalCallBudgetSession, v as getEvalCallBudgetState, aG as getEvalCallCollector, w as getEvalFallbackStats, bJ as getPosCollector, aO as isAbsVal, aQ as isCjsMainRun, b5 as noteEvalCallRecord, b6 as noteEvalFallback, bn as resetEvalCallBudget, H as resetEvalFallbackStats, bK as routeApplyThrows, bo as runTranspiled, bp as runTranspiledOptionsMemoKey, bq as setEvalAssignCollector, br as setEvalBindingSink, bs as setEvalCallCollector, bt as setEvalFallbackCollector, bv as setPosCollector, bF as tryRunTranspiled, O as withEvalBudgetOverride } from './run-
|
|
1
|
+
import { A as Abs, M as MayThrowEffect, b as Phi } from './run-DaqGgSre.js';
|
|
2
|
+
export { W as $assignRecord, X as $call, Y as $callNamed, bI as $nodoPos, Z as $recordBinding, a5 as EvalAbsAssignRecord, a6 as EvalCallRecord, a7 as EvalFallback, g as EvalFallbackStats, a8 as EvalPosRecord, ab as MAX_EVAL_CALL_DEPTH, ac as MAX_EVAL_TOTAL_CALLS, ad as RUNTIME_IMPORT_RE, V as RunTranspiledOptions, af as TranspiledCallResult, at as bindingsOf, aw as callTranspiledExport, ax as callTranspiledExportApply, ay as callTranspiledExportFull, l as clearPureCallMemo, m as clearPureMemo, n as enterEvalCallBudgetSession, aD as evalExprAbs, p as exitEvalCallBudgetSession, v as getEvalCallBudgetState, aG as getEvalCallCollector, w as getEvalFallbackStats, bJ as getPosCollector, aO as isAbsVal, aQ as isCjsMainRun, b5 as noteEvalCallRecord, b6 as noteEvalFallback, bn as resetEvalCallBudget, H as resetEvalFallbackStats, bK as routeApplyThrows, bo as runTranspiled, bp as runTranspiledOptionsMemoKey, bq as setEvalAssignCollector, br as setEvalBindingSink, bs as setEvalCallCollector, bt as setEvalFallbackCollector, bv as setPosCollector, bF as tryRunTranspiled, O as withEvalBudgetOverride } from './run-DaqGgSre.js';
|
|
3
3
|
import { Node, Expression, File } from '@babel/types';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -426,8 +426,12 @@ declare function $get(o: Abs, key: string, opts?: {
|
|
|
426
426
|
* 回调返回值丢弃;forEach 表达式值恒 undefined。
|
|
427
427
|
*/
|
|
428
428
|
declare function $collectionForEach(recv: Abs, cb: unknown): Abs | undefined;
|
|
429
|
-
/** 成员写:返回新 obj/brand(不可变更新);frozen/sealed/只读目标按 sloppy
|
|
430
|
-
|
|
429
|
+
/** 成员写:返回新 obj/brand(不可变更新);frozen/sealed/只读目标按 sloppy 静默失败。
|
|
430
|
+
* opts.internal(Bug 84):私有字段落地——槽打 Slot.internal 标记;后续覆写
|
|
431
|
+
* 保留既有标记(this.#x = v 不丢失 internal)。 */
|
|
432
|
+
declare function $set(o: Abs, key: string, value: Abs, opts?: {
|
|
433
|
+
internal?: boolean;
|
|
434
|
+
}): Abs;
|
|
431
435
|
|
|
432
436
|
/**
|
|
433
437
|
* async / await / generator / ??($nullishTest / $removeNullish)。
|
|
@@ -727,6 +731,12 @@ type EvalClassSpec = {
|
|
|
727
731
|
name?: string;
|
|
728
732
|
key?: (thisVal: Abs) => Abs;
|
|
729
733
|
init: (thisVal: Abs) => Abs;
|
|
734
|
+
/**
|
|
735
|
+
* Bug 84:PrivateName 声明的私有字段(transpile 期标记)——落地槽打
|
|
736
|
+
* Slot.internal,对所有属性 introspection 不可见(内部槽语义);
|
|
737
|
+
* 计算键公共字段(如 ["#x"])不带此标记(同键空间共存)。
|
|
738
|
+
*/
|
|
739
|
+
private?: boolean;
|
|
730
740
|
}>;
|
|
731
741
|
/**
|
|
732
742
|
* Bug 60:计算键成员——synth 名 → 键 Abs(定义期求值,求值本身即
|
package/dist/exec.js
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { d as AstEnv, A as Abs, b as Phi, T as Term, Q as HofCollectCtx, C as Confidence, S as Shape, a as Pred, R as RelSource, U as HofSite, c as AbsModuleExports, V as RunTranspiledOptions } from './run-
|
|
2
|
-
export { W as $assignRecord, X as $call, Y as $callNamed, Z as $recordBinding, _ as AbsApplyNoThrow, a0 as AbsApplyNoThrowFn, a1 as AbsApplyResult, a2 as AbsApplyReturn, a3 as AbsFnImpl, a4 as AbsSigImpl, a5 as EvalAbsAssignRecord, a6 as EvalCallRecord, a7 as EvalFallback, a8 as EvalPosRecord, a9 as ImplicationOracle, aa as LitValueResult, L as LiteralValue, ab as MAX_EVAL_CALL_DEPTH, ac as MAX_EVAL_TOTAL_CALLS, P as PrimName, ad as RUNTIME_IMPORT_RE, ae as TYPEOF_NAMES, af as TranspiledCallResult, ag as TypeofName, ah as abs, ai as absFunction, aj as absOnly, ak as absToString, al as and, am as anyAbs, an as anyVar, ao as app, ap as assumeFinite, aq as attachFnImpl, ar as bigintLit, as as bindImports, at as bindingsOf, au as bool, av as boolLit, aw as callTranspiledExport, ax as callTranspiledExportApply, ay as callTranspiledExportFull, az as collectAbsExports, aA as confJoin, aB as emptyPhi, aC as eq, aD as evalExprAbs, aE as ge, aF as geNum, aG as getEvalCallCollector, aH as getFnImpl, aI as getImplicationOracle, aJ as gt, aK as gtNum, aL as hostFnCtorFacet, aM as implies, aN as isAbsApplyResult, aO as isAbsVal, aP as isBigPrim, aQ as isCjsMainRun, aR as isExactLit, aS as isNumPrim, aT as isStrPrim, aU as le, aV as leNum, aW as lit, aX as litValue, aY as lt, aZ as ltNum, a_ as makeAbsApplyResult, a$ as markPureFn, b0 as namespaceAbsOf, b1 as ne, b2 as negatePred, b3 as never, b4 as not, b5 as noteEvalCallRecord, b6 as noteEvalFallback, b7 as num, b8 as numLit, b9 as numVar, ba as obj, bb as or, bc as pFalse, bd as pTrue, be as phiAnd, bf as predEquals, bg as predToString, bh as predVars, bi as primToTypeof, bj as ptypeof, bk as pureFnNameOf, bl as relationFingerprint, bm as relationFn, bn as resetEvalCallBudget, bo as runTranspiled, bp as runTranspiledOptionsMemoKey, bq as setEvalAssignCollector, br as setEvalBindingSink, bs as setEvalCallCollector, bt as setEvalFallbackCollector, bu as setImplicationOracle, bv as setPosCollector, bw as shapeOfTerm, bx as shapeOnlyFn, by as shapeToString, bz as simplifyTerm, bA as str, bB as strLit, bC as substPred, bD as termEquals, bE as termToString, bF as tryRunTranspiled, bG as unknown, bH as v } from './run-
|
|
1
|
+
import { d as AstEnv, A as Abs, b as Phi, T as Term, Q as HofCollectCtx, C as Confidence, S as Shape, a as Pred, R as RelSource, U as HofSite, c as AbsModuleExports, V as RunTranspiledOptions } from './run-DaqGgSre.js';
|
|
2
|
+
export { W as $assignRecord, X as $call, Y as $callNamed, Z as $recordBinding, _ as AbsApplyNoThrow, a0 as AbsApplyNoThrowFn, a1 as AbsApplyResult, a2 as AbsApplyReturn, a3 as AbsFnImpl, a4 as AbsSigImpl, a5 as EvalAbsAssignRecord, a6 as EvalCallRecord, a7 as EvalFallback, a8 as EvalPosRecord, a9 as ImplicationOracle, aa as LitValueResult, L as LiteralValue, ab as MAX_EVAL_CALL_DEPTH, ac as MAX_EVAL_TOTAL_CALLS, P as PrimName, ad as RUNTIME_IMPORT_RE, ae as TYPEOF_NAMES, af as TranspiledCallResult, ag as TypeofName, ah as abs, ai as absFunction, aj as absOnly, ak as absToString, al as and, am as anyAbs, an as anyVar, ao as app, ap as assumeFinite, aq as attachFnImpl, ar as bigintLit, as as bindImports, at as bindingsOf, au as bool, av as boolLit, aw as callTranspiledExport, ax as callTranspiledExportApply, ay as callTranspiledExportFull, az as collectAbsExports, aA as confJoin, aB as emptyPhi, aC as eq, aD as evalExprAbs, aE as ge, aF as geNum, aG as getEvalCallCollector, aH as getFnImpl, aI as getImplicationOracle, aJ as gt, aK as gtNum, aL as hostFnCtorFacet, aM as implies, aN as isAbsApplyResult, aO as isAbsVal, aP as isBigPrim, aQ as isCjsMainRun, aR as isExactLit, aS as isNumPrim, aT as isStrPrim, aU as le, aV as leNum, aW as lit, aX as litValue, aY as lt, aZ as ltNum, a_ as makeAbsApplyResult, a$ as markPureFn, b0 as namespaceAbsOf, b1 as ne, b2 as negatePred, b3 as never, b4 as not, b5 as noteEvalCallRecord, b6 as noteEvalFallback, b7 as num, b8 as numLit, b9 as numVar, ba as obj, bb as or, bc as pFalse, bd as pTrue, be as phiAnd, bf as predEquals, bg as predToString, bh as predVars, bi as primToTypeof, bj as ptypeof, bk as pureFnNameOf, bl as relationFingerprint, bm as relationFn, bn as resetEvalCallBudget, bo as runTranspiled, bp as runTranspiledOptionsMemoKey, bq as setEvalAssignCollector, br as setEvalBindingSink, bs as setEvalCallCollector, bt as setEvalFallbackCollector, bu as setImplicationOracle, bv as setPosCollector, bw as shapeOfTerm, bx as shapeOnlyFn, by as shapeToString, bz as simplifyTerm, bA as str, bB as strLit, bC as substPred, bD as termEquals, bE as termToString, bF as tryRunTranspiled, bG as unknown, bH as v } from './run-DaqGgSre.js';
|
|
3
3
|
import { Node, File } from '@babel/types';
|
|
4
|
-
import { p as parseSource, L as LeakBudget, E as EffectiveInterfaceOpts, b as LoadDepsFingerprint, v as CheckReport, N as NudoConstraint, c as ProjectionBudget } from './projection-budget-
|
|
5
|
-
export { w as CONSTRAINT_BUILDERS, x as CONSTRAINT_BUILDER_NAMES, y as CONSTRAINT_EXPR_RE, z as CheckAction, C as CheckIssue, A as CheckJson, B as CheckJsonMulti, D as ConstraintBuilder, F as Diagnostic, G as EffectiveInterface, H as GitlabCodeQualityIssue, J as INTERFACE_SOURCE_ABBR, K as InterfaceDiag, I as InterfaceSource, O as InterfaceTierInfo, a as InterfaceTierOpts, Q as NamedImport, R as NudoField, S as NudoFnConstraint, T as NudoSidecarError, U as NudoSig, V as RefineDiag, W as RefineEntry, X as RefineResolveOpts, Y as SELF, Z as actionsForIssue, _ as andC, $ as any, a0 as array, a1 as boolean, a2 as checkArg, a3 as checkCall, a4 as constraintAdmitsNullish, a5 as constraintToEntryAbs, a6 as derefConstraint, a7 as drainPromiseMicros, a8 as effectiveInterface, a9 as enterPromiseExecutorScope, aa as evalPromiseCtor, ab as evalPromiseMethod, ac as evalPromiseStatic, ad as execNudoModule, ae as extractDeclaredThrows, af as extractFnBudget, ag as extractNudoImports, ah as extractRefineReturnFromSource, ai as extractRefinesFromSource, aj as fn, ak as fnConstraintToEntryReqs, al as formatCheckReport, am as formatConstraint, an as formatDiagnostics, ao as formatEffectiveInterfaceDisplay, ap as formatGithubAnnotations, aq as formatGitlabCodeQuality, ar as formatInterfaceTierLine, as as generatedExportNames, at as getParseSourceCacheSize, au as getTerm, av as instantiateConstraint, aw as interfaceDiagCount, ax as interfaceSourceOf, ay as interfaceTierOf, az as isIntFlag, aA as isNodeModulesPath, aB as isNudoConstraint, aC as lazy, aD as leavePromiseExecutorScope, aE as lenTerm, aF as litC, aG as localNamedExports, aH as notePromiseExecutorFork, aI as nullable, aJ as number, aK as omit, aL as partial, aM as pick, aN as queuePromiseMicro, aO as refineDiagCount, aP as refineToIndexedFull, aQ as resetNudoModuleExecCache, aR as resetParseSourceCache, aS as resetSidecarLoadFailureCache, aT as serializeCheckJson, aU as serializeCheckJsonMulti, aV as setInterfaceDiagCollector, aW as setRefineDiagCollector, aX as shape, aY as sidecarClosureFingerprint, aZ as sidecarPathOf, a_ as string, a$ as takeInterfaceDiags, b0 as takeInterfaceDiagsSince, b1 as takeRefineDiags, b2 as takeRefineDiagsSince, b3 as throwConstraintToKinds, b4 as union } from './projection-budget-
|
|
4
|
+
import { p as parseSource, L as LeakBudget, E as EffectiveInterfaceOpts, b as LoadDepsFingerprint, v as CheckReport, N as NudoConstraint, c as ProjectionBudget } from './projection-budget-CeoxA06q.js';
|
|
5
|
+
export { w as CONSTRAINT_BUILDERS, x as CONSTRAINT_BUILDER_NAMES, y as CONSTRAINT_EXPR_RE, z as CheckAction, C as CheckIssue, A as CheckJson, B as CheckJsonMulti, D as ConstraintBuilder, F as Diagnostic, G as EffectiveInterface, H as GitlabCodeQualityIssue, J as INTERFACE_SOURCE_ABBR, K as InterfaceDiag, I as InterfaceSource, O as InterfaceTierInfo, a as InterfaceTierOpts, Q as NamedImport, R as NudoField, S as NudoFnConstraint, T as NudoSidecarError, U as NudoSig, V as RefineDiag, W as RefineEntry, X as RefineResolveOpts, Y as SELF, Z as actionsForIssue, _ as andC, $ as any, a0 as array, a1 as boolean, a2 as checkArg, a3 as checkCall, a4 as constraintAdmitsNullish, a5 as constraintToEntryAbs, a6 as derefConstraint, a7 as drainPromiseMicros, a8 as effectiveInterface, a9 as enterPromiseExecutorScope, aa as evalPromiseCtor, ab as evalPromiseMethod, ac as evalPromiseStatic, ad as execNudoModule, ae as extractDeclaredThrows, af as extractFnBudget, ag as extractNudoImports, ah as extractRefineReturnFromSource, ai as extractRefinesFromSource, aj as fn, ak as fnConstraintToEntryReqs, al as formatCheckReport, am as formatConstraint, an as formatDiagnostics, ao as formatEffectiveInterfaceDisplay, ap as formatGithubAnnotations, aq as formatGitlabCodeQuality, ar as formatInterfaceTierLine, as as generatedExportNames, at as getParseSourceCacheSize, au as getTerm, av as instantiateConstraint, aw as interfaceDiagCount, ax as interfaceSourceOf, ay as interfaceTierOf, az as isIntFlag, aA as isNodeModulesPath, aB as isNudoConstraint, aC as lazy, aD as leavePromiseExecutorScope, aE as lenTerm, aF as litC, aG as localNamedExports, aH as notePromiseExecutorFork, aI as nullable, aJ as number, aK as omit, aL as partial, aM as pick, aN as queuePromiseMicro, aO as refineDiagCount, aP as refineToIndexedFull, aQ as resetNudoModuleExecCache, aR as resetParseSourceCache, aS as resetSidecarLoadFailureCache, aT as serializeCheckJson, aU as serializeCheckJsonMulti, aV as setInterfaceDiagCollector, aW as setRefineDiagCollector, aX as shape, aY as sidecarClosureFingerprint, aZ as sidecarPathOf, a_ as string, a$ as takeInterfaceDiags, b0 as takeInterfaceDiagsSince, b1 as takeRefineDiags, b2 as takeRefineDiagsSince, b3 as throwConstraintToKinds, b4 as union } from './projection-budget-CeoxA06q.js';
|
|
6
6
|
export { $add, $arguments, $arr, $arrMutContainer, $arrRest, $arrWithHoles, $async, $asyncReturn, $await, $bitand, $bitnot, $bitor, $bitxor, $catchVal, $class, $classExpr, $collectionForEach, $concat, $copy, $del, $delRes, $div, $dynamicImport, $elems, $eq, $eqLoose, $fnVal, $for, $forInKeys, $forIter, $forOf, $fork, $ge, $gen, $get, $gt, $idx, $idxSet, $importMeta, $in, $instanceof, $instanceofNonIdent, $invoke, $invokeSuper, $isBreakTo, $isForkExit, $join, $le, $len, $lit, $loopBreak, $loopContinue, $loopReturn, $lt, $mod, $mul, $ne, $neLoose, $neg, $new, $not, $nullishTest, $obj, $objAccessor, $objRest, $optionalGet, $optionalInvoke, $orDefault, $pow, $pushLoopExit, $rawThis, $reStateCall, $regex, $rethrowIfNudoReturn, $set, $setKey, $shl, $shr, $spread, $staticInvoke, $sub, $super, $switch, $thisGet, $thisSet, $throw, $toNumber, $toNumeric, $tryCurrentMark, $tryDetachSoftCatch, $tryDigestSoftCatch, $tryDiscardSoft, $tryMark, $tryOrphanSoft, $tryPopMark, $tryReleaseSoftCatch, $tryReleaseSoftOut, $tryTakeSince, $typeof, $unknown, $updateAdd, $updateSub, $ushr, $while, $whileSeq, $yield, DEFAULT_MAX_LOOP_ITERS, EvalClassSpec, NudoLoopSignal, NudoReturn, NudoThrow, NudoUnsupportedError, TranspileOptions, asAbsVal, callAtFunctionBoundary, clearBClasses, clearStaleTermPred, currentExecPhi, fillTuple, foldRequireSpecArg, foldStaticStringExpr, getEvalClass, isArrMutator, isDefinitelyFalse, isDefinitelyTrue, isNudoBreak, isNudoContinue, isNudoReturn, isNudoThrow, litTruth, lookupObjAccessor, namespaceNameOf, pushLoopExit, pushThrowExit, registerEvalClass, runWithLoopExits, runtimeImportOf, takeLoopExits, takeThrowExits, transpile, transpileBodyNode, transpileExpression, transpileFile, transpileSource, withExecPhi } from './exec.js';
|
|
7
7
|
|
|
8
8
|
/**
|
|
@@ -567,10 +567,18 @@ declare function getAbsProperty(recv: Abs, name: string): Abs | undefined;
|
|
|
567
567
|
* 纪律:积之和默认;optional 塌缩是显式损失;函数并保输入→输出相关性。
|
|
568
568
|
*/
|
|
569
569
|
|
|
570
|
+
/**
|
|
571
|
+
* Bug 84:internal 标记私有槽(私有字段 "#x" 混淆键落实例内层 obj)。
|
|
572
|
+
* 原生私有字段是内部槽,对所有属性 introspection(for-in / hasOwnProperty
|
|
573
|
+
* / keys / gOPN / spread / assign / stringify)不可见;$get/$set 直连键
|
|
574
|
+
* 访问与 $in 槽存在性查询不受影响(Bug 78 语义)。必须用槽标志而非
|
|
575
|
+
* 名字前缀过滤——合法公共字符串键 {"#x":1} 与私有槽同键空间共存。
|
|
576
|
+
*/
|
|
570
577
|
type Slot = {
|
|
571
578
|
value: Abs;
|
|
572
579
|
optional?: boolean;
|
|
573
580
|
readonly?: boolean;
|
|
581
|
+
internal?: boolean;
|
|
574
582
|
};
|
|
575
583
|
/** ES 规范数组下标(无前导零、< 2^32-1);非规范键返回 undefined */
|
|
576
584
|
declare function canonicalArrayIndex(v: unknown): number | undefined;
|
package/dist/index.js
CHANGED
|
@@ -65,7 +65,7 @@ import {
|
|
|
65
65
|
takeInterfaceDiagsSince,
|
|
66
66
|
takeRefineDiags,
|
|
67
67
|
takeRefineDiagsSince
|
|
68
|
-
} from "./chunk-
|
|
68
|
+
} from "./chunk-2PFT7GU2.js";
|
|
69
69
|
import {
|
|
70
70
|
$add,
|
|
71
71
|
$arguments,
|
|
@@ -525,7 +525,7 @@ import {
|
|
|
525
525
|
withAssumePremises,
|
|
526
526
|
withExecPhi,
|
|
527
527
|
withVar
|
|
528
|
-
} from "./chunk-
|
|
528
|
+
} from "./chunk-GL6VOF75.js";
|
|
529
529
|
|
|
530
530
|
// src/environment.ts
|
|
531
531
|
function createEnvironment(parent, bindings = /* @__PURE__ */ new Map()) {
|
package/dist/internal.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { I as InterfaceSource, a as InterfaceTierOpts, p as parseSource, C as CheckIssue } from './projection-budget-
|
|
2
|
-
export { L as LeakBudget, b as LoadDepsFingerprint, M as MAX_PROMISE_MICROS, P as PROJECTION_MAX_DEPTH, c as ProjectionBudget, d as ProjectionStopReason, e as defaultLeakBudget, f as exceedsBudget, g as exportedNameOfLocal, h as extractAllLoadSpecs, i as getPromiseMicrosLength, l as leakIfNeeded, j as loadModuleDepsFingerprint, m as maybeLeak, n as normPath, r as resetLeakCounter, k as resolveDepPath, s as sidecarSpecsOf, o as stablePathKey, q as stablePathKeyGraph, t as termDepth, u as termNodes } from './projection-budget-
|
|
3
|
-
import { A as Abs, T as Term, c as AbsModuleExports, d as AstEnv } from './run-
|
|
4
|
-
export { $ as $tryDigestSoft, e as $tryMarkSoft, f as $tryReleaseSoft, E as ERROR_FAMILY, g as EvalFallbackStats, M as MayThrowEffect, h as absLit, i as absNumLit, j as absStrLit, k as allAbsStr, l as clearPureCallMemo, m as clearPureMemo, n as enterEvalCallBudgetSession, o as errorTypeAbs, p as exitEvalCallBudgetSession, q as filterDeclaredThrows, r as filterGateThrows, s as filterIgnoredThrows, t as flushMayThrowEffects, u as formatThrowsAbs, v as getEvalCallBudgetState, w as getEvalFallbackStats, x as getMayThrowCollector, y as isThrowsIgnored, z as mayThrowEffectsToAbs, B as orphanMayThrowEffects, D as popMayThrowFrame, F as pushMayThrowFrame, G as recordMayThrow, H as resetEvalFallbackStats, I as runWithMayThrowSession, J as setMayThrowCollector, K as throwAbsToKinds, N as throwsKindCovered, O as withEvalBudgetOverride } from './run-
|
|
1
|
+
import { I as InterfaceSource, a as InterfaceTierOpts, p as parseSource, C as CheckIssue } from './projection-budget-CeoxA06q.js';
|
|
2
|
+
export { L as LeakBudget, b as LoadDepsFingerprint, M as MAX_PROMISE_MICROS, P as PROJECTION_MAX_DEPTH, c as ProjectionBudget, d as ProjectionStopReason, e as defaultLeakBudget, f as exceedsBudget, g as exportedNameOfLocal, h as extractAllLoadSpecs, i as getPromiseMicrosLength, l as leakIfNeeded, j as loadModuleDepsFingerprint, m as maybeLeak, n as normPath, r as resetLeakCounter, k as resolveDepPath, s as sidecarSpecsOf, o as stablePathKey, q as stablePathKeyGraph, t as termDepth, u as termNodes } from './projection-budget-CeoxA06q.js';
|
|
3
|
+
import { A as Abs, T as Term, c as AbsModuleExports, d as AstEnv } from './run-DaqGgSre.js';
|
|
4
|
+
export { $ as $tryDigestSoft, e as $tryMarkSoft, f as $tryReleaseSoft, E as ERROR_FAMILY, g as EvalFallbackStats, M as MayThrowEffect, h as absLit, i as absNumLit, j as absStrLit, k as allAbsStr, l as clearPureCallMemo, m as clearPureMemo, n as enterEvalCallBudgetSession, o as errorTypeAbs, p as exitEvalCallBudgetSession, q as filterDeclaredThrows, r as filterGateThrows, s as filterIgnoredThrows, t as flushMayThrowEffects, u as formatThrowsAbs, v as getEvalCallBudgetState, w as getEvalFallbackStats, x as getMayThrowCollector, y as isThrowsIgnored, z as mayThrowEffectsToAbs, B as orphanMayThrowEffects, D as popMayThrowFrame, F as pushMayThrowFrame, G as recordMayThrow, H as resetEvalFallbackStats, I as runWithMayThrowSession, J as setMayThrowCollector, K as throwAbsToKinds, N as throwsKindCovered, O as withEvalBudgetOverride } from './run-DaqGgSre.js';
|
|
5
5
|
import { File, Node } from '@babel/types';
|
|
6
6
|
|
|
7
7
|
/**
|
package/dist/internal.js
CHANGED
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
stableAnalyzeKeySource,
|
|
22
22
|
stablePathKey,
|
|
23
23
|
stablePathKeyGraph
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-2PFT7GU2.js";
|
|
25
25
|
import {
|
|
26
26
|
$tryDigestSoft,
|
|
27
27
|
$tryMarkSoft,
|
|
@@ -169,7 +169,7 @@ import {
|
|
|
169
169
|
withEvalBudgetOverride,
|
|
170
170
|
withFnBudgetOverride,
|
|
171
171
|
wrapPromise
|
|
172
|
-
} from "./chunk-
|
|
172
|
+
} from "./chunk-GL6VOF75.js";
|
|
173
173
|
|
|
174
174
|
// src/algebra/inlay.ts
|
|
175
175
|
function listFunctions(source) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { File } from '@babel/types';
|
|
2
|
-
import { A as Abs, T as Term, P as PrimName, a as Pred, L as LiteralValue, b as Phi, C as Confidence } from './run-
|
|
2
|
+
import { A as Abs, T as Term, P as PrimName, a as Pred, L as LiteralValue, b as Phi, C as Confidence } from './run-DaqGgSre.js';
|
|
3
3
|
|
|
4
4
|
declare function resetParseSourceCache(): void;
|
|
5
5
|
declare function getParseSourceCacheSize(): number;
|
|
@@ -155,10 +155,12 @@ type Shape = {
|
|
|
155
155
|
type: PrimName;
|
|
156
156
|
} | {
|
|
157
157
|
k: "obj";
|
|
158
|
+
/** 槽形与 objects.ts Slot 同构(含 Bug 84 internal 私有槽标记) */
|
|
158
159
|
slots: Record<string, {
|
|
159
160
|
value: Abs;
|
|
160
161
|
optional?: boolean;
|
|
161
162
|
readonly?: boolean;
|
|
163
|
+
internal?: boolean;
|
|
162
164
|
}>;
|
|
163
165
|
index?: {
|
|
164
166
|
key: Abs;
|