@toyz/loom 0.12.8 → 0.13.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/app.d.ts.map +1 -1
- package/dist/app.js +6 -1
- package/dist/app.js.map +1 -1
- package/dist/css.d.ts.map +1 -1
- package/dist/css.js +14 -2
- package/dist/css.js.map +1 -1
- package/dist/di/decorators.d.ts +2 -1
- package/dist/di/decorators.d.ts.map +1 -1
- package/dist/di/decorators.js +1 -0
- package/dist/di/decorators.js.map +1 -1
- package/dist/element/decorators.d.ts.map +1 -1
- package/dist/element/decorators.js +10 -5
- package/dist/element/decorators.js.map +1 -1
- package/dist/element/element.d.ts +10 -0
- package/dist/element/element.d.ts.map +1 -1
- package/dist/element/element.js +110 -45
- package/dist/element/element.js.map +1 -1
- package/dist/element/events.js +3 -3
- package/dist/element/events.js.map +1 -1
- package/dist/jsx-runtime.d.ts.map +1 -1
- package/dist/jsx-runtime.js +143 -100
- package/dist/jsx-runtime.js.map +1 -1
- package/dist/morph.d.ts +2 -2
- package/dist/morph.d.ts.map +1 -1
- package/dist/morph.js +74 -33
- package/dist/morph.js.map +1 -1
- package/dist/store/decorators.d.ts.map +1 -1
- package/dist/store/decorators.js +14 -4
- package/dist/store/decorators.js.map +1 -1
- package/dist/store/reactive.d.ts +3 -1
- package/dist/store/reactive.d.ts.map +1 -1
- package/dist/store/reactive.js +20 -10
- package/dist/store/reactive.js.map +1 -1
- package/dist/trace.d.ts +2 -0
- package/dist/trace.d.ts.map +1 -1
- package/dist/trace.js +40 -20
- package/dist/trace.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/store/decorators.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAS,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAc,MAAM,uBAAuB,CAAC;AACtH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAG7B;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAA2B,EAAE,CAAC;AAEvD,wBAAwB;AAExB,qFAAqF;AACrF,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAErD,oFAAoF;AACpF,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAExD;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CACtB,MAA6C,EAC7C,OAA+C;IAE9C,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAE/B,iDAAiD;IACjD,OAAO,CAAC,cAAc,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAC3E,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACnD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,GAAG;YACD,kEAAkE;YAClE,8DAA8D;YAC9D,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtB,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAM,CAAC;gBAChD,MAAM,CAAC,GAAG,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC;gBACrC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;gBAE3C,6DAA6D;gBAC7D,0DAA0D;gBAC1D,
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/store/decorators.ts"],"names":[],"mappings":"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"}
|
package/dist/store/reactive.d.ts
CHANGED
|
@@ -23,9 +23,11 @@ export type Updater<T> = T | ((prev: T) => T);
|
|
|
23
23
|
*/
|
|
24
24
|
export declare class Reactive<T> {
|
|
25
25
|
private _value;
|
|
26
|
-
private
|
|
26
|
+
private _subs;
|
|
27
27
|
private _key?;
|
|
28
28
|
private _storage?;
|
|
29
|
+
/** Pre-computed persist flag — avoids double property check on every set() */
|
|
30
|
+
private _persists;
|
|
29
31
|
/** Monotonic version counter — bumps on every set() and notify() */
|
|
30
32
|
private _version;
|
|
31
33
|
constructor(initial: T, persist?: PersistOptions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactive.d.ts","sourceRoot":"","sources":["../../src/store/reactive.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,WAAW,CAAC;AAGhE,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AACxD,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAE9C;;;;;;;;;;;GAWG;AACH,qBAAa,QAAQ,CAAC,CAAC;IACrB,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"reactive.d.ts","sourceRoot":"","sources":["../../src/store/reactive.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,WAAW,CAAC;AAGhE,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;AACxD,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAE9C;;;;;;;;;;;GAWG;AACH,qBAAa,QAAQ,CAAC,CAAC;IACrB,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,IAAI,CAAC,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAC,CAAiB;IAClC,8EAA8E;IAC9E,OAAO,CAAC,SAAS,CAAS;IAC1B,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAK;gBAET,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc;IAsBhD,IAAI,KAAK,IAAI,CAAC,CAIb;IAED,8EAA8E;IAC9E,IAAI,IAAI,CAAC;IAIT,+EAA+E;IAC/E,WAAW,IAAI,MAAM;IAIrB,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAc3B,0DAA0D;IAC1D,SAAS,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAQxC,wDAAwD;IACxD,KAAK,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAKpC;;;;OAIG;IACH,MAAM,IAAI,IAAI;IAQd,gDAAgD;IAChD,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI;IAOvB,6EAA6E;IAC7E,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;CAM3C;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,eAAe,CAC1B,CAAC,SAAS,YAAY,CACtB,SAAQ,QAAQ,CAAC,CAAC,EAAE,CAAC;gBACT,OAAO,GAAE,CAAC,EAAO,EAAE,OAAO,CAAC,EAAE,cAAc;IAIvD,+DAA+D;IAC/D,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,CAAC;IAM7C,2BAA2B;IAC3B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIxB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAYxC,kDAAkD;IAClD,KAAK,IAAI,IAAI;IAIb,yBAAyB;IACzB,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;CAGhC"}
|
package/dist/store/reactive.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Both support optional persistent storage via StorageAdapter.
|
|
8
8
|
*/
|
|
9
|
-
import {
|
|
9
|
+
import { __getActiveDeps } from "../trace";
|
|
10
10
|
/**
|
|
11
11
|
* Observable value container. Works with any data shape.
|
|
12
12
|
* Optionally backs to a StorageAdapter for auto-persistence.
|
|
@@ -21,9 +21,11 @@ import { isTracing, recordRead } from "../trace";
|
|
|
21
21
|
*/
|
|
22
22
|
export class Reactive {
|
|
23
23
|
_value;
|
|
24
|
-
|
|
24
|
+
_subs = [];
|
|
25
25
|
_key;
|
|
26
26
|
_storage;
|
|
27
|
+
/** Pre-computed persist flag — avoids double property check on every set() */
|
|
28
|
+
_persists = false;
|
|
27
29
|
/** Monotonic version counter — bumps on every set() and notify() */
|
|
28
30
|
_version = 0;
|
|
29
31
|
constructor(initial, persist) {
|
|
@@ -47,10 +49,12 @@ export class Reactive {
|
|
|
47
49
|
else {
|
|
48
50
|
this._value = initial;
|
|
49
51
|
}
|
|
52
|
+
this._persists = !!(this._key && this._storage);
|
|
50
53
|
}
|
|
51
54
|
get value() {
|
|
52
|
-
|
|
53
|
-
|
|
55
|
+
const deps = __getActiveDeps();
|
|
56
|
+
if (deps)
|
|
57
|
+
deps.add(this);
|
|
54
58
|
return this._value;
|
|
55
59
|
}
|
|
56
60
|
/** Read without triggering trace recording — used for snapshot comparisons */
|
|
@@ -68,16 +72,21 @@ export class Reactive {
|
|
|
68
72
|
if (this._value !== prev) {
|
|
69
73
|
this._version++;
|
|
70
74
|
// Persist
|
|
71
|
-
if (this.
|
|
75
|
+
if (this._persists) {
|
|
72
76
|
this._storage.set(this._key, JSON.stringify(this._value));
|
|
73
77
|
}
|
|
74
|
-
|
|
78
|
+
for (let i = 0; i < this._subs.length; i++)
|
|
79
|
+
this._subs[i](this._value, prev);
|
|
75
80
|
}
|
|
76
81
|
}
|
|
77
82
|
/** Subscribe to changes. Returns unsubscribe function. */
|
|
78
83
|
subscribe(fn) {
|
|
79
|
-
this.
|
|
80
|
-
return () =>
|
|
84
|
+
this._subs.push(fn);
|
|
85
|
+
return () => {
|
|
86
|
+
const idx = this._subs.indexOf(fn);
|
|
87
|
+
if (idx >= 0)
|
|
88
|
+
this._subs.splice(idx, 1);
|
|
89
|
+
};
|
|
81
90
|
}
|
|
82
91
|
/** Subscribe and immediately call with current value */
|
|
83
92
|
watch(fn) {
|
|
@@ -91,10 +100,11 @@ export class Reactive {
|
|
|
91
100
|
*/
|
|
92
101
|
notify() {
|
|
93
102
|
this._version++;
|
|
94
|
-
if (this.
|
|
103
|
+
if (this._persists) {
|
|
95
104
|
this._storage.set(this._key, JSON.stringify(this._value));
|
|
96
105
|
}
|
|
97
|
-
|
|
106
|
+
for (let i = 0; i < this._subs.length; i++)
|
|
107
|
+
this._subs[i](this._value, this._value);
|
|
98
108
|
}
|
|
99
109
|
/** Clear persisted data and reset to a value */
|
|
100
110
|
clear(resetTo) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactive.js","sourceRoot":"","sources":["../../src/store/reactive.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"reactive.js","sourceRoot":"","sources":["../../src/store/reactive.ts"],"names":[],"mappings":"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"}
|
package/dist/trace.d.ts
CHANGED
|
@@ -33,6 +33,8 @@ export interface TraceDeps {
|
|
|
33
33
|
/** Phase 2 — Reactive→DOM bindings for fast-patching */
|
|
34
34
|
bindings: Map<Reactive<any>, Binding[]>;
|
|
35
35
|
}
|
|
36
|
+
/** Getter for direct inline access by Reactive.value — avoids 2 function calls (isTracing+recordRead) reduced to 1 */
|
|
37
|
+
export declare function __getActiveDeps(): Set<Reactive<any>> | null;
|
|
36
38
|
/**
|
|
37
39
|
* Begin tracing. Called before update().
|
|
38
40
|
* All Reactive.value reads will be recorded.
|
package/dist/trace.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../src/trace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIjD,mEAAmE;AACnE,MAAM,WAAW,OAAO;IACtB,qDAAqD;IACrD,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,4BAA4B;IAC5B,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IACvB,kEAAkE;IAClE,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,iFAAiF;AACjF,MAAM,WAAW,SAAS;IACxB,uDAAuD;IACvD,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,0DAA0D;IAC1D,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IACrC,wDAAwD;IACxD,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;CACzC;
|
|
1
|
+
{"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../src/trace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIjD,mEAAmE;AACnE,MAAM,WAAW,OAAO;IACtB,qDAAqD;IACrD,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,4BAA4B;IAC5B,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;IACvB,kEAAkE;IAClE,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,iFAAiF;AACjF,MAAM,WAAW,SAAS;IACxB,uDAAuD;IACvD,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,0DAA0D;IAC1D,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IACrC,wDAAwD;IACxD,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;CACzC;AAUD,sHAAsH;AACtH,wBAAgB,eAAe,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAuB;AA2BnF;;;GAGG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAIjC;AAED;;;GAGG;AACH,wBAAgB,QAAQ,IAAI,SAAS,CAepC;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAIxD;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAKpC;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAUhD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAC7B,MAAM,EAAE,IAAI,GAAG,OAAO,EACtB,OAAO,EAAE,MAAM,IAAI,GAClB,IAAI,CAcN;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAM7D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAW7D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAwBpD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAIvD"}
|
package/dist/trace.js
CHANGED
|
@@ -20,35 +20,51 @@
|
|
|
20
20
|
* When nested tracing occurs, the parent set is pushed to `traceStack`.
|
|
21
21
|
*/
|
|
22
22
|
let activeDeps = null;
|
|
23
|
+
/** Getter for direct inline access by Reactive.value — avoids 2 function calls (isTracing+recordRead) reduced to 1 */
|
|
24
|
+
export function __getActiveDeps() { return activeDeps; }
|
|
23
25
|
/** Stack of dependency sets for nested tracing (e.g. inside a binding closure) */
|
|
24
26
|
let traceStack = [];
|
|
25
27
|
/** Active bindings being collected during a traced update() */
|
|
26
28
|
let activeBindings = null;
|
|
27
|
-
|
|
29
|
+
/** Monotonic generation counter for applyBindings dedup */
|
|
30
|
+
let _applyGen = 0;
|
|
31
|
+
// ── Pooled data structures for zero-alloc tracing ──
|
|
32
|
+
const _depsPool = [];
|
|
33
|
+
const _versionsPool = [];
|
|
34
|
+
const _bindingsPool = [];
|
|
35
|
+
function acquireSet() {
|
|
36
|
+
return _depsPool.pop() ?? new Set();
|
|
37
|
+
}
|
|
38
|
+
function acquireVersions() {
|
|
39
|
+
return _versionsPool.pop() ?? new Map();
|
|
40
|
+
}
|
|
41
|
+
function acquireBindings() {
|
|
42
|
+
return _bindingsPool.pop() ?? new Map();
|
|
43
|
+
}
|
|
28
44
|
/**
|
|
29
45
|
* Begin tracing. Called before update().
|
|
30
46
|
* All Reactive.value reads will be recorded.
|
|
31
47
|
*/
|
|
32
48
|
export function startTrace() {
|
|
33
|
-
activeDeps =
|
|
34
|
-
traceStack =
|
|
35
|
-
activeBindings =
|
|
49
|
+
activeDeps = acquireSet();
|
|
50
|
+
traceStack.length = 0;
|
|
51
|
+
activeBindings = acquireBindings();
|
|
36
52
|
}
|
|
37
53
|
/**
|
|
38
54
|
* End tracing and return the dependency set + version snapshots + bindings.
|
|
39
55
|
* Called after update() completes.
|
|
40
56
|
*/
|
|
41
57
|
export function endTrace() {
|
|
42
|
-
const deps = activeDeps ??
|
|
58
|
+
const deps = activeDeps ?? acquireSet();
|
|
43
59
|
activeDeps = null;
|
|
44
60
|
// Snapshot current versions for dirty checking
|
|
45
|
-
const versions =
|
|
61
|
+
const versions = acquireVersions();
|
|
46
62
|
for (const r of deps) {
|
|
47
63
|
versions.set(r, r.peekVersion());
|
|
48
64
|
}
|
|
49
|
-
const bindings = activeBindings ??
|
|
65
|
+
const bindings = activeBindings ?? acquireBindings();
|
|
50
66
|
activeBindings = null;
|
|
51
|
-
traceStack =
|
|
67
|
+
traceStack.length = 0;
|
|
52
68
|
return { deps, versions, bindings };
|
|
53
69
|
}
|
|
54
70
|
/**
|
|
@@ -74,20 +90,18 @@ export function startSubTrace() {
|
|
|
74
90
|
if (activeDeps) {
|
|
75
91
|
traceStack.push(activeDeps);
|
|
76
92
|
}
|
|
77
|
-
activeDeps =
|
|
93
|
+
activeDeps = acquireSet();
|
|
78
94
|
}
|
|
79
95
|
/**
|
|
80
96
|
* End a sub-trace and return the captured dependencies.
|
|
81
97
|
* Merges the captured deps back into the parent trace (so the component remains dirty).
|
|
82
98
|
*/
|
|
83
99
|
export function endSubTrace() {
|
|
84
|
-
const captured = activeDeps ??
|
|
100
|
+
const captured = activeDeps ?? acquireSet();
|
|
85
101
|
activeDeps = traceStack.pop() || null;
|
|
86
102
|
// Merge sub-trace deps into parent trace
|
|
87
103
|
if (activeDeps) {
|
|
88
|
-
|
|
89
|
-
activeDeps.add(r);
|
|
90
|
-
}
|
|
104
|
+
captured.forEach(r => activeDeps.add(r));
|
|
91
105
|
}
|
|
92
106
|
return captured;
|
|
93
107
|
}
|
|
@@ -100,14 +114,14 @@ export function addBinding(reactives, target, patcher) {
|
|
|
100
114
|
return;
|
|
101
115
|
const binding = { reactives, target, patcher };
|
|
102
116
|
// Register this binding for every reactive it depends on
|
|
103
|
-
|
|
117
|
+
reactives.forEach(r => {
|
|
104
118
|
let list = activeBindings.get(r);
|
|
105
119
|
if (!list) {
|
|
106
120
|
list = [];
|
|
107
121
|
activeBindings.set(r, list);
|
|
108
122
|
}
|
|
109
123
|
list.push(binding);
|
|
110
|
-
}
|
|
124
|
+
});
|
|
111
125
|
}
|
|
112
126
|
/**
|
|
113
127
|
* Check if any dependency in the trace has changed since the snapshot.
|
|
@@ -148,20 +162,26 @@ export function canFastPatch(trace) {
|
|
|
148
162
|
* Uses a Set to deduplicate patchers (one binding might depend on multiple changed reactives).
|
|
149
163
|
*/
|
|
150
164
|
export function applyBindings(trace) {
|
|
151
|
-
|
|
165
|
+
// Monotonic generation counter for per-call dedup (avoids Set allocation)
|
|
166
|
+
const gen = ++_applyGen;
|
|
167
|
+
const toRun = [];
|
|
152
168
|
for (const [r, ver] of trace.versions) {
|
|
153
169
|
if (r.peekVersion() !== ver) {
|
|
154
170
|
const bindings = trace.bindings.get(r);
|
|
155
171
|
if (bindings) {
|
|
156
|
-
for (
|
|
157
|
-
|
|
172
|
+
for (let i = 0; i < bindings.length; i++) {
|
|
173
|
+
const p = bindings[i].patcher;
|
|
174
|
+
if (p.__ran !== gen) {
|
|
175
|
+
p.__ran = gen;
|
|
176
|
+
toRun.push(p);
|
|
177
|
+
}
|
|
158
178
|
}
|
|
159
179
|
}
|
|
160
180
|
}
|
|
161
181
|
}
|
|
162
182
|
// Execute unique patchers
|
|
163
|
-
for (
|
|
164
|
-
|
|
183
|
+
for (let i = 0; i < toRun.length; i++) {
|
|
184
|
+
toRun[i]();
|
|
165
185
|
}
|
|
166
186
|
}
|
|
167
187
|
/**
|
package/dist/trace.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace.js","sourceRoot":"","sources":["../src/trace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA0BH,qCAAqC;AAErC;;;GAGG;AACH,IAAI,UAAU,GAA8B,IAAI,CAAC;AAEjD,kFAAkF;AAClF,IAAI,UAAU,GAAyB,EAAE,CAAC;AAE1C,+DAA+D;AAC/D,IAAI,cAAc,GAAyC,IAAI,CAAC;AAEhE,
|
|
1
|
+
{"version":3,"file":"trace.js","sourceRoot":"","sources":["../src/trace.ts"],"names":[],"mappings":"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"}
|