@ecsia/core 0.7.0 → 0.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/component/accessor.d.ts +4 -2
- package/dist/component/accessor.d.ts.map +1 -1
- package/dist/component/accessor.js +2 -2
- package/dist/component/accessor.js.map +1 -1
- package/dist/component/sidecar.d.ts +34 -10
- package/dist/component/sidecar.d.ts.map +1 -1
- package/dist/component/sidecar.js +94 -16
- package/dist/component/sidecar.js.map +1 -1
- package/dist/entity/store.d.ts.map +1 -1
- package/dist/entity/store.js +5 -2
- package/dist/entity/store.js.map +1 -1
- package/dist/ids.d.ts +3 -4
- package/dist/ids.d.ts.map +1 -1
- package/dist/ids.js.map +1 -1
- package/dist/internal.d.ts +1 -1
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js.map +1 -1
- package/dist/query/sparse-set.d.ts.map +1 -1
- package/dist/query/sparse-set.js +4 -2
- package/dist/query/sparse-set.js.map +1 -1
- package/dist/reactivity/observers.d.ts +7 -2
- package/dist/reactivity/observers.d.ts.map +1 -1
- package/dist/reactivity/observers.js +3 -3
- package/dist/reactivity/observers.js.map +1 -1
- package/dist/reactivity/reactivity.d.ts +21 -2
- package/dist/reactivity/reactivity.d.ts.map +1 -1
- package/dist/reactivity/reactivity.js +30 -1
- package/dist/reactivity/reactivity.js.map +1 -1
- package/dist/storage/store.d.ts.map +1 -1
- package/dist/storage/store.js +17 -8
- package/dist/storage/store.js.map +1 -1
- package/dist/util/stable-index.d.ts.map +1 -1
- package/dist/util/stable-index.js +11 -9
- package/dist/util/stable-index.js.map +1 -1
- package/dist/world.d.ts.map +1 -1
- package/dist/world.js +32 -7
- package/dist/world.js.map +1 -1
- package/package.json +2 -2
|
@@ -10,8 +10,10 @@ export interface AccessorWorld {
|
|
|
10
10
|
};
|
|
11
11
|
sidecarRead(key: SidecarKey, index: number, gen: number): unknown;
|
|
12
12
|
sidecarWrite(key: SidecarKey, index: number, gen: number, value: unknown): void;
|
|
13
|
-
/**
|
|
14
|
-
|
|
13
|
+
/** The generation embedded in `handle` — the RF-HYGIENE stamp source. For a live entity this equals
|
|
14
|
+
* the index's live generation; for an observer-window ref bound to a DYING handle it names the dead
|
|
15
|
+
* tenant, so its rich reads hit the pending-clear stash and never alias a same-window re-mint. */
|
|
16
|
+
handleGeneration(handle: EntityHandle): number;
|
|
15
17
|
}
|
|
16
18
|
export interface AccessorBinding {
|
|
17
19
|
readonly world: AccessorWorld;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessor.d.ts","sourceRoot":"","sources":["../../src/component/accessor.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EAEZ,MAAM,EACP,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC3E,OAAO,EAAE,SAAS,EAAe,MAAM,oBAAoB,CAAA;AAG3D,OAAO,KAAK,EAAY,UAAU,EAAE,MAAM,cAAc,CAAA;AAIxD,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9E,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAAA;IAOzC,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAA;IAG/C,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;IACjE,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;IAC/E
|
|
1
|
+
{"version":3,"file":"accessor.d.ts","sourceRoot":"","sources":["../../src/component/accessor.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EAEZ,MAAM,EACP,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC3E,OAAO,EAAE,SAAS,EAAe,MAAM,oBAAoB,CAAA;AAG3D,OAAO,KAAK,EAAY,UAAU,EAAE,MAAM,cAAc,CAAA;AAIxD,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9E,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAAA;IAOzC,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAA;IAG/C,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;IACjE,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;IAC/E;;sGAEkG;IAClG,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAAA;CAC/C;AAID,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;IAC7B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;CAClC;AAID,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,YAAY,CAAA;IACnB,SAAS,EAAE,eAAe,GAAG,IAAI,CAAA;IACjC,QAAQ,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI,CAAA;IACnC;;;;;OAKG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI,CAAA;CAC7D;AAgED,wBAAgB,WAAW,CACzB,OAAO,EAAE,aAAa,CAAC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE,CAAC,GACjE,aAAa,EAAE,CAMjB;AAID,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CA2H9F;AAuCD,OAAO,EAAE,SAAS,EAAE,CAAA;AACpB,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA"}
|
|
@@ -176,14 +176,14 @@ export function makeAccessorFactory(def) {
|
|
|
176
176
|
if (b === null)
|
|
177
177
|
return undefined;
|
|
178
178
|
const idx = b.world.handleIndex(this.__eid);
|
|
179
|
-
return b.world.sidecarRead(key, idx, b.world.
|
|
179
|
+
return b.world.sidecarRead(key, idx, b.world.handleGeneration(this.__eid));
|
|
180
180
|
},
|
|
181
181
|
set(value) {
|
|
182
182
|
const b = this.__binding;
|
|
183
183
|
if (b === null)
|
|
184
184
|
return;
|
|
185
185
|
const idx = b.world.handleIndex(this.__eid);
|
|
186
|
-
b.world.sidecarWrite(key, idx, b.world.
|
|
186
|
+
b.world.sidecarWrite(key, idx, b.world.handleGeneration(this.__eid), value);
|
|
187
187
|
b.world.trackWrite(idx, componentId, fieldIndex);
|
|
188
188
|
},
|
|
189
189
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessor.js","sourceRoot":"","sources":["../../src/component/accessor.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,+FAA+F;AAC/F,gGAAgG;AAChG,gEAAgE;AAChE,EAAE;AACF,+FAA+F;AAC/F,qFAAqF;AACrF,8FAA8F;AAC9F,+FAA+F;AAC/F,6BAA6B;AAY7B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"accessor.js","sourceRoot":"","sources":["../../src/component/accessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,21 +30,45 @@ export declare class SidecarStore {
|
|
|
30
30
|
write(key: SidecarKey, index: number, gen: number, value: unknown): void;
|
|
31
31
|
/**
|
|
32
32
|
* Observer-window read: during an onRemove/preDespawn drain the dying entity's
|
|
33
|
-
* generation has already been bumped, so a normal generation-guarded read would return the
|
|
34
|
-
*
|
|
35
|
-
*
|
|
33
|
+
* index generation has already been bumped, so a normal generation-guarded read would return the
|
|
34
|
+
* default. A pending-clear entry whose stamped generation MATCHES the reading handle's generation
|
|
35
|
+
* serves the stashed value (the remove-event ref is bound to the dying handle — world wiring); any
|
|
36
|
+
* other generation falls through to the generation-guarded read, so a same-window re-mint at the
|
|
37
|
+
* index reads its own slot, never the dead tenant's stash.
|
|
36
38
|
*/
|
|
37
39
|
readForObserver(key: SidecarKey, index: number, gen: number): unknown;
|
|
38
40
|
/**
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
41
|
+
* The generation of the OLDEST un-superseded dying tenant stashed at `index`, or undefined. While
|
|
42
|
+
* the drain cursor is inside a stashed tenant's lifetime (its events, up to the Create that
|
|
43
|
+
* re-minted the index), this is that tenant's generation — the observer dispatch binds the events'
|
|
44
|
+
* refs to it; supersedePending advances it when the drain passes the re-mint.
|
|
45
|
+
*/
|
|
46
|
+
pendingGenerationOf(index: number): number | undefined;
|
|
47
|
+
/** The observer drain passed a Destroy entry for `index`: when it is the head stash's tenant's own
|
|
48
|
+
* (matched by despawn ordinal — stashless despawns at the index consume ordinals too), mark the
|
|
49
|
+
* stash so the NEXT Create at the index supersedes it. */
|
|
50
|
+
noteDestroyDrained(index: number): void;
|
|
51
|
+
/**
|
|
52
|
+
* Drop the oldest pending-clear entry for `index` when the observer drain encounters a Create
|
|
53
|
+
* entry AFTER that tenant's Destroy: the log is ordered, so every remove/destroy event of the
|
|
54
|
+
* tenant that died before this re-mint has already dispatched; later remove events at the index
|
|
55
|
+
* belong to a newer tenant. A Create drained before the Destroy (the tenant's own same-window
|
|
56
|
+
* mint) leaves the entry in place.
|
|
57
|
+
*/
|
|
58
|
+
supersedePending(index: number): void;
|
|
59
|
+
/**
|
|
60
|
+
* Despawn handler. When no held component has a remove-observer, clear
|
|
61
|
+
* data[index] eagerly so the JS reference is released for GC. When one does, DEFER: stash the
|
|
62
|
+
* dying values (gen-only when the tenant held no rich field) so an onRemove handler can read them
|
|
63
|
+
* during the drain (RF-REMOVE-READ), then flush at the post-observer point (flushPending).
|
|
43
64
|
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
65
|
+
* Called for EVERY despawn (the per-index despawn ordinal must count every deferred despawn —
|
|
66
|
+
* noteDestroyDrained pairs drain-side Destroy entries by it). `gen` is the dying handle's
|
|
67
|
+
* generation (stamped into the stash so observer-window reads can be keyed to the dead tenant).
|
|
68
|
+
* `richKeysOnEntity` are the sidecar keys the entity actually held (its signature's rich fields);
|
|
69
|
+
* only those are stashed/cleared. `defer` is true iff any held component has a remove-observer.
|
|
46
70
|
*/
|
|
47
|
-
onDespawn(index: number, richKeysOnEntity: readonly SidecarKey[], defer: boolean): void;
|
|
71
|
+
onDespawn(index: number, gen: number, richKeysOnEntity: readonly SidecarKey[], defer: boolean): void;
|
|
48
72
|
/**
|
|
49
73
|
* Flush the deferred-clear window. Called at the post-observerDrain serial slot,
|
|
50
74
|
* mirroring where storage's deferred row reclaim is finalized — after onRemove handlers have read the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidecar.d.ts","sourceRoot":"","sources":["../../src/component/sidecar.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sidecar.d.ts","sourceRoot":"","sources":["../../src/component/sidecar.ts"],"names":[],"mappings":"AAiBA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,YAAY,EAAE,OAAO,MAAM,CAAA;CAAE,CAAA;AAE1E,eAAO,MAAM,UAAU,GAAI,aAAa,MAAM,EAAE,YAAY,MAAM,KAAG,UACM,CAAA;AAE3E,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAE1C,UAAU,aAAa;IACrB,+EAA+E;IAC/E,IAAI,EAAE,OAAO,EAAE,CAAA;IACf,2FAA2F;IAC3F,GAAG,EAAE,WAAW,CAAA;IAChB,kGAAkG;IAClG,OAAO,EAAE,UAAU,CAAA;IACnB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CACxB;AAmBD,qBAAa,YAAY;;IAWvB,iFAAiF;IACjF,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI;IAKjE,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO;IAgBnC,wGAAwG;IACxG,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAU1D;;;;OAIG;IACH,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAM/D,qEAAqE;IACrE,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAUxE;;;;;;;OAOG;IACH,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO;IAUrE;;;;;OAKG;IACH,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAItD;;8DAE0D;IAC1D,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAUvC;;;;;;OAMG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAUrC;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,gBAAgB,EAAE,SAAS,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAmCpG;;;;OAIG;IACH,YAAY,IAAI,IAAI;IAMpB,UAAU,IAAI,OAAO;IAIrB,OAAO,IAAI,gBAAgB,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;CAGzD"}
|
|
@@ -7,12 +7,23 @@
|
|
|
7
7
|
// structural, the same way changeVersion follows an entity across relocations. The generation stamp
|
|
8
8
|
// closes RF-HYGIENE: a recycled index never leaks the prior tenant's value (a stale slot reads the
|
|
9
9
|
// field default). Main-thread-only by construction (rich components are restrictedToMainThread).
|
|
10
|
+
//
|
|
11
|
+
// Residual boundary (the generation guard covers RICH storage only): a dead tenant's observer-window
|
|
12
|
+
// ref reading a NUMERIC component it never held, and a numeric read at an index re-minted within the
|
|
13
|
+
// same window, both resolve by INDEX through the live records — they alias the newest tenant. Closing
|
|
14
|
+
// either requires generation-aware numeric storage; this is a pre-existing limit, not a window bug.
|
|
10
15
|
const FIELD_BITS = 8; // up to 256 fields per component; schema arity is far below.
|
|
11
16
|
export const sidecarKey = (componentId, fieldIndex) => (((componentId << FIELD_BITS) | (fieldIndex & 0xff)) >>> 0);
|
|
12
17
|
export class SidecarStore {
|
|
13
18
|
#cols = new Map();
|
|
14
|
-
/** index →
|
|
19
|
+
/** index → pending-clear entries while a remove-observer window is open (RF-REMOVE-READ). A list,
|
|
20
|
+
* not a single entry: an index can be despawned, re-minted, and despawned again before one drain. */
|
|
15
21
|
#pending = new Map();
|
|
22
|
+
/** index → despawns of that index this window (ALL despawns, stashed or not — the ordinal source
|
|
23
|
+
* for PendingClear.despawnsBefore). Cleared with the window at flushPending. */
|
|
24
|
+
#despawnSeq = new Map();
|
|
25
|
+
/** index → Destroy entries the observer drain has passed this window (noteDestroyDrained). */
|
|
26
|
+
#destroysDrained = new Map();
|
|
16
27
|
/** Allocate a column for a (componentId, fieldIndex) rich field (idempotent). */
|
|
17
28
|
ensureColumn(key, kind, def) {
|
|
18
29
|
if (this.#cols.has(key))
|
|
@@ -71,29 +82,89 @@ export class SidecarStore {
|
|
|
71
82
|
}
|
|
72
83
|
/**
|
|
73
84
|
* Observer-window read: during an onRemove/preDespawn drain the dying entity's
|
|
74
|
-
* generation has already been bumped, so a normal generation-guarded read would return the
|
|
75
|
-
*
|
|
76
|
-
*
|
|
85
|
+
* index generation has already been bumped, so a normal generation-guarded read would return the
|
|
86
|
+
* default. A pending-clear entry whose stamped generation MATCHES the reading handle's generation
|
|
87
|
+
* serves the stashed value (the remove-event ref is bound to the dying handle — world wiring); any
|
|
88
|
+
* other generation falls through to the generation-guarded read, so a same-window re-mint at the
|
|
89
|
+
* index reads its own slot, never the dead tenant's stash.
|
|
77
90
|
*/
|
|
78
91
|
readForObserver(key, index, gen) {
|
|
79
|
-
const
|
|
80
|
-
if (
|
|
81
|
-
|
|
92
|
+
const list = this.#pending.get(index);
|
|
93
|
+
if (list !== undefined) {
|
|
94
|
+
for (const pend of list) {
|
|
95
|
+
if (pend.gen === gen && pend.values.has(key))
|
|
96
|
+
return pend.values.get(key);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
82
99
|
return this.read(key, index, gen);
|
|
83
100
|
}
|
|
84
101
|
/**
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
102
|
+
* The generation of the OLDEST un-superseded dying tenant stashed at `index`, or undefined. While
|
|
103
|
+
* the drain cursor is inside a stashed tenant's lifetime (its events, up to the Create that
|
|
104
|
+
* re-minted the index), this is that tenant's generation — the observer dispatch binds the events'
|
|
105
|
+
* refs to it; supersedePending advances it when the drain passes the re-mint.
|
|
106
|
+
*/
|
|
107
|
+
pendingGenerationOf(index) {
|
|
108
|
+
return this.#pending.get(index)?.[0]?.gen;
|
|
109
|
+
}
|
|
110
|
+
/** The observer drain passed a Destroy entry for `index`: when it is the head stash's tenant's own
|
|
111
|
+
* (matched by despawn ordinal — stashless despawns at the index consume ordinals too), mark the
|
|
112
|
+
* stash so the NEXT Create at the index supersedes it. */
|
|
113
|
+
noteDestroyDrained(index) {
|
|
114
|
+
// Mutations stage during a drain, so an empty #pending stays empty for the whole window — the
|
|
115
|
+
// ordinal this would record could never be consulted before flushPending clears it anyway.
|
|
116
|
+
if (this.#pending.size === 0)
|
|
117
|
+
return;
|
|
118
|
+
const n = (this.#destroysDrained.get(index) ?? 0) + 1;
|
|
119
|
+
this.#destroysDrained.set(index, n);
|
|
120
|
+
const head = this.#pending.get(index)?.[0];
|
|
121
|
+
if (head !== undefined && n > head.despawnsBefore)
|
|
122
|
+
head.destroyDrained = true;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Drop the oldest pending-clear entry for `index` when the observer drain encounters a Create
|
|
126
|
+
* entry AFTER that tenant's Destroy: the log is ordered, so every remove/destroy event of the
|
|
127
|
+
* tenant that died before this re-mint has already dispatched; later remove events at the index
|
|
128
|
+
* belong to a newer tenant. A Create drained before the Destroy (the tenant's own same-window
|
|
129
|
+
* mint) leaves the entry in place.
|
|
130
|
+
*/
|
|
131
|
+
supersedePending(index) {
|
|
132
|
+
// Same staging argument as noteDestroyDrained: empty stays empty mid-drain — skip the lookup.
|
|
133
|
+
if (this.#pending.size === 0)
|
|
134
|
+
return;
|
|
135
|
+
const list = this.#pending.get(index);
|
|
136
|
+
if (list === undefined || list.length === 0)
|
|
137
|
+
return;
|
|
138
|
+
if (!list[0].destroyDrained)
|
|
139
|
+
return;
|
|
140
|
+
list.shift();
|
|
141
|
+
if (list.length === 0)
|
|
142
|
+
this.#pending.delete(index);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Despawn handler. When no held component has a remove-observer, clear
|
|
146
|
+
* data[index] eagerly so the JS reference is released for GC. When one does, DEFER: stash the
|
|
147
|
+
* dying values (gen-only when the tenant held no rich field) so an onRemove handler can read them
|
|
148
|
+
* during the drain (RF-REMOVE-READ), then flush at the post-observer point (flushPending).
|
|
89
149
|
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
150
|
+
* Called for EVERY despawn (the per-index despawn ordinal must count every deferred despawn —
|
|
151
|
+
* noteDestroyDrained pairs drain-side Destroy entries by it). `gen` is the dying handle's
|
|
152
|
+
* generation (stamped into the stash so observer-window reads can be keyed to the dead tenant).
|
|
153
|
+
* `richKeysOnEntity` are the sidecar keys the entity actually held (its signature's rich fields);
|
|
154
|
+
* only those are stashed/cleared. `defer` is true iff any held component has a remove-observer.
|
|
92
155
|
*/
|
|
93
|
-
onDespawn(index, richKeysOnEntity, defer) {
|
|
94
|
-
|
|
156
|
+
onDespawn(index, gen, richKeysOnEntity, defer) {
|
|
157
|
+
// No rich columns in this world (the column set is fixed at createWorld): no stash can ever
|
|
158
|
+
// exist, so neither the despawn ordinal nor a pending entry would ever be consulted — skip.
|
|
159
|
+
if (this.#cols.size === 0)
|
|
95
160
|
return;
|
|
161
|
+
const despawnsBefore = this.#despawnSeq.get(index) ?? 0;
|
|
162
|
+
this.#despawnSeq.set(index, despawnsBefore + 1);
|
|
96
163
|
if (defer) {
|
|
164
|
+
// EVERY deferred despawn stashes — a rich-free tenant gets a gen-only entry (empty values).
|
|
165
|
+
// The entry's generation is what binds the tenant's drained events to its OWN dead handle
|
|
166
|
+
// (eventRefOf), so attribution is uniform: a rich read through a rich-free tenant's ref hits
|
|
167
|
+
// the generation guard and returns the default, never a same-window successor's stash.
|
|
97
168
|
const values = new Map();
|
|
98
169
|
for (const key of richKeysOnEntity) {
|
|
99
170
|
const col = this.#cols.get(key);
|
|
@@ -102,7 +173,12 @@ export class SidecarStore {
|
|
|
102
173
|
const v = index < col.written.length && col.written[index] === 1 ? col.data[index] : col.def;
|
|
103
174
|
values.set(key, v === undefined ? col.def : v);
|
|
104
175
|
}
|
|
105
|
-
|
|
176
|
+
const entry = { gen, values, despawnsBefore, destroyDrained: false };
|
|
177
|
+
const list = this.#pending.get(index);
|
|
178
|
+
if (list === undefined)
|
|
179
|
+
this.#pending.set(index, [entry]);
|
|
180
|
+
else
|
|
181
|
+
list.push(entry);
|
|
106
182
|
}
|
|
107
183
|
// Whether deferred or not, the live slot is invalidated now: a recycled index must not read this
|
|
108
184
|
// tenant's value. The generation guard already protects correctness; clearing releases the GC ref.
|
|
@@ -125,6 +201,8 @@ export class SidecarStore {
|
|
|
125
201
|
*/
|
|
126
202
|
flushPending() {
|
|
127
203
|
this.#pending.clear();
|
|
204
|
+
this.#despawnSeq.clear();
|
|
205
|
+
this.#destroysDrained.clear();
|
|
128
206
|
}
|
|
129
207
|
hasPending() {
|
|
130
208
|
return this.#pending.size > 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidecar.js","sourceRoot":"","sources":["../../src/component/sidecar.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,sGAAsG;AACtG,yEAAyE;AACzE,EAAE;AACF,uGAAuG;AACvG,kGAAkG;AAClG,oGAAoG;AACpG,mGAAmG;AACnG,iGAAiG;
|
|
1
|
+
{"version":3,"file":"sidecar.js","sourceRoot":"","sources":["../../src/component/sidecar.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/entity/store.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,IAAI,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC/G,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAOhD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CACjC;AAED,qBAAa,WAAW;;IACtB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;gBAoBjB,MAAM,EAAE,iBAAiB;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/entity/store.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,IAAI,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC/G,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAOhD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;CACjC;AAED,qBAAa,WAAW;;IACtB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;gBAoBjB,MAAM,EAAE,iBAAiB;IA2ErC,YAAY,CAAC,KAAK,EAAE;QAAE,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;QAAC,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI;IAIzG,KAAK,IAAI,YAAY;IAYrB,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IASnC,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO;IAItC,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS;IASrE,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY;IAU7D,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG;QAAE,KAAK,EAAE,gBAAgB,CAAC;QAAC,UAAU,EAAE,gBAAgB,CAAA;KAAE;IAO7F,mFAAmF;IACnF,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAIrD,IAAI,KAAK,IAAI,WAAW,CAEvB;IAED,IAAI,OAAO,IAAI,YAAY,CAE1B;IAED;;;;;OAKG;IACH,mBAAmB,IAAI;QAAE,WAAW,EAAE,eAAe,CAAC;QAAC,YAAY,EAAE,eAAe,CAAA;KAAE;IAOtF,mGAAmG;IACnG,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY;IAI1C,yFAAyF;IACzF,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;IAIpE,WAAW,IAAI,WAAW;CAmB3B;AAED,OAAO,EAAE,cAAc,EAAE,CAAA"}
|
package/dist/entity/store.js
CHANGED
|
@@ -29,8 +29,11 @@ export class EntityStore {
|
|
|
29
29
|
this.#maxEntities = config.maxEntities;
|
|
30
30
|
this.#addressable = config.maxEntities;
|
|
31
31
|
// The index space is [0, maxIndex]; when threaded, maxIndex is reserved for the NO_ENTITY
|
|
32
|
-
// sentinel so a minted+wrapped handle can never alias 0xffffffff.
|
|
33
|
-
|
|
32
|
+
// sentinel so a minted+wrapped handle can never alias 0xffffffff. maxEntities also binds the
|
|
33
|
+
// ceiling: every fixed-size region (bitmask, query sparse sets, reactivity rings) is sized by it,
|
|
34
|
+
// so minting past it corrupts silently — the allocator must throw CapacityExceeded instead
|
|
35
|
+
// (world.md §6.2, entity-model.md §3.4).
|
|
36
|
+
this.#ceiling = Math.min(config.maxEntities, config.shared ? config.layout.maxIndex : config.layout.maxIndex + 1);
|
|
34
37
|
const opts = { shared: config.shared, maxLength: config.layout.capacity };
|
|
35
38
|
this.#regions = {
|
|
36
39
|
sparse: allocU32(config.maxEntities, opts),
|
package/dist/entity/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/entity/store.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,8FAA8F;AAC9F,wFAAwF;AACxF,4DAA4D;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAE7C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAGpC,sEAAsE;AACtE,8FAA8F;AAC9F,oEAAoE;AACpE,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAe5B,MAAM,OAAO,WAAW;IACb,MAAM,CAAc;IACpB,MAAM,CAAa;IACnB,QAAQ,CAAc;IACtB,IAAI,CAAW;IACf,YAAY,CAAQ;IAC7B,2FAA2F;IAClF,QAAQ,CAAQ;IACzB,sEAAsE;IACtE,YAAY,CAAQ;IACpB,WAAW,GAAG,KAAK,CAAA;IAEnB,sFAAsF;IAC7E,QAAQ,CAMhB;IAED,YAAY,MAAyB;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QAC3B,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,CAAA;QACtC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,CAAA;QAEtC,0FAA0F;QAC1F,
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/entity/store.ts"],"names":[],"mappings":"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"}
|
package/dist/ids.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
1
|
+
import type { ComponentId } from '@ecsia/schema';
|
|
2
|
+
/** A dense component type id. The schema-level brand — every kernel surface is typed with it. */
|
|
3
|
+
export type { ComponentId } from '@ecsia/schema';
|
|
5
4
|
/** The reserved "no component" sentinel. Also the shape-log CREATE/DESTROY marker. */
|
|
6
5
|
export declare const NO_COMPONENT: ComponentId;
|
|
7
6
|
/** First id handed out to user components; everything below is reserved. */
|
package/dist/ids.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../src/ids.ts"],"names":[],"mappings":"AAIA,
|
|
1
|
+
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../src/ids.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,iGAAiG;AACjG,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,sFAAsF;AACtF,eAAO,MAAM,YAAY,EAAQ,WAAW,CAAA;AAE5C,4EAA4E;AAC5E,eAAO,MAAM,uBAAuB,EAAQ,WAAW,CAAA"}
|
package/dist/ids.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../src/ids.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,4FAA4F;AAC5F,iFAAiF;
|
|
1
|
+
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../src/ids.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,4FAA4F;AAC5F,iFAAiF;AAOjF,sFAAsF;AACtF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAgB,CAAA;AAE5C,4EAA4E;AAC5E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAgB,CAAA"}
|
package/dist/internal.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export type { EntityGeneration, HandleStats, EntityLocation, EntityAccessors, }
|
|
|
3
3
|
export { allocU32 } from './memory/index.js';
|
|
4
4
|
export type { AllocU32Options, U32Region } from './memory/index.js';
|
|
5
5
|
export { Buffers, probeCapabilities, selectBacking, sharedBacking, snapshotInto, rowSlice, columnKey, tokenToColumnLayout, fieldToColumnLayout, stringIndexElement, EID_NULL, } from './memory/index.js';
|
|
6
|
-
export type { Backing, BackingStrategy, Region, RegionOpts, ViewHolder, BuffersConfig, ExportedColumnHandle, ExportedRegionHandle, } from './memory/index.js';
|
|
6
|
+
export type { Backing, BackingStrategy, Region, RegionKey, RegionOpts, ViewHolder, BuffersConfig, ExportedColumnHandle, ExportedRegionHandle, } from './memory/index.js';
|
|
7
7
|
export { registerComponentId, UNREGISTERED, resolveDescriptor, makeAccessorFactory, bindingsFor, } from './component/index.js';
|
|
8
8
|
export type { ComponentRuntime, DefKind, AccessorWorld, AccessorBinding, AccessorInstanceBase, BuildColumnSetParams, } from './component/index.js';
|
|
9
9
|
export { ComponentRegistry } from './registry.js';
|
package/dist/internal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,eAAe,GAChB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAEnE,OAAO,EACL,OAAO,EACP,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,QAAQ,GACT,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACV,OAAO,EACP,eAAe,EACf,MAAM,EACN,UAAU,EACV,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,GACZ,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EACV,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEjD,OAAO,EACL,cAAc,EACd,OAAO,EACP,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,OAAO,EACP,MAAM,EACN,YAAY,EACZ,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,SAAS,GACV,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EACV,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,aAAa,EACb,WAAW,EACX,aAAa,EACb,WAAW,GACZ,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAEnD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACjI,YAAY,EACV,cAAc,EACd,UAAU,EACV,YAAY,EACZ,eAAe,EACf,YAAY,GACb,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACrF,YAAY,EACV,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,SAAS,EACT,IAAI,GACL,MAAM,kBAAkB,CAAA;AAIzB,YAAY,EACV,WAAW,EACX,UAAU,EACV,OAAO,EACP,eAAe,EACf,eAAe,EACf,cAAc,EACd,QAAQ,EACR,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,aAAa,EACb,QAAQ,EACR,SAAS,EACT,OAAO,EACP,WAAW,EACX,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,UAAU,EACV,iBAAiB,EACjB,OAAO,GACR,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,eAAe,GAChB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAEnE,OAAO,EACL,OAAO,EACP,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,QAAQ,GACT,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACV,OAAO,EACP,eAAe,EACf,MAAM,EACN,SAAS,EACT,UAAU,EACV,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,GACZ,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EACV,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEjD,OAAO,EACL,cAAc,EACd,OAAO,EACP,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,OAAO,EACP,MAAM,EACN,YAAY,EACZ,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,SAAS,GACV,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EACV,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,aAAa,EACb,WAAW,EACX,aAAa,EACb,WAAW,GACZ,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAEnD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACjI,YAAY,EACV,cAAc,EACd,UAAU,EACV,YAAY,EACZ,eAAe,EACf,YAAY,GACb,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACrF,YAAY,EACV,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,SAAS,EACT,IAAI,GACL,MAAM,kBAAkB,CAAA;AAIzB,YAAY,EACV,WAAW,EACX,UAAU,EACV,OAAO,EACP,eAAe,EACf,eAAe,EACf,cAAc,EACd,QAAQ,EACR,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,aAAa,EACb,QAAQ,EACR,SAAS,EACT,OAAO,EACP,WAAW,EACX,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,UAAU,EACV,iBAAiB,EACjB,OAAO,GACR,MAAM,eAAe,CAAA"}
|
package/dist/internal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,iGAAiG;AACjG,sGAAsG;AACtG,oGAAoG;AACpG,yEAAyE;AACzE,EAAE;AACF,2FAA2F;AAC3F,oGAAoG;AACpG,qFAAqF;AAErF,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,mBAAmB,CAAA;AAQ1B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAG5C,OAAO,EACL,OAAO,EACP,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,QAAQ,GACT,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,iGAAiG;AACjG,sGAAsG;AACtG,oGAAoG;AACpG,yEAAyE;AACzE,EAAE;AACF,2FAA2F;AAC3F,oGAAoG;AACpG,qFAAqF;AAErF,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,mBAAmB,CAAA;AAQ1B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAG5C,OAAO,EACL,OAAO,EACP,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,QAAQ,GACT,MAAM,mBAAmB,CAAA;AAa1B,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,GACZ,MAAM,sBAAsB,CAAA;AAU7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEjD,OAAO,EACL,cAAc,EACd,OAAO,EACP,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,OAAO,EACP,MAAM,EACN,YAAY,EACZ,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,SAAS,GACV,MAAM,oBAAoB,CAAA;AAY3B,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAG5C,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AASjI,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sparse-set.d.ts","sourceRoot":"","sources":["../../src/query/sparse-set.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAU,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAKpE,qBAAa,YAAY;;gBAUX,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAWrH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,kGAAkG;IAClG,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAM3B,oFAAoF;IACpF,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IASxB,uDAAuD;IACvD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAU3B,KAAK,IAAI,IAAI;IAIb,sEAAsE;IACrE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC;IAItC,yFAAyF;IACzF,SAAS,IAAI,WAAW;
|
|
1
|
+
{"version":3,"file":"sparse-set.d.ts","sourceRoot":"","sources":["../../src/query/sparse-set.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAU,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAKpE,qBAAa,YAAY;;gBAUX,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAWrH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,kGAAkG;IAClG,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAM3B,oFAAoF;IACpF,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IASxB,uDAAuD;IACvD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAU3B,KAAK,IAAI,IAAI;IAIb,sEAAsE;IACrE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC;IAItC,yFAAyF;IACzF,SAAS,IAAI,WAAW;CAqBzB"}
|
package/dist/query/sparse-set.js
CHANGED
|
@@ -74,10 +74,12 @@ export class SparseSetU32 {
|
|
|
74
74
|
if (need <= this.#capacity)
|
|
75
75
|
return;
|
|
76
76
|
let next = this.#capacity;
|
|
77
|
-
while (next < need)
|
|
77
|
+
while (next < need && next < this.#maxEntities)
|
|
78
78
|
next = Math.min(this.#maxEntities, next * GROWTH);
|
|
79
|
+
// Unreachable while the entity allocator enforces maxEntities as its mint ceiling; a loud throw
|
|
80
|
+
// beats the silent alternative (the old clamp loop span forever once next hit maxEntities).
|
|
79
81
|
if (next < need)
|
|
80
|
-
|
|
82
|
+
throw new Error(`query sparse-set: entity index ${need - 1} exceeds maxEntities (${this.#maxEntities}) — the world's entity allocator should have thrown CapacityExceeded before this point`);
|
|
81
83
|
// Both regions length-track on the primary path; re-publish the view for the fallback path too.
|
|
82
84
|
growRegion(this.#buffers, this.#denseRegion, next);
|
|
83
85
|
growRegion(this.#buffers, this.#sparseRegion, next);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sparse-set.js","sourceRoot":"","sources":["../../src/query/sparse-set.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sparse-set.js","sourceRoot":"","sources":["../../src/query/sparse-set.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,8 +24,13 @@ export interface ObserverDeps {
|
|
|
24
24
|
idOf(def: ComponentDef<Schema>): ComponentId;
|
|
25
25
|
/** Does `index` currently hold ALL of `componentIds`? (multi-component add satisfaction). */
|
|
26
26
|
holdsAll(index: number, componentIds: readonly ComponentId[]): boolean;
|
|
27
|
-
/** The pooled EntityRef bound to the
|
|
28
|
-
|
|
27
|
+
/** The pooled EntityRef an event for `index` dispatches with — bound to the tenant whose lifetime
|
|
28
|
+
* the drain cursor is inside. While a rich pending-clear window covers the index that is the
|
|
29
|
+
* stashed DYING handle (the handler reads the dead tenant's values, not a same-window re-mint's);
|
|
30
|
+
* otherwise the current handle. Change events route here too: the change drain runs AFTER the
|
|
31
|
+
* structural drain, so a pending window still open at that point covers an index that stayed dead
|
|
32
|
+
* through the whole drain — its last-write events belong to the dead tenant. */
|
|
33
|
+
eventRefOf(index: number): EntityRef;
|
|
29
34
|
/** The current frame tick. */
|
|
30
35
|
tick(): number;
|
|
31
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observers.d.ts","sourceRoot":"","sources":["../../src/reactivity/observers.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAEnD,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEtD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,OAAO,IAAI,IAAI,CAAA;CAChB;AAED,kGAAkG;AAClG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,SAAS,YAAY,CAAC,MAAM,CAAC,EAAE,CAAA;CACrD;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAA;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,KAAK,IAAI,CAAA;AAY1E,wBAAgB,KAAK,CAAC,GAAG,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,GAAG,YAAY,CAEzE;AACD,wBAAgB,QAAQ,CAAC,GAAG,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,GAAG,YAAY,CAE5E;AACD,wBAAgB,QAAQ,CAAC,GAAG,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,GAAG,YAAY,CAE5E;AAED,MAAM,WAAW,YAAY;IAC3B,sFAAsF;IACtF,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,WAAW,CAAA;IAC5C,6FAA6F;IAC7F,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,WAAW,EAAE,GAAG,OAAO,CAAA;IACtE
|
|
1
|
+
{"version":3,"file":"observers.d.ts","sourceRoot":"","sources":["../../src/reactivity/observers.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAEnD,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEtD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,OAAO,IAAI,IAAI,CAAA;CAChB;AAED,kGAAkG;AAClG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,SAAS,YAAY,CAAC,MAAM,CAAC,EAAE,CAAA;CACrD;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAA;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,KAAK,IAAI,CAAA;AAY1E,wBAAgB,KAAK,CAAC,GAAG,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,GAAG,YAAY,CAEzE;AACD,wBAAgB,QAAQ,CAAC,GAAG,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,GAAG,YAAY,CAE5E;AACD,wBAAgB,QAAQ,CAAC,GAAG,UAAU,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,GAAG,YAAY,CAE5E;AAED,MAAM,WAAW,YAAY;IAC3B,sFAAsF;IACtF,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,WAAW,CAAA;IAC5C,6FAA6F;IAC7F,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,WAAW,EAAE,GAAG,OAAO,CAAA;IACtE;;;;;oFAKgF;IAChF,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,8BAA8B;IAC9B,IAAI,IAAI,MAAM,CAAA;CACf;AAED,qBAAa,gBAAgB;;gBAQf,IAAI,EAAE,YAAY;IAI9B,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,6FAA6F;IAC7F,IAAI,kBAAkB,IAAI,OAAO,CAEhC;IAED,uGAAuG;IACvG,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IAK5D,OAAO,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,GAAG,cAAc;IA8BrE,yEAAyE;IACzE,kBAAkB,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAepF,2EAA2E;IAC3E,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAYxD,sEAAsE;IACtE,2BAA2B,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI;IAgB5D,uFAAuF;IACvF,gBAAgB,IAAI,IAAI;CAOzB"}
|
|
@@ -78,7 +78,7 @@ export class ObserverRegistry {
|
|
|
78
78
|
if (kind === 'add' && obs.componentIds.length > 1 && !this.#deps.holdsAll(index, obs.componentIds)) {
|
|
79
79
|
continue;
|
|
80
80
|
}
|
|
81
|
-
const ref = this.#deps.
|
|
81
|
+
const ref = this.#deps.eventRefOf(index);
|
|
82
82
|
obs.handler(ref, { kind, component: componentId, tick });
|
|
83
83
|
}
|
|
84
84
|
}
|
|
@@ -92,7 +92,7 @@ export class ObserverRegistry {
|
|
|
92
92
|
if (obs.dedup.has(index))
|
|
93
93
|
continue;
|
|
94
94
|
obs.dedup.add(index);
|
|
95
|
-
const ref = this.#deps.
|
|
95
|
+
const ref = this.#deps.eventRefOf(index);
|
|
96
96
|
obs.handler(ref, { kind: 'change', component: componentId, tick });
|
|
97
97
|
}
|
|
98
98
|
}
|
|
@@ -108,7 +108,7 @@ export class ObserverRegistry {
|
|
|
108
108
|
if (obs.dedup.has(index))
|
|
109
109
|
continue;
|
|
110
110
|
obs.dedup.add(index);
|
|
111
|
-
const ref = this.#deps.
|
|
111
|
+
const ref = this.#deps.eventRefOf(index);
|
|
112
112
|
obs.handler(ref, { kind: 'change', component: componentId, tick });
|
|
113
113
|
}
|
|
114
114
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observers.js","sourceRoot":"","sources":["../../src/reactivity/observers.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,2FAA2F;AAC3F,mGAAmG;AACnG,iGAAiG;AAoCjG,MAAM,UAAU,KAAK,CAAC,GAAG,UAAkC;IACzD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAA;AACpC,CAAC;AACD,MAAM,UAAU,QAAQ,CAAC,GAAG,UAAkC;IAC5D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAA;AACvC,CAAC;AACD,MAAM,UAAU,QAAQ,CAAC,GAAG,UAAkC;IAC5D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAA;AACvC,CAAC;
|
|
1
|
+
{"version":3,"file":"observers.js","sourceRoot":"","sources":["../../src/reactivity/observers.ts"],"names":[],"mappings":"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"}
|