aontu 0.37.1 → 0.38.0

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/ctx.d.ts CHANGED
@@ -34,6 +34,8 @@ declare class AontuContext {
34
34
  deps: Record<string, any>;
35
35
  opts: AontuOptions;
36
36
  _pathstr: string | undefined;
37
+ _pathidx: number | undefined;
38
+ _pathmap: Map<string, number>;
37
39
  constructor(cfg: AontuContextConfig);
38
40
  clone(cfg: {
39
41
  root?: Val;
@@ -47,6 +49,7 @@ declare class AontuContext {
47
49
  adderr(err: NilVal): void;
48
50
  errmsg(): string;
49
51
  find(path: string[]): Val | undefined;
52
+ get pathidx(): number;
50
53
  get pathstr(): string;
51
54
  }
52
55
  export { AontuContext, AontuContextConfig };
package/dist/ctx.js CHANGED
@@ -25,6 +25,7 @@ class AontuContext {
25
25
  this.seen = cfg.seen ?? {};
26
26
  this.srcpath = cfg.srcpath ?? undefined;
27
27
  this.deps = cfg.deps ?? {};
28
+ this._pathmap = new Map();
28
29
  this.opts = (0, type_1.DEFAULT_OPTS)();
29
30
  this.addopts(cfg.opts);
30
31
  }
@@ -37,13 +38,15 @@ class AontuContext {
37
38
  ctx.err = cfg.err ?? ctx.err;
38
39
  ctx.explain = Array.isArray(cfg.explain) ? cfg.explain : ctx.explain;
39
40
  ctx._pathstr = undefined;
41
+ ctx._pathidx = undefined;
40
42
  return ctx;
41
43
  }
42
44
  descend(key) {
43
- return this.clone({
44
- root: this.root,
45
- path: this.path.concat(key),
46
- });
45
+ const ctx = Object.create(this);
46
+ ctx.path = this.path.concat(key);
47
+ ctx._pathstr = undefined;
48
+ ctx._pathidx = undefined;
49
+ return ctx;
47
50
  }
48
51
  addopts(opts) {
49
52
  if (null != opts) {
@@ -98,6 +101,18 @@ class AontuContext {
98
101
  }
99
102
  return node;
100
103
  }
104
+ get pathidx() {
105
+ if (undefined === this._pathidx) {
106
+ const key = this.path.join('\x00');
107
+ let idx = this._pathmap.get(key);
108
+ if (undefined === idx) {
109
+ idx = this._pathmap.size;
110
+ this._pathmap.set(key, idx);
111
+ }
112
+ this._pathidx = idx;
113
+ }
114
+ return this._pathidx;
115
+ }
101
116
  get pathstr() {
102
117
  return this._pathstr ??
103
118
  (this._pathstr = this.path.map(p => p.replaceAll('.', '\\.')).join('.'));
package/dist/ctx.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ctx.js","sourceRoot":"","sources":["../src/ctx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ctx.js","sourceRoot":"","sources":["../src/ctx.ts"],"names":[],"mappings":"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"}
package/dist/unify.js CHANGED
@@ -10,30 +10,28 @@ const utility_1 = require("./utility");
10
10
  const top_1 = require("./val/top");
11
11
  // TODO: FIX: false positive when too many top unifications
12
12
  const MAXCYCLE = 999;
13
- let uc = 0;
14
13
  // Vals should only have to unify downwards (in .unify) over Vals they understand.
15
14
  // and for complex Vals, TOP, which means self unify if not yet done
16
15
  const unite = (ctx, a, b, whence) => {
17
16
  const te = ctx.explain && (0, utility_1.explainOpen)(ctx, ctx.explain, 'unite', a, b);
18
17
  let out = a;
19
18
  let why = 'u';
20
- const saw = (a ? a.id + (a.done ? '' : '*') : '') + '~' + (b ? b.id + (b.done ? '' : '*') : '') +
21
- '@' + ctx.pathstr;
22
- /*
23
- if (1 < ctx.seen[saw]) {
24
- console.log('UNITE-SAW', ctx.cc, saw, ctx.seen[saw], 1 < ctx.seen[saw] ? (a?.canon + ' ~ ' + b?.canon) : '')
25
- // console.trace()
26
- // process.exit()
27
- }
28
- */
19
+ // Cycle-detection key. Use numeric path index for speed; fall back to
20
+ // full string key when debug is enabled so the saw value is human-readable.
21
+ const saw = ctx.opts.debug
22
+ ? (a ? a.id + (a.done ? '' : '*') : '') + '~' +
23
+ (b ? b.id + (b.done ? '' : '*') : '') + '@' + ctx.pathstr
24
+ : (a ? a.id + (a.done ? 'd' : '') : 0) + '~' +
25
+ (b ? b.id + (b.done ? 'd' : '') : 0) + '~' + ctx.pathidx;
29
26
  // NOTE: if this error occurs "unreasonably", attemp to avoid unnecesary unification
30
27
  // See for example PrefVal peg.id equality inspection.
31
- if (MAXCYCLE < ctx.seen[saw]) {
32
- // console.log('SAW', ctx.seen[saw], saw, a?.id, a?.canon, b?.id, b?.canon, ctx.cc)
28
+ const sawCount = ctx.seen[saw] ?? 0;
29
+ if (MAXCYCLE < sawCount) {
30
+ // console.log('SAW', sawCount, saw, a?.id, a?.canon, b?.id, b?.canon, ctx.cc)
33
31
  out = (0, err_1.makeNilErr)(ctx, 'unify_cycle', a, b);
34
32
  }
35
33
  else {
36
- ctx.seen[saw] = 1 + (ctx.seen[saw] ?? 0);
34
+ ctx.seen[saw] = sawCount + 1;
37
35
  try {
38
36
  let unified = false;
39
37
  if (b && (!a || a.isTop)) {
@@ -54,12 +52,12 @@ const unite = (ctx, a, b, whence) => {
54
52
  why = 'bn';
55
53
  }
56
54
  else if (a.isConjunct) {
57
- out = a.unify(b, ctx.clone({ explain: (0, utility_1.ec)(te, 'CJ') }));
55
+ out = a.unify(b, te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'CJ') }) : ctx);
58
56
  unified = true;
59
57
  why = 'acj';
60
58
  }
61
59
  else if (a.isExpect) {
62
- out = a.unify(b, ctx.clone({ explain: (0, utility_1.ec)(te, 'AE') }));
60
+ out = a.unify(b, te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'AE') }) : ctx);
63
61
  unified = true;
64
62
  why = 'ae';
65
63
  }
@@ -69,7 +67,7 @@ const unite = (ctx, a, b, whence) => {
69
67
  || b.isPref
70
68
  || b.isFunc
71
69
  || b.isExpect) {
72
- out = b.unify(a, ctx.clone({ explain: (0, utility_1.ec)(te, 'BW') }));
70
+ out = b.unify(a, te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'BW') }) : ctx);
73
71
  unified = true;
74
72
  why = 'bv';
75
73
  }
@@ -79,7 +77,7 @@ const unite = (ctx, a, b, whence) => {
79
77
  why = 'up';
80
78
  }
81
79
  else {
82
- out = a.unify(b, ctx.clone({ explain: (0, utility_1.ec)(te, 'GN') }));
80
+ out = a.unify(b, te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'GN') }) : ctx);
83
81
  unified = true;
