@reckona/mreact-compat 0.0.66 → 0.0.68
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/class-component.js.map +1 -1
- package/dist/context.js.map +1 -1
- package/dist/devtools.js.map +1 -1
- package/dist/dom-children.js.map +1 -1
- package/dist/dom-props.js.map +1 -1
- package/dist/element.js.map +1 -1
- package/dist/event-listeners.js.map +1 -1
- package/dist/event-priority.js.map +1 -1
- package/dist/event-replay.js.map +1 -1
- package/dist/event-types.js.map +1 -1
- package/dist/events.js.map +1 -1
- package/dist/fiber-child.js.map +1 -1
- package/dist/fiber-commit.js.map +1 -1
- package/dist/fiber-flags.js.map +1 -1
- package/dist/fiber-host.js.map +1 -1
- package/dist/fiber-lanes.js.map +1 -1
- package/dist/fiber-reconciler.js.map +1 -1
- package/dist/fiber-scheduler.js.map +1 -1
- package/dist/fiber-work-loop.js.map +1 -1
- package/dist/fiber.js.map +1 -1
- package/dist/flight-decoder.js.map +1 -1
- package/dist/flight-element-builder.js.map +1 -1
- package/dist/flight-parser.js.map +1 -1
- package/dist/flight-protocol.js.map +1 -1
- package/dist/flight-types.js.map +1 -1
- package/dist/flight.js.map +1 -1
- package/dist/hooks.js.map +1 -1
- package/dist/hydration.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal.js.map +1 -1
- package/dist/jsx-dev-runtime.js.map +1 -1
- package/dist/jsx-runtime.js.map +1 -1
- package/dist/prop-comparison.js.map +1 -1
- package/dist/reconcile-types.js.map +1 -1
- package/dist/reconciler.js.map +1 -1
- package/dist/render.js.map +1 -1
- package/dist/root.js.map +1 -1
- package/dist/scheduler.js.map +1 -1
- package/dist/suspense.js.map +1 -1
- package/dist/thenable.js.map +1 -1
- package/dist/url-safety.js.map +1 -1
- package/package.json +4 -3
- package/src/class-component.ts +386 -0
- package/src/context.ts +140 -0
- package/src/devtools.ts +1275 -0
- package/src/dom-children.ts +34 -0
- package/src/dom-props.ts +408 -0
- package/src/element.ts +317 -0
- package/src/event-listeners.ts +27 -0
- package/src/event-priority.ts +1 -0
- package/src/event-replay.ts +154 -0
- package/src/event-types.ts +18 -0
- package/src/events.ts +384 -0
- package/src/fiber-child.ts +364 -0
- package/src/fiber-commit.ts +83 -0
- package/src/fiber-flags.ts +21 -0
- package/src/fiber-host.ts +1564 -0
- package/src/fiber-lanes.ts +99 -0
- package/src/fiber-reconciler.ts +639 -0
- package/src/fiber-scheduler.ts +435 -0
- package/src/fiber-work-loop.ts +224 -0
- package/src/fiber.ts +148 -0
- package/src/flight-decoder.ts +205 -0
- package/src/flight-element-builder.ts +110 -0
- package/src/flight-parser.ts +698 -0
- package/src/flight-protocol.ts +71 -0
- package/src/flight-types.ts +148 -0
- package/src/flight.ts +162 -0
- package/src/hooks.ts +1940 -0
- package/src/hydration.ts +314 -0
- package/src/index.ts +95 -0
- package/src/internal.ts +7 -0
- package/src/jsx-dev-runtime.ts +40 -0
- package/src/jsx-runtime.ts +119 -0
- package/src/prop-comparison.ts +50 -0
- package/src/reconcile-types.ts +26 -0
- package/src/reconciler.ts +692 -0
- package/src/render.ts +29 -0
- package/src/root.ts +493 -0
- package/src/scheduler.ts +157 -0
- package/src/suspense.ts +317 -0
- package/src/thenable.ts +7 -0
- package/src/url-safety.ts +7 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
export type Lane = number;
|
|
2
|
+
export type Lanes = number;
|
|
3
|
+
|
|
4
|
+
export const NoLane = 0;
|
|
5
|
+
export const NoLanes = 0;
|
|
6
|
+
export const SyncLane = 1 << 0;
|
|
7
|
+
export const DiscreteEventLane = 1 << 1;
|
|
8
|
+
export const HydrationLane = 1 << 2;
|
|
9
|
+
export const ContinuousEventLane = 1 << 3;
|
|
10
|
+
export const TransitionLane = 1 << 4;
|
|
11
|
+
export const IdleLane = 1 << 5;
|
|
12
|
+
|
|
13
|
+
interface LaneRoot {
|
|
14
|
+
pendingLanes: Lanes;
|
|
15
|
+
suspendedLanes: Lanes;
|
|
16
|
+
pingedLanes: Lanes;
|
|
17
|
+
expiredLanes: Lanes;
|
|
18
|
+
entangledLanes: Lanes;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export function mergeLanes(left: Lanes, right: Lanes): Lanes {
|
|
22
|
+
return left | right;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export function includesLane(lanes: Lanes, lane: Lane): boolean {
|
|
26
|
+
return (lanes & lane) !== NoLane;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function removeLanes(lanes: Lanes, lanesToRemove: Lanes): Lanes {
|
|
30
|
+
return lanes & ~lanesToRemove;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export function getHighestPriorityLane(lanes: Lanes): Lane {
|
|
34
|
+
return lanes & -lanes;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function getNextLanes(root: LaneRoot): Lanes {
|
|
38
|
+
const pending = root.pendingLanes;
|
|
39
|
+
|
|
40
|
+
if (pending === NoLanes) {
|
|
41
|
+
return NoLanes;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const expired = pending & root.expiredLanes;
|
|
45
|
+
if (expired !== NoLanes) {
|
|
46
|
+
return includeEntangledLanes(root, getHighestPriorityLane(expired));
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const pinged = pending & root.pingedLanes;
|
|
50
|
+
if (pinged !== NoLanes) {
|
|
51
|
+
return includeEntangledLanes(root, getHighestPriorityLane(pinged));
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const unblocked = pending & ~root.suspendedLanes;
|
|
55
|
+
if (unblocked !== NoLanes) {
|
|
56
|
+
return includeEntangledLanes(root, getHighestPriorityLane(unblocked));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return NoLanes;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export function markRootUpdated(root: LaneRoot, lanes: Lanes): void {
|
|
63
|
+
root.pendingLanes |= lanes;
|
|
64
|
+
root.suspendedLanes &= ~lanes;
|
|
65
|
+
root.pingedLanes &= ~lanes;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export function markRootSuspended(root: LaneRoot, lanes: Lanes): void {
|
|
69
|
+
root.suspendedLanes |= lanes;
|
|
70
|
+
root.pingedLanes &= ~lanes;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export function markRootPinged(root: LaneRoot, lanes: Lanes): void {
|
|
74
|
+
root.pingedLanes |= lanes & root.suspendedLanes;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export function markRootExpired(root: LaneRoot, lanes: Lanes): void {
|
|
78
|
+
root.expiredLanes |= lanes & root.pendingLanes;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export function markRootEntangled(root: LaneRoot, lanes: Lanes): void {
|
|
82
|
+
root.entangledLanes |= lanes;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export function markRootFinished(root: LaneRoot, lanes: Lanes): void {
|
|
86
|
+
root.pendingLanes &= ~lanes;
|
|
87
|
+
root.suspendedLanes &= ~lanes;
|
|
88
|
+
root.pingedLanes &= ~lanes;
|
|
89
|
+
root.expiredLanes &= ~lanes;
|
|
90
|
+
root.entangledLanes &= ~lanes;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
function includeEntangledLanes(root: LaneRoot, lanes: Lanes): Lanes {
|
|
94
|
+
if ((lanes & root.entangledLanes) === NoLanes) {
|
|
95
|
+
return lanes;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
return lanes | (root.entangledLanes & root.pendingLanes);
|
|
99
|
+
}
|