@solidjs/signals 2.0.0-rc.0 → 2.0.0-rc.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/README.md +1 -1
- package/dist/dev.js +4287 -2803
- package/dist/node.cjs +4563 -3756
- package/dist/prod/affects.js +16 -16
- package/dist/prod/boundaries.js +90 -90
- package/dist/prod/core/action.js +3 -3
- package/dist/prod/core/async.js +234 -178
- package/dist/prod/core/constants.js +39 -1
- package/dist/prod/core/core.js +362 -243
- package/dist/prod/core/effect.js +56 -56
- package/dist/prod/core/external.js +4 -4
- package/dist/prod/core/graph.js +65 -54
- package/dist/prod/core/heap.js +47 -39
- package/dist/prod/core/invariants.js +3 -2
- package/dist/prod/core/lanes.js +41 -34
- package/dist/prod/core/optimistic.js +78 -58
- package/dist/prod/core/owner.js +101 -100
- package/dist/prod/core/scheduler.js +249 -192
- package/dist/prod/core/verdict.js +185 -78
- package/dist/prod/index.js +7 -7
- package/dist/prod/map.js +108 -106
- package/dist/prod/signals.js +20 -1
- package/dist/prod/store/index.js +36 -0
- package/dist/prod/store/next/optimistic.js +385 -0
- package/dist/prod/store/next/projection.js +172 -0
- package/dist/prod/store/next/reconcile.js +331 -0
- package/dist/prod/store/next/store.js +1499 -0
- package/dist/prod/store/next/target.js +20 -0
- package/dist/prod/store/store.js +126 -882
- package/dist/prod/store/utils.js +59 -186
- package/dist/types/core/attribution-hooks.d.ts +52 -0
- package/dist/types/core/attribution.d.ts +186 -0
- package/dist/types/core/constants.d.ts +26 -0
- package/dist/types/core/core.d.ts +16 -1
- package/dist/types/core/dev.d.ts +20 -3
- package/dist/types/core/graph.d.ts +1 -0
- package/dist/types/core/lanes.d.ts +4 -16
- package/dist/types/core/scheduler.d.ts +12 -2
- package/dist/types/core/types.d.ts +85 -41
- package/dist/types/signals.d.ts +19 -0
- package/dist/types/store/index.d.ts +15 -5
- package/dist/types/store/next/optimistic.d.ts +20 -0
- package/dist/types/store/next/projection.d.ts +8 -0
- package/dist/types/store/next/reconcile.d.ts +3 -0
- package/dist/types/store/next/store.d.ts +77 -0
- package/dist/types/store/next/target.d.ts +117 -0
- package/dist/types/store/store.d.ts +26 -101
- package/dist/types/store/utils.d.ts +0 -40
- package/dist/types-cjs/core/attribution-hooks.d.cts +52 -0
- package/dist/types-cjs/core/attribution.d.cts +186 -0
- package/dist/types-cjs/core/constants.d.cts +26 -0
- package/dist/types-cjs/core/core.d.cts +16 -1
- package/dist/types-cjs/core/dev.d.cts +20 -3
- package/dist/types-cjs/core/graph.d.cts +1 -0
- package/dist/types-cjs/core/lanes.d.cts +4 -16
- package/dist/types-cjs/core/scheduler.d.cts +12 -2
- package/dist/types-cjs/core/types.d.cts +85 -41
- package/dist/types-cjs/signals.d.cts +19 -0
- package/dist/types-cjs/store/index.d.cts +15 -5
- package/dist/types-cjs/store/next/optimistic.d.cts +20 -0
- package/dist/types-cjs/store/next/projection.d.cts +8 -0
- package/dist/types-cjs/store/next/reconcile.d.cts +3 -0
- package/dist/types-cjs/store/next/store.d.cts +77 -0
- package/dist/types-cjs/store/next/target.d.cts +117 -0
- package/dist/types-cjs/store/store.d.cts +26 -101
- package/dist/types-cjs/store/utils.d.cts +0 -40
- package/package.json +2 -1
- package/dist/prod/store/optimistic.js +0 -217
- package/dist/prod/store/projection.js +0 -231
- package/dist/prod/store/reconcile.js +0 -707
|
@@ -30,6 +30,15 @@ const REACTIVE_MANUAL_WRITE = 1 << 10;
|
|
|
30
30
|
* pending window does not read as pending (question-scoped pending model).
|
|
31
31
|
*/ const REACTIVE_REASK = 1 << 11;
|
|
32
32
|
|
|
33
|
+
/**
|
|
34
|
+
* A dependency write landed while this subscriber was mid-recompute — a
|
|
35
|
+
* nested pull committed beneath one of its reads (#3037). The heap refuses
|
|
36
|
+
* RECOMPUTING nodes, so recompute's tail consumes this latch and reschedules:
|
|
37
|
+
* values the pass read before the nested commit are stale. Only set for
|
|
38
|
+
* links validated this pass (gen-current): a write to an untouched link is
|
|
39
|
+
* either re-read later in the pass (fresh) or trimmed with it (not a dep).
|
|
40
|
+
*/ const REACTIVE_MISSED_WAKE = 1 << 12;
|
|
41
|
+
|
|
33
42
|
// Static configuration bits packed into Owner/Computed/Signal _config.
|
|
34
43
|
const CONFIG_OWNED_WRITE = 1 << 0;
|
|
35
44
|
|
|
@@ -45,6 +54,35 @@ const CONFIG_AUTO_DISPOSE = 1 << 5;
|
|
|
45
54
|
|
|
46
55
|
const CONFIG_SYNC = 1 << 6;
|
|
47
56
|
|
|
57
|
+
// Presence bits (stage-3 hot-path monomorphism, DESIGN-PATCH-CHANNEL §11b):
|
|
58
|
+
// optional per-node slots (_overrideValue, _pendingSignal/_latestValueComputed,
|
|
59
|
+
// _snapshotValue, _optimisticLane) are NOT part of every node's hidden class —
|
|
60
|
+
// reading a missing property defeats V8's inline caches on the hottest write/
|
|
61
|
+
// notify loops. These bits live on the always-present `_config` so hot paths
|
|
62
|
+
// pay one monomorphic masked read and only touch the optional field when its
|
|
63
|
+
// installer flagged it. Bits are STICKY ("may be set") — the guarded field
|
|
64
|
+
// read remains authoritative.
|
|
65
|
+
const CONFIG_OPTIMISTIC = 1 << 7;
|
|
66
|
+
|
|
67
|
+
const CONFIG_HAS_COMPANIONS = 1 << 8;
|
|
68
|
+
|
|
69
|
+
const CONFIG_HAS_SNAPSHOT = 1 << 9;
|
|
70
|
+
|
|
71
|
+
const CONFIG_HAS_LANE = 1 << 10;
|
|
72
|
+
|
|
73
|
+
/** Set on a FIREWALL computed when any of its child signals creates an
|
|
74
|
+
* isPending()/latest() companion. Gates the post-recompute child-companion
|
|
75
|
+
* walk (#3038): a store computed's `_child` chain holds one node per
|
|
76
|
+
* materialized leaf, so walking it unconditionally makes every update cost
|
|
77
|
+
* O(all leaves ever read). Sticky — set at companion creation, never
|
|
78
|
+
* cleared; sync-only apps never set it and never pay the walk. */ const CONFIG_CHILD_COMPANIONS = 1 << 11;
|
|
79
|
+
|
|
80
|
+
/** Set on a computed when its first firewall child signal is installed
|
|
81
|
+
* (projection machinery). Gates markNode's firewall-children walk with one
|
|
82
|
+
* masked read of the always-present _config — the walk's old `_child` read
|
|
83
|
+
* moved into the cold extension (§12), and an unconditional `_x` deref per
|
|
84
|
+
* marked node measurably taxed the propagation hot path (diamond -22%). */ const CONFIG_FW_CHILDREN = 1 << 12;
|
|
85
|
+
|
|
48
86
|
const STATUS_PENDING = 1 << 0;
|
|
49
87
|
|
|
50
88
|
const STATUS_ERROR = 1 << 1;
|
|
@@ -89,4 +127,4 @@ const defaultContext = {};
|
|
|
89
127
|
* @internal
|
|
90
128
|
*/ const $REFRESH = Symbol("refresh");
|
|
91
129
|
|
|
92
|
-
export { $REFRESH, CONFIG_AUTO_DISPOSE, CONFIG_CHILDREN_FORBIDDEN, CONFIG_IN_SNAPSHOT_SCOPE, CONFIG_NO_SNAPSHOT, CONFIG_OWNED_WRITE, CONFIG_SYNC, CONFIG_TRANSPARENT, EFFECT_RENDER, EFFECT_TRACKED, EFFECT_USER, NOT_PENDING, NO_SNAPSHOT, OVERRIDE_UNDEFINED, REACTIVE_CHECK, REACTIVE_DIRTY, REACTIVE_DISPOSED, REACTIVE_IN_HEAP, REACTIVE_IN_HEAP_HEIGHT, REACTIVE_LAZY, REACTIVE_MANUAL_WRITE, REACTIVE_NONE, REACTIVE_OPTIMISTIC_DIRTY, REACTIVE_REASK, REACTIVE_RECOMPUTING_DEPS, REACTIVE_SNAPSHOT_STALE, REACTIVE_ZOMBIE, STATUS_ERROR, STATUS_PENDING, STATUS_UNINITIALIZED, STORE_SNAPSHOT_PROPS, SUPPORTS_PROXY, defaultContext, unwrapOverride };
|
|
130
|
+
export { $REFRESH, CONFIG_AUTO_DISPOSE, CONFIG_CHILDREN_FORBIDDEN, CONFIG_CHILD_COMPANIONS, CONFIG_FW_CHILDREN, CONFIG_HAS_COMPANIONS, CONFIG_HAS_LANE, CONFIG_HAS_SNAPSHOT, CONFIG_IN_SNAPSHOT_SCOPE, CONFIG_NO_SNAPSHOT, CONFIG_OPTIMISTIC, CONFIG_OWNED_WRITE, CONFIG_SYNC, CONFIG_TRANSPARENT, EFFECT_RENDER, EFFECT_TRACKED, EFFECT_USER, NOT_PENDING, NO_SNAPSHOT, OVERRIDE_UNDEFINED, REACTIVE_CHECK, REACTIVE_DIRTY, REACTIVE_DISPOSED, REACTIVE_IN_HEAP, REACTIVE_IN_HEAP_HEIGHT, REACTIVE_LAZY, REACTIVE_MANUAL_WRITE, REACTIVE_MISSED_WAKE, REACTIVE_NONE, REACTIVE_OPTIMISTIC_DIRTY, REACTIVE_REASK, REACTIVE_RECOMPUTING_DEPS, REACTIVE_SNAPSHOT_STALE, REACTIVE_ZOMBIE, STATUS_ERROR, STATUS_PENDING, STATUS_UNINITIALIZED, STORE_SNAPSHOT_PROPS, SUPPORTS_PROXY, defaultContext, unwrapOverride };
|