84
82
  why = 'ab';
85
83
  }
@@ -91,12 +89,11 @@ const unite = (ctx, a, b, whence) => {
91
89
  // console.log('UNITE-DONE', out.id, out.canon, out.done)
92
90
  // if (DONE !== out.dc && !unified) {
93
91
  if (!out.done && !unified) {
94
- let nout = out.unify((0, top_1.top)(), ctx.clone({ explain: (0, utility_1.ec)(te, 'ND') }));
92
+ let nout = out.unify((0, top_1.top)(), te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'ND') }) : ctx);
95
93
  out = nout;
96
94
  why += 'T';
97
95
  }
98
96
  // console.log('UNITE', why, a?.id, a?.canon, a?.done, b?.id, b?.canon, b?.done, '->', out?.id, out?.canon, out?.done)
99
- uc++;
100
97
  }
101
98
  catch (err) {
102
99
  // console.log(err)
@@ -124,7 +121,9 @@ class Unify {
124
121
  this.cc = 0;
125
122
  this.root = root;
126
123
  this.res = root;
127
- this.err = ctx?.err ?? root.err ?? [];
124
+ // Always use a fresh array for mutable error collection to avoid
125
+ // mutating the shared EMPTY_ERR singleton on Val instances.
126
+ this.err = ctx?.err ?? (root.err.length > 0 ? root.err : []);
128
127
  this.explain = ctx?.explain ?? root.explain ?? null;
129
128
  let res = root;
130
129
  let uctx;
@@ -153,7 +152,8 @@ class Unify {
153
152
  for (; this.cc < maxcc && type_1.DONE !== res.dc; this.cc++) {
154
153
  // console.log('CC', this.cc, res.canon)
155
154
  uctx.cc = this.cc;
156
- res = unite(uctx.clone({ explain: (0, utility_1.ec)(te, 'run') }), res, (0, top_1.top)(), 'unify');
155
+ uctx.seen = {};
156
+ res = unite(te ? uctx.clone({ explain: (0, utility_1.ec)(te, 'run') }) : uctx, res, (0, top_1.top)(), 'unify');
157
157
  if (0 < uctx.err.length) {
158
158
  break;
159
159
  }
package/dist/unify.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"unify.js","sourceRoot":"","sources":["../src/unify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unify.js","sourceRoot":"","sources":["../src/unify.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { JunctionVal } from './JunctionVal';
4
4
  declare class ConjunctVal extends JunctionVal {
5
5
  isConjunct: boolean;
6
6
  isGenable: boolean;
7
+ cjo: number;
7
8
  constructor(spec: ValSpec, ctx?: AontuContext);
8
9
  append(peer: Val): ConjunctVal;
9
10
  unify(peer: Val, ctx: AontuContext): Val;
@@ -10,19 +10,13 @@ const err_2 = require("../err");
10
10
  const JunctionVal_1 = require("./JunctionVal");
11
11
  const utility_1 = require("../utility");
12
12
  const top_1 = require("./top");
13
- const CONJUNCT_ORDERING = {
14
- PrefVal: 30000,
15
- RefVal: 32500,
16
- DisjunctVal: 35000,
17
- ConjunctVal: 40000,
18
- Any: 99999
19
- };
20
13
  // TODO: move main logic to op/conjunct
21
14
  class ConjunctVal extends JunctionVal_1.JunctionVal {
22
15
  constructor(spec, ctx) {
23
16
  super(spec, ctx);
24
17
  this.isConjunct = true;
25
18
  this.isGenable = true;
19
+ this.cjo = 40000;
26
20
  this.mark.type = !!spec.mark?.type;
27
21
  this.mark.hide = !!spec.mark?.hide;
28
22
  this.peg = (Array.isArray(this.peg) ? this.peg : [])
@@ -169,19 +163,28 @@ function norm(terms) {
169
163
  let expand = [];
170
164
  for (let tI = 0, pI = 0; tI < terms.length; tI++, pI++) {
171
165
  if (terms[tI].isConjunct) {
172
- expand.push(...terms[tI].peg);
173
- pI += terms[tI].peg.length - 1;
166
+ const cterms = terms[tI].peg;
167
+ for (let cI = 0; cI < cterms.length; cI++) {
168
+ expand[pI + cI] = cterms[cI];
169
+ }
170
+ pI += cterms.length - 1;
174
171
  }
175
172
  else {
176
173
  expand[pI] = terms[tI];
177
174
  }
178
175
  }
179
176
  // Consistent ordering ensures order independent unification.
180
- expand = expand.sort((a, b) => {
181
- const an = CONJUNCT_ORDERING[a.constructor.name] ?? CONJUNCT_ORDERING.Any;
182
- const bn = CONJUNCT_ORDERING[b.constructor.name] ?? CONJUNCT_ORDERING.Any;
183
- return an - bn;
184
- });
177
+ // Skip sort when already in order (common case).
178
+ let sorted = true;
179
+ for (let i = 1; i < expand.length; i++) {
180
+ if (expand[i - 1].cjo > expand[i].cjo) {
181
+ sorted = false;
182
+ break;
183
+ }
184
+ }
185
+ if (!sorted) {
186
+ expand.sort((a, b) => a.cjo - b.cjo);
187
+ }
185
188
  // console.log('NORM', expand.map(t => t.canon).join(', '))
186
189
  return expand;
187
190
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ConjunctVal.js","sourceRoot":"","sources":["../../src/val/ConjunctVal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConjunctVal.js","sourceRoot":"","sources":["../../src/val/ConjunctVal.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { JunctionVal } from '../val/JunctionVal';
6
6
  declare class DisjunctVal extends JunctionVal {
7
7
  isDisjunct: boolean;
8
8
  isGenable: boolean;
9
+ cjo: number;
9
10
  prefsRanked: boolean;
10
11
  constructor(spec: {
11
12
  peg: Val[];
@@ -17,6 +17,7 @@ class DisjunctVal extends JunctionVal_1.JunctionVal {
17
17
  super(spec, ctx);
18
18
  this.isDisjunct = true;
19
19
  this.isGenable = true;
20
+ this.cjo = 35000;
20
21
  this.prefsRanked = false;
21
22
  }
22
23
  // NOTE: mutation!
@@ -1 +1 @@
1
- {"version":3,"file":"DisjunctVal.js","sourceRoot":"","sources":["../../src/val/DisjunctVal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DisjunctVal.js","sourceRoot":"","sources":["../../src/val/DisjunctVal.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ declare class ListVal extends BagVal {
7
7
  peg: ValList;
8
8
  }, ctx?: AontuContext);
9
9
  unify(peer: Val, ctx: AontuContext): Val;
10
+ spreadClone(ctx: AontuContext): Val;
10
11
  clone(ctx: AontuContext, spec?: ValSpec): Val;
11
12
  get canon(): string;
12
13
  }
@@ -63,7 +63,7 @@ class ListVal extends BagVal_1.BagVal {
63
63
  // Always unify children first
64
64
  for (let key in this.peg) {
65
65
  const keyctx = ctx.descend(key);
66
- const key_spread_cj = spread_cj.clone(keyctx);
66
+ const key_spread_cj = spread_cj.spreadClone(keyctx);
67
67
  const child = this.peg[key];
68
68
  (0, utility_1.propagateMarks)(this, child);
69
69
  out.peg[key] =
@@ -78,7 +78,7 @@ class ListVal extends BagVal_1.BagVal {
78
78
  const allowedKeys = this.closed ? Object.keys(this.peg) : [];
79
79
  let bad = undefined;
80
80
  if (peer instanceof ListVal) {
81
- let upeer = (0, unify_1.unite)(ctx.clone({ explain: (0, utility_1.ec)(te, 'PER') }), peer, TOP, 'list-peer-list');
81
+ let upeer = peer.done ? peer : (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'PER') }) : ctx, peer, TOP, 'list-peer-list');
82
82
  // NOTE: peerkey is the index
83
83
  for (let peerkey in upeer.peg) {
84
84
  let peerchild = upeer.peg[peerkey];
@@ -86,17 +86,17 @@ class ListVal extends BagVal_1.BagVal {
86
86
  bad = (0, err_1.makeNilErr)(ctx, 'closed', peerchild, undefined);
87
87
  }
88
88
  let child = out.peg[peerkey];
89
+ const peerctx = ctx.descend(peerkey);
89
90
  let oval = out.peg[peerkey] =
90
91
  undefined === child ? peerchild :
91
92
  child.isTop && peerchild.done ? peerchild :
92
93
  child.isNil ? child :
93
94
  peerchild.isNil ? peerchild :
94
- (0, unify_1.unite)(ctx.descend(peerkey).clone({ explain: (0, utility_1.ec)(te, 'CHD') }), child, peerchild, 'list-peer');
95
+ (0, unify_1.unite)(te ? peerctx.clone({ explain: (0, utility_1.ec)(te, 'CHD') }) : peerctx, child, peerchild, 'list-peer');
95
96
  if (this.spread.cj) {
96
- let key_ctx = ctx.descend(peerkey);
97
- let key_spread_cj = spread_cj.clone(key_ctx);
97
+ let key_spread_cj = spread_cj.spreadClone(peerctx);
98
98
  oval = out.peg[peerkey] =
99
- (0, unify_1.unite)(key_ctx.clone({ explain: (0, utility_1.ec)(te, 'PSP:' + peerkey) }), out.peg[peerkey], key_spread_cj, 'list-spread');
99
+ (0, unify_1.unite)(te ? peerctx.clone({ explain: (0, utility_1.ec)(te, 'PSP:' + peerkey) }) : peerctx, out.peg[peerkey], key_spread_cj, 'list-spread');
100
100
  }
101
101
  (0, utility_1.propagateMarks)(this, oval);
102
102
  done = (done && type_1.DONE === oval.dc);
@@ -109,7 +109,8 @@ class ListVal extends BagVal_1.BagVal {
109
109
  out = bad;
110
110
  }
111
111
  if (!out.isNil) {
112
- out.uh.push(peer.id);
112
+ ;
113
+ (out.uh ??= []).push(peer.id);
113
114
  out.dc = done ? type_1.DONE : out.dc;
114
115
  (0, utility_1.propagateMarks)(peer, out);
115
116
  (0, utility_1.propagateMarks)(this, out);
@@ -118,6 +119,36 @@ class ListVal extends BagVal_1.BagVal {
118
119
  ctx.explain && (0, utility_1.explainClose)(te, out);
119
120
  return out;
120
121
  }
122
+ // Spread clone: only deep-clone children that are path-dependent
123
+ // (isFunc, isRef). Share all other children directly.
124
+ // Spread clone: when all children are ScalarKindVal (simple type
125
+ // constraints like `string`, `number`), share them directly to avoid
126
+ // N x M allocations. ScalarKindVal is safe to share: it is immutable,
127
+ // always done, never path-dependent, and never has marks mutated.
128
+ // For anything more complex, fall back to full deep clone.
129
+ spreadClone(ctx) {
130
+ let allScalarKind = true;
131
+ for (let key in this.peg) {
132
+ if (!this.peg[key]?.isScalarKind) {
133
+ allScalarKind = false;
134
+ break;
135
+ }
136
+ }
137
+ if (!allScalarKind) {
138
+ return this.clone(ctx);
139
+ }
140
+ let out = super.clone(ctx);
141
+ for (let entry of Object.entries(this.peg)) {
142
+ out.peg[entry[0]] = entry[1];
143
+ }
144
+ // Must create a new spread object to avoid mutating the original.
145
+ out.spread = {
146
+ cj: this.spread.cj ? this.spread.cj.spreadClone(ctx) : undefined,
147
+ };
148
+ out.closed = this.closed;
149
+ out.optionalKeys = [...this.optionalKeys];
150
+ return out;
151
+ }
121
152
  clone(ctx, spec) {
122
153
  let out = super.clone(ctx, spec);
123
154
  for (let entry of Object.entries(this.peg)) {
@@ -1 +1 @@
1
- {"version":3,"file":"ListVal.js","sourceRoot":"","sources":["../../src/val/ListVal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ListVal.js","sourceRoot":"","sources":["../../src/val/ListVal.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ declare class MapVal extends BagVal {
5
5
  isMap: boolean;
6
6
  constructor(spec: ValSpec, ctx?: AontuContext);
7
7
  unify(peer: Val, ctx: AontuContext): Val;
8
+ spreadClone(ctx: AontuContext): Val;
8
9
  clone(ctx: AontuContext, spec?: ValSpec): Val;
9
10
  get canon(): string;
10
11
  inspection(d?: number): string;
@@ -79,9 +79,8 @@ class MapVal extends BagVal_1.BagVal {
79
79
  // Always unify own children first
80
80
  for (let key in this.peg) {
81
81
  const keyctx = ctx.descend(key);
82
- const key_spread_cj = spread_cj.clone(keyctx);
82
+ const key_spread_cj = spread_cj.spreadClone(keyctx);
83
83
  const child = this.peg[key];
84
- // console.log('MAPVAL-SPREAD', this.id, key, child, key_spread_cj.id, key_spread_cj.canon, key_spread_cj.done)
85
84
  (0, utility_1.propagateMarks)(this, child);
86
85
  out.peg[key] =
87
86
  undefined === child ? key_spread_cj :
@@ -95,7 +94,7 @@ class MapVal extends BagVal_1.BagVal {
95
94
  const allowedKeys = this.closed ? Object.keys(this.peg) : [];
96
95
  let bad = undefined;
97
96
  if (peer instanceof MapVal) {
98
- let upeer = (0, unify_1.unite)(ctx.clone({ explain: (0, utility_1.ec)(te, 'PER') }), peer, TOP, 'map-peer-map');
97
+ let upeer = peer.done ? peer : (0, unify_1.unite)(te ? ctx.clone({ explain: (0, utility_1.ec)(te, 'PER') }) : ctx, peer, TOP, 'map-peer-map');
99
98
  for (let peerkey in upeer.peg) {
100
99
  let peerchild = upeer.peg[peerkey];
101
100
  if (this.closed && !allowedKeys.includes(peerkey)) {
@@ -106,17 +105,17 @@ class MapVal extends BagVal_1.BagVal {
106
105
  out.optionalKeys.push(peerkey);
107
106
  }
108
107
  let child = out.peg[peerkey];
108
+ const peerctx = ctx.descend(peerkey);
109
109
  let oval = out.peg[peerkey] =
110
110
  undefined === child ? this.handleExpectedVal(peerkey, peerchild, this, ctx) :
111
111
  child.isTop && peerchild.done ? peerchild :
112
112
  child.isNil ? child :
113
113
  peerchild.isNil ? peerchild :
114
- (0, unify_1.unite)(ctx.descend(peerkey).clone({ explain: (0, utility_1.ec)(te, 'CHD') }), child, peerchild, 'map-peer');
114
+ (0, unify_1.unite)(te ? peerctx.clone({ explain: (0, utility_1.ec)(te, 'CHD') }) : peerctx, child, peerchild, 'map-peer');
115
115
  if (this.spread.cj) {
116
- let key_ctx = ctx.descend(peerkey);
117
- let key_spread_cj = spread_cj.clone(key_ctx);
116
+ let key_spread_cj = spread_cj.spreadClone(peerctx);
118
117
  oval = out.peg[peerkey] =
119
- (0, unify_1.unite)(key_ctx.clone({ explain: (0, utility_1.ec)(te, 'PSP:' + peerkey) }), oval, key_spread_cj, 'map-peer-spread');
118
+ (0, unify_1.unite)(te ? peerctx.clone({ explain: (0, utility_1.ec)(te, 'PSP:' + peerkey) }) : peerctx, oval, key_spread_cj, 'map-peer-spread');
120
119
  }
121
120
  (0, utility_1.propagateMarks)(this, oval);
122
121
  done = (done && type_1.DONE === oval.dc);
@@ -129,7 +128,8 @@ class MapVal extends BagVal_1.BagVal {
129
128
  out = bad;
130
129
  }
131
130
  if (!out.isNil) {
132
- out.uh.push(peer.id);
131
+ ;
132
+ (out.uh ??= []).push(peer.id);
133
133
  out.dc = done ? type_1.DONE : out.dc;
134
134
  (0, utility_1.propagateMarks)(peer, out);
135
135
  (0, utility_1.propagateMarks)(this, out);
@@ -145,6 +145,38 @@ class MapVal extends BagVal_1.BagVal {
145
145
  ctx.explain && (0, utility_1.explainClose)(te, out);
146
146
  return out;
147
147
  }
148
+ // Spread clone: only deep-clone children that are path-dependent
149
+ // (isFunc, isRef). Share all other children directly to avoid
150
+ // N x M allocations for maps with N keys and M spread fields.
151
+ // Spread clone: when all children are ScalarKindVal (simple type
152
+ // constraints like `string`, `number`), share them directly to avoid
153
+ // N x M allocations. ScalarKindVal is safe to share: it is immutable,
154
+ // always done, never path-dependent, and never has marks mutated.
155
+ // For anything more complex, fall back to full deep clone.
156
+ spreadClone(ctx) {
157
+ let allScalarKind = true;
158
+ for (let key in this.peg) {
159
+ if (!this.peg[key]?.isScalarKind) {
160
+ allScalarKind = false;
161
+ break;
162
+ }
163
+ }
164
+ if (!allScalarKind) {
165
+ return this.clone(ctx);
166
+ }
167
+ let out = super.clone(ctx);
168
+ out.peg = {};
169
+ for (let entry of Object.entries(this.peg)) {
170
+ out.peg[entry[0]] = entry[1];
171
+ }
172
+ // Must create a new spread object to avoid mutating the original.
173
+ out.spread = {
174
+ cj: this.spread.cj ? this.spread.cj.spreadClone(ctx) : undefined,
175
+ };
176
+ out.closed = this.closed;
177
+ out.optionalKeys = [...this.optionalKeys];
178
+ return out;
179
+ }
148
180
  clone(ctx, spec) {
149
181
  let out = super.clone(ctx, spec);
150
182
  out.peg = {};