@solidjs/signals 2.0.0-rc.5 → 2.0.0-rc.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/dev.js +2467 -1322
  2. package/dist/node.cjs +2037 -2428
  3. package/dist/node.dev.cjs +13724 -0
  4. package/dist/prod/boundaries.js +3 -1
  5. package/dist/prod/core/async.js +47 -20
  6. package/dist/prod/core/attribution-hooks.js +3 -0
  7. package/dist/prod/core/constants.js +9 -1
  8. package/dist/prod/core/context.js +10 -16
  9. package/dist/prod/core/core.js +260 -188
  10. package/dist/prod/core/dev.js +2 -0
  11. package/dist/prod/core/effect.js +41 -32
  12. package/dist/prod/core/external.js +2 -2
  13. package/dist/prod/core/graph.js +35 -31
  14. package/dist/prod/core/heap.js +34 -40
  15. package/dist/prod/core/lanes.js +44 -30
  16. package/dist/prod/core/optimistic.js +55 -45
  17. package/dist/prod/core/owner.js +35 -35
  18. package/dist/prod/core/scheduler.js +176 -177
  19. package/dist/prod/core/verdict.js +53 -52
  20. package/dist/prod/index.js +0 -2
  21. package/dist/prod/map.js +104 -94
  22. package/dist/prod/signals.js +119 -35
  23. package/dist/prod/store/next/optimistic.js +217 -163
  24. package/dist/prod/store/next/projection.js +2 -2
  25. package/dist/prod/store/next/reconcile.js +140 -288
  26. package/dist/prod/store/next/store.js +338 -252
  27. package/dist/prod/store/store.js +2 -2
  28. package/dist/types/core/attribution-hooks.d.ts +75 -0
  29. package/dist/types/core/attribution.d.ts +313 -9
  30. package/dist/types/core/constants.d.ts +8 -0
  31. package/dist/types/core/core.d.ts +12 -3
  32. package/dist/types/core/dev.d.ts +56 -9
  33. package/dist/types/core/heap.d.ts +5 -3
  34. package/dist/types/core/invariants.d.ts +1 -1
  35. package/dist/types/core/lanes.d.ts +10 -0
  36. package/dist/types/core/scheduler.d.ts +14 -4
  37. package/dist/types/signals.d.ts +10 -11
  38. package/dist/types/store/index.d.ts +3 -6
  39. package/dist/types/store/next/optimistic.d.ts +4 -2
  40. package/dist/types/store/next/reconcile.d.ts +5 -12
  41. package/dist/types/store/next/store.d.ts +3 -9
  42. package/dist/types/store/next/target.d.ts +30 -46
  43. package/dist/types/store/store.d.ts +14 -9
  44. package/dist/types-cjs/core/attribution-hooks.d.cts +75 -0
  45. package/dist/types-cjs/core/attribution.d.cts +313 -9
  46. package/dist/types-cjs/core/constants.d.cts +8 -0
  47. package/dist/types-cjs/core/core.d.cts +12 -3
  48. package/dist/types-cjs/core/dev.d.cts +56 -9
  49. package/dist/types-cjs/core/heap.d.cts +5 -3
  50. package/dist/types-cjs/core/invariants.d.cts +1 -1
  51. package/dist/types-cjs/core/lanes.d.cts +10 -0
  52. package/dist/types-cjs/core/scheduler.d.cts +14 -4
  53. package/dist/types-cjs/signals.d.cts +10 -11
  54. package/dist/types-cjs/store/index.d.cts +3 -6
  55. package/dist/types-cjs/store/next/optimistic.d.cts +4 -2
  56. package/dist/types-cjs/store/next/reconcile.d.cts +5 -12
  57. package/dist/types-cjs/store/next/store.d.cts +3 -9
  58. package/dist/types-cjs/store/next/target.d.cts +30 -46
  59. package/dist/types-cjs/store/store.d.cts +14 -9
  60. package/package.json +3 -2
  61. package/dist/prod/store/next/patch-hooks.js +0 -13
  62. package/dist/prod/store/next/patch.js +0 -614
  63. package/dist/types/store/next/patch-hooks.d.ts +0 -41
  64. package/dist/types/store/next/patch.d.ts +0 -91
  65. package/dist/types-cjs/store/next/patch-hooks.d.cts +0 -41
  66. package/dist/types-cjs/store/next/patch.d.cts +0 -91
@@ -6,7 +6,7 @@ import { NotReadyError } from "./error.js";
6
6
 
7
7
  import "./invariants.js";
8
8
 
9
- import { resolveTransition, getOrCreateLane, hasActiveOverride, activeLanes, signalLanes, findLane, resolveLane, assignOrMergeLane } from "./lanes.js";
9
+ import { resolveTransition, getOrCreateLane, hasActiveOverride, activeLanes, signalLanes, laneHeld, findLane, resolveLane, assignOrMergeLane } from "./lanes.js";
10
10
 
11
11
  import { GlobalQueue, activeTransition, globalQueue, clock, insertSubs, schedule } from "./scheduler.js";
12
12
 
@@ -24,8 +24,8 @@ import { GlobalQueue, activeTransition, globalQueue, clock, insertSubs, schedule
24
24
  * once the gate holds — the same late-binding contract as verdict.ts.
25
25
  */
26
26
  /** The optimistic half of setSignal, fired when `_overrideValue !== undefined`. */ function optimisticWrite(e, n) {
27
- const t = e.o?.Oe !== NOT_PENDING;
28
- const i = t ? unwrapOverride(e.o?.Oe) : e.be;
27
+ const t = e.o?.Pe !== NOT_PENDING;
28
+ const i = t ? unwrapOverride(e.o?.Pe) : e.be;
29
29
  if (typeof n === "function") n = n(i);
30
30
  const u = !!(e.S & STATUS_UNINITIALIZED) ||
31
31
  // A dirty node's _value is stale (its queued recompute hasn't run — e.g.
@@ -34,7 +34,7 @@ import { GlobalQueue, activeTransition, globalQueue, clock, insertSubs, schedule
34
34
  // push returning the shadow to that stale value was dropped, the snap
35
35
  // recompute then committed the parent's old value, and the banner showed
36
36
  // the previous transition's target (#3041 follow-up).
37
- !!((e.ie ?? 0) & (REACTIVE_DIRTY | REACTIVE_CHECK)) || !e.ge || !e.ge(i, n);
37
+ !!((e.ie ?? 0) & (REACTIVE_DIRTY | REACTIVE_CHECK)) || !e.pe || !e.pe(i, n);
38
38
  if (!u) {
39
39
  // Same-value write with an active override still entangles the current
40
40
  // action's transition — the hold must outlast all overlapping actions.
@@ -48,21 +48,21 @@ import { GlobalQueue, activeTransition, globalQueue, clock, insertSubs, schedule
48
48
  // No revert target is stashed: while the override is active every reader
49
49
  // sees it (A17), so authoritative arrivals commit silently into _value and
50
50
  // reverting is just dropping the override — _value is already correct.
51
- else globalQueue.m.ze.push(e);
51
+ else globalQueue.m.Xe.push(e);
52
52
  // Stamp ownership on the node (post-merge, so entangled writers share the
53
53
  // joint root). resolveTransition prefers this over the lane's _transition,
54
54
  // which a shared subscriber can merge across transactions (#2912).
55
- ext(e).Nt = activeTransition;
56
- const l = getOrCreateLane(e);
57
- ext(e).Je = l;
55
+ ext(e).Tt = activeTransition;
56
+ const r = getOrCreateLane(e);
57
+ ext(e).$e = r;
58
58
  e.T |= CONFIG_HAS_LANE;
59
59
  // Literal undefined must not land raw: the slot doubles as the optimistic
60
60
  // brand, and erasing it makes the write invisible and routes follow-up
61
61
  // writes off the optimistic path into permanent commits (#2898).
62
- ext(e).Oe = n === undefined ? OVERRIDE_UNDEFINED : n;
62
+ ext(e).Pe = n === undefined ? OVERRIDE_UNDEFINED : n;
63
63
  // syncCompanions only pokes _pendingSignal/_latestValueComputed — with
64
64
  // neither companion present the call is a guaranteed no-op.
65
- (e.o?.ye !== undefined || e.o?.Ce !== undefined) && GlobalQueue.Re !== null && GlobalQueue.Re(e, n);
65
+ (e.o?.ye !== undefined || e.o?.Ce !== undefined) && GlobalQueue.Ue !== null && GlobalQueue.Ue(e, n);
66
66
  if (e.oe !== undefined) e.Te = clock;
67
67
  // §12e: computed-only slot
68
68
  insertSubs(e, true);
@@ -75,8 +75,8 @@ import { GlobalQueue, activeTransition, globalQueue, clock, insertSubs, schedule
75
75
  * while one of its optimistic nodes holds an active override that is still
76
76
  * pending on real (non-affects-sentinel) async.
77
77
  */ function transitionBlocked(e) {
78
- for (let n = 0; n < e.ze.length; n++) {
79
- const t = e.ze[n];
78
+ for (let n = 0; n < e.Xe.length; n++) {
79
+ const t = e.Xe[n];
80
80
  if (hasActiveOverride(t) && "S" in t && t.S & STATUS_PENDING && t.o?._ instanceof NotReadyError) {
81
81
  return true;
82
82
  }
@@ -91,16 +91,16 @@ function resolveOptimisticNodes(e) {
91
91
  const n = e.length;
92
92
  for (let t = 0; t < n; t++) {
93
93
  const n = e[t];
94
- if (n.o !== null) n.o.Je = undefined;
94
+ if (n.o !== null) n.o.$e = undefined;
95
95
  // Revert is a pure drop: there is no revert target to commit —
96
96
  // override-covered authoritative values hold in _pendingValue and
97
97
  // elevate on their OWN transition's schedule (A18 as re-ruled 2026-07-07).
98
98
  if (!(n.S & STATUS_PENDING)) n.S &= ~STATUS_UNINITIALIZED;
99
- const i = n.o?.Oe;
100
- ext(n).Oe = NOT_PENDING;
99
+ const i = n.o?.Pe;
100
+ ext(n).Pe = NOT_PENDING;
101
101
  if (i !== NOT_PENDING && n.be !== unwrapOverride(i)) insertSubs(n, true);
102
102
  n.Ae = null;
103
- if (n.o !== null) n.o.Nt = null;
103
+ if (n.o !== null) n.o.Tt = null;
104
104
  }
105
105
  // Settlement checkpoint (#2838): companions caught in this batch (or owned
106
106
  // by a node in it) re-derive from committed state, so verdicts survive the
@@ -108,7 +108,7 @@ function resolveOptimisticNodes(e) {
108
108
  for (let t = 0; t < n; t++) {
109
109
  const n = e[t];
110
110
  if (n.o?.ye || n.o?.Ce) GlobalQueue.un(n);
111
- const i = n.o?.Tt;
111
+ const i = n.o?.St;
112
112
  if (i && (i.o?.ye === n || i.o?.Ce === n)) GlobalQueue.un(i);
113
113
  }
114
114
  e.splice(0, n);
@@ -119,10 +119,11 @@ function runQueue(e, n) {
119
119
  }
120
120
 
121
121
  /**
122
- * Run effects from all lanes that are ready (no pending async).
122
+ * Run effects from all lanes that are ready (no OBSERVED pending async — see
123
+ * laneHeld).
123
124
  */ function runLaneEffects(e) {
124
125
  for (const n of activeLanes) {
125
- if (n.rn || n.De.size > 0) continue;
126
+ if (n.rn || laneHeld(n)) continue;
126
127
  const t = n.tn[e - 1];
127
128
  if (t.length) {
128
129
  n.tn[e - 1] = [];
@@ -142,8 +143,8 @@ function cleanupCompletedLanes(e) {
142
143
  if (n.tn[0].length) runQueue(n.tn[0], EFFECT_RENDER);
143
144
  if (n.tn[1].length) runQueue(n.tn[1], EFFECT_USER);
144
145
  }
145
- if (n.nn.o?.Je === n) if (n.nn.o !== null) n.nn.o.Je = undefined;
146
- n.De.clear();
146
+ if (n.nn.o?.$e === n) if (n.nn.o !== null) n.nn.o.$e = undefined;
147
+ n.Oe.clear();
147
148
  n.tn[0].length = 0;
148
149
  n.tn[1].length = 0;
149
150
  activeLanes.delete(n);
@@ -152,10 +153,18 @@ function cleanupCompletedLanes(e) {
152
153
  }
153
154
 
154
155
  /** read()'s per-lane suspension test (pending-throw path, lane context). */ function laneSuspends(e) {
156
+ // An UNINITIALIZED async source suspends regardless of lane (#3276): a
157
+ // lane mismatch preserves an already-committed stale value, but a source
158
+ // with no committed truth has nothing to serve — the cross-lane read
159
+ // surfaced a fabricated `undefined` where latest() itself suspends
160
+ // (latestRead rethrows NotReady for tracked uninitialized reads). Lives
161
+ // here rather than read()'s throw path so the floor bundles don't pay:
162
+ // this is only reachable under a lane, which implies the engine.
163
+ if (e.S & STATUS_UNINITIALIZED) return true;
155
164
  // Per-lane suspension: only throw if in same lane as pending async
156
165
  // AND the node doesn't have an active override (overrides are the visible value,
157
166
  // downstream in the lane should read the override, not throw)
158
- const n = e.o?.Je;
167
+ const n = e.o?.$e;
159
168
  if (!n) return false;
160
169
  return findLane(n) === findLane(currentOptimisticLane) && !hasActiveOverride(e);
161
170
  }
@@ -165,7 +174,7 @@ function cleanupCompletedLanes(e) {
165
174
  * that reads a pending mid-transition write sees the committed value; the sub
166
175
  * is recorded for replay at commit.
167
176
  */ function gatedRead(e, n, t) {
168
- if (latestReadActive || e.Pe === NOT_PENDING || e.oe || n !== e && !(n.ie & REACTIVE_MANUAL_WRITE)) {
177
+ if (latestReadActive || e.Re === NOT_PENDING || e.oe || n !== e && !(n.ie & REACTIVE_MANUAL_WRITE)) {
169
178
  return false;
170
179
  }
171
180
  activeTransition.cn.add(t);
@@ -176,7 +185,7 @@ function cleanupCompletedLanes(e) {
176
185
  * read()'s value selection under a lane: return the committed `_value` for
177
186
  * optimistic/lane-assigned signals, stale-mode reads, and pending owners.
178
187
  */ function laneReadsCommitted(e, n, t) {
179
- if (e.o?.Oe !== undefined || !!e.o?.Je || !!(n.S & STATUS_PENDING)) {
188
+ if (e.o?.Pe !== undefined || !!e.o?.$e || !!(n.S & STATUS_PENDING)) {
180
189
  // The committed view hides a staged in-flight value that will promote
181
190
  // silently (commitPendingNode never re-notifies). gatedRead records plain
182
191
  // signals for replay at commit; async memos are excluded from it by the
@@ -185,10 +194,10 @@ function cleanupCompletedLanes(e) {
185
194
  // committed value to a reader that never re-ran after the landing, so a
186
195
  // pending-gated branch stayed one value behind permanently (#3041
187
196
  // follow-up). Record the reader under the same replay contract.
188
- if (e.Pe !== NOT_PENDING) (activeTransition ?? globalQueue.m).cn.add(t);
197
+ if (e.Re !== NOT_PENDING) (activeTransition ?? globalQueue.m).cn.add(t);
189
198
  return true;
190
199
  }
191
- if (n === e && stale && t.o?.Tt !== e) {
200
+ if (n === e && stale && t.o?.St !== e) {
192
201
  // The committed view can hide a staged write (a lane member — even just
193
202
  // an isPending companion flip — puts the reader "under a lane"). The
194
203
  // staged value commits with no re-delivery (commitPendingNode never
@@ -200,7 +209,7 @@ function cleanupCompletedLanes(e) {
200
209
  // into the transaction (#3041 follow-up: a pending-gated branch that
201
210
  // first read its async source during the landing flush stayed one value
202
211
  // behind permanently); with none, into the ambient batch.
203
- if (e.Pe !== NOT_PENDING) (activeTransition ?? globalQueue.m).cn.add(t);
212
+ if (e.Re !== NOT_PENDING) (activeTransition ?? globalQueue.m).cn.add(t);
204
213
  return true;
205
214
  }
206
215
  return false;
@@ -223,14 +232,14 @@ function cleanupCompletedLanes(e) {
223
232
  // recompute() runs plain: the value stages and commits with the flush.
224
233
  // (el's own override slot excludes companions themselves; a lane merged
225
234
  // into a real optimistic lane resolves to a non-companion source.)
226
- if (!globalQueue.fn && !activeTransition && !n.Ae && n.nn.o?.Tt !== undefined && e.o?.Oe === undefined) {
227
- if (e.o !== null) e.o.Je = undefined;
235
+ if (!globalQueue.fn && !activeTransition && !n.Ae && n.nn.o?.St !== undefined && e.o?.Pe === undefined) {
236
+ if (e.o !== null) e.o.$e = undefined;
228
237
  return false;
229
238
  }
230
239
  return n;
231
240
  }
232
- for (let n = e.ut; n; n = n.lt) {
233
- const t = n.ot;
241
+ for (let n = e.lt; n; n = n.ot) {
242
+ const t = n.st;
234
243
  if (t.ie & REACTIVE_OPTIMISTIC_DIRTY) {
235
244
  const n = resolveLane(t);
236
245
  if (n) {
@@ -243,21 +252,22 @@ function cleanupCompletedLanes(e) {
243
252
  return null;
244
253
  }
245
254
 
246
- /** recompute()'s catch path: track pending async in the current lane. */ function laneAsyncPending(e) {
255
+ /** recompute()'s catch path: record the pending async as the current lane's
256
+ * (ownership — laneHeld decides the hold). The lane source's isPending
257
+ * companion is NOT refreshed here: its verdict never read _pendingAsync, and
258
+ * the source's own write/commit/settlement paths keep it current. */ function laneAsyncPending(e) {
247
259
  const n = findLane(currentOptimisticLane);
248
260
  if (n.nn !== e) {
249
- n.De.add(e);
250
- ext(e).Je = n;
261
+ n.Oe.add(e);
262
+ ext(e).$e = n;
251
263
  e.T |= CONFIG_HAS_LANE;
252
- GlobalQueue.de !== null && GlobalQueue.de(n.nn);
253
264
  }
254
265
  }
255
266
 
256
267
  /** recompute()'s success path: the node's async settled, clear it from its lane. */ function laneAsyncSettled(e) {
257
268
  const n = resolveLane(e);
258
269
  if (n) {
259
- n.De.delete(e);
260
- GlobalQueue.de !== null && GlobalQueue.de(n.nn);
270
+ n.Oe.delete(e);
261
271
  }
262
272
  }
263
273
 
@@ -272,18 +282,18 @@ function trackOptimisticStore(e) {
272
282
  * create optimistic state (verdict.ts at module top level, createOptimistic
273
283
  * and createOptimisticStore at first call) BEFORE any optimistic node exists.
274
284
  */ function installOptimisticEngine() {
275
- if (GlobalQueue.xt !== null) return;
276
- GlobalQueue.xt = optimisticWrite;
285
+ if (GlobalQueue.yt !== null) return;
286
+ GlobalQueue.yt = optimisticWrite;
277
287
  GlobalQueue.Tn = resolveOptimisticNodes;
278
288
  GlobalQueue.dn = transitionBlocked;
279
289
  GlobalQueue.In = cleanupCompletedLanes;
280
290
  GlobalQueue.Nn = runLaneEffects;
281
- GlobalQueue.vt = gatedRead;
282
- GlobalQueue.Vt = laneSuspends;
283
- GlobalQueue.bt = laneReadsCommitted;
284
- GlobalQueue.Be = recomputeLane;
285
- GlobalQueue.$e = laneAsyncPending;
286
- GlobalQueue.Xe = laneAsyncSettled;
291
+ GlobalQueue.Ut = gatedRead;
292
+ GlobalQueue.kt = laneSuspends;
293
+ GlobalQueue.xt = laneReadsCommitted;
294
+ GlobalQueue.Je = recomputeLane;
295
+ GlobalQueue.tt = laneAsyncPending;
296
+ GlobalQueue.et = laneAsyncSettled;
287
297
  GlobalQueue._n = trackOptimisticStore;
288
298
  }
289
299
 
@@ -12,7 +12,7 @@ const PENDING_OWNER = {};
12
12
 
13
13
  // Dummy owner to trigger store's read() path
14
14
  function markDisposal(e) {
15
- let t = e.xe;
15
+ let t = e.Qe;
16
16
  while (t) {
17
17
  const e = t.ie;
18
18
  t.ie = e | REACTIVE_ZOMBIE;
@@ -26,7 +26,7 @@ function markDisposal(e) {
26
26
  if (e & REACTIVE_IN_HEAP) insertIntoHeap(t, zombieQueue); else insertIntoHeapHeight(t, zombieQueue);
27
27
  }
28
28
  markDisposal(t);
29
- t = t.Le;
29
+ t = t.We;
30
30
  }
31
31
  }
32
32
 
@@ -55,9 +55,9 @@ function disposeChildren(e, t = false, n) {
55
55
  if (t.o?.ye || t.o?.Ce) GlobalQueue.un(t);
56
56
  }
57
57
  if (t && e.oe && e.o !== null) e.o.Ie = null;
58
- let o = n ? e.o?.Ye ?? null : e.xe;
58
+ let o = n ? e.o?.Ke ?? null : e.Qe;
59
59
  while (o) {
60
- const e = o.Le;
60
+ const e = o.We;
61
61
  const t = o;
62
62
  // Owner teardown is death regardless of the child's own lifecycle
63
63
  // (#3024): strip AUTO_DISPOSE so a post-disposal read freezes at the
@@ -80,34 +80,34 @@ function disposeChildren(e, t = false, n) {
80
80
  o = e;
81
81
  }
82
82
  if (n) {
83
- if (e.o !== null) e.o.Ye = null;
83
+ if (e.o !== null) e.o.Ke = null;
84
84
  } else {
85
- e.xe = null;
86
- e.Ze = 0;
85
+ e.Qe = null;
86
+ e.je = 0;
87
87
  }
88
88
  // O(1) splice out of parent's chain on individual dispose. Skipped during
89
89
  // batch dispose (parent already disposed) and zombie disposal (node sits on
90
90
  // parent's _pendingFirstChild). We leave node._nextSibling intact so outer
91
91
  // walks that already advanced past us still reach later siblings.
92
- if (t && !n && !(i & REACTIVE_ZOMBIE) && e.ke !== null && !(e.ke.ie & REACTIVE_DISPOSED)) {
93
- const t = e.ft;
94
- const n = e.Le;
95
- if (t !== null) t.Le = n; else e.ke.xe = n;
96
- if (n !== null) n.ft = t;
97
- e.ft = null;
92
+ if (t && !n && !(i & REACTIVE_ZOMBIE) && e.Le !== null && !(e.Le.ie & REACTIVE_DISPOSED)) {
93
+ const t = e.It;
94
+ const n = e.We;
95
+ if (t !== null) t.We = n; else e.Le.Qe = n;
96
+ if (n !== null) n.It = t;
97
+ e.It = null;
98
98
  }
99
99
  runDisposal(e, n);
100
100
  // Final effect-returned cleanup fires at true disposal, after `_disposal`
101
101
  // to mirror rerun ordering (compute-phase teardown first, cleanup last).
102
- if (t && e.Rt) {
103
- const t = e.Rt;
104
- e.Rt = undefined;
102
+ if (t && e.Gt) {
103
+ const t = e.Gt;
104
+ e.Gt = undefined;
105
105
  t();
106
106
  }
107
107
  }
108
108
 
109
109
  function runDisposal(e, t) {
110
- let n = t ? e.o?.qe : e.pe;
110
+ let n = t ? e.o?.Ze : e.Ge;
111
111
  if (!n) return;
112
112
  if (Array.isArray(n)) {
113
113
  for (let e = 0; e < n.length; e++) {
@@ -118,14 +118,14 @@ function runDisposal(e, t) {
118
118
  n.call(n);
119
119
  }
120
120
  if (t) {
121
- if (e.o !== null) e.o.qe = null;
122
- } else e.pe = null;
121
+ if (e.o !== null) e.o.Ze = null;
122
+ } else e.Ge = null;
123
123
  }
124
124
 
125
125
  function childId(e, t) {
126
126
  let n = e;
127
- while (n.T & CONFIG_TRANSPARENT && n.ke) n = n.ke;
128
- if (n.id != null) return formatId(n.id, t ? n.Ze++ : n.Ze);
127
+ while (n.T & CONFIG_TRANSPARENT && n.Le) n = n.Le;
128
+ if (n.id != null) return formatId(n.id, t ? n.je++ : n.je);
129
129
  throw new Error("");
130
130
  }
131
131
 
@@ -206,7 +206,7 @@ function formatId(e, t) {
206
206
  * checks. `cleanup()` is the unchecked primitive used by internals.
207
207
  */ function cleanup(e) {
208
208
  if (!context) return e;
209
- if (!context.pe) context.pe = e; else if (Array.isArray(context.pe)) context.pe.push(e); else context.pe = [ context.pe, e ];
209
+ if (!context.Ge) context.Ge = e; else if (Array.isArray(context.Ge)) context.Ge.push(e); else context.Ge = [ context.Ge, e ];
210
210
  return e;
211
211
  }
212
212
 
@@ -246,27 +246,27 @@ function disposeRootSelf(e = true) {
246
246
  const i = {
247
247
  id: inheritId(e, n, t),
248
248
  T: n ? CONFIG_TRANSPARENT : 0,
249
- Gt: true,
250
- Dt: t?.Gt ? t.Dt : t,
251
- xe: null,
252
- Le: null,
253
- ft: null,
254
- pe: null,
249
+ Dt: true,
250
+ Pt: t?.Dt ? t.Pt : t,
251
+ Qe: null,
252
+ We: null,
253
+ It: null,
254
+ Ge: null,
255
255
  C: t?.C ?? globalQueue,
256
256
  we: t?.we || defaultContext,
257
- Ze: 0,
257
+ je: 0,
258
258
  o: null,
259
- ke: t,
259
+ Le: t,
260
260
  dispose: disposeRootSelf
261
261
  };
262
262
  if (t) {
263
- const e = t.xe;
263
+ const e = t.Qe;
264
264
  if (e === null) {
265
- t.xe = i;
265
+ t.Qe = i;
266
266
  } else {
267
- i.Le = e;
268
- e.ft = i;
269
- t.xe = i;
267
+ i.We = e;
268
+ e.It = i;
269
+ t.Qe = i;
270
270
  }
271
271
  }
272
272
  return i;