@lynx-js/react 0.109.2 → 0.110.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.
Files changed (131) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/package.json +1 -1
  3. package/refresh/.turbo/turbo-build.log +1 -1
  4. package/runtime/lib/backgroundSnapshot.d.ts +2 -1
  5. package/runtime/lib/backgroundSnapshot.js +65 -42
  6. package/runtime/lib/backgroundSnapshot.js.map +1 -1
  7. package/runtime/lib/hooks/react.js +3 -3
  8. package/runtime/lib/hooks/react.js.map +1 -1
  9. package/runtime/lib/lifecycle/destroy.js +1 -0
  10. package/runtime/lib/lifecycle/destroy.js.map +1 -1
  11. package/runtime/lib/lifecycle/event/delayEvents.js +3 -0
  12. package/runtime/lib/lifecycle/event/delayEvents.js.map +1 -1
  13. package/runtime/lib/lifecycle/event/delayLifecycleEvents.d.ts +3 -2
  14. package/runtime/lib/lifecycle/event/delayLifecycleEvents.js +1 -12
  15. package/runtime/lib/lifecycle/event/delayLifecycleEvents.js.map +1 -1
  16. package/runtime/lib/lifecycle/event/jsReady.d.ts +1 -1
  17. package/runtime/lib/lifecycle/event/jsReady.js +3 -2
  18. package/runtime/lib/lifecycle/event/jsReady.js.map +1 -1
  19. package/runtime/lib/lifecycle/patch/commit.d.ts +0 -2
  20. package/runtime/lib/lifecycle/patch/commit.js +8 -36
  21. package/runtime/lib/lifecycle/patch/commit.js.map +1 -1
  22. package/runtime/lib/lifecycle/patch/error.d.ts +8 -0
  23. package/runtime/lib/lifecycle/patch/error.js +47 -0
  24. package/runtime/lib/lifecycle/patch/error.js.map +1 -0
  25. package/runtime/lib/lifecycle/patch/isMainThreadHydrationFinished.js +3 -0
  26. package/runtime/lib/lifecycle/patch/isMainThreadHydrationFinished.js.map +1 -1
  27. package/runtime/lib/lifecycle/patch/snapshotPatch.d.ts +2 -2
  28. package/runtime/lib/lifecycle/patch/snapshotPatch.js.map +1 -1
  29. package/runtime/lib/lifecycle/patch/snapshotPatchApply.js +10 -10
  30. package/runtime/lib/lifecycle/patch/snapshotPatchApply.js.map +1 -1
  31. package/runtime/lib/lifecycle/patch/updateMainThread.d.ts +0 -1
  32. package/runtime/lib/lifecycle/patch/updateMainThread.js +6 -13
  33. package/runtime/lib/lifecycle/patch/updateMainThread.js.map +1 -1
  34. package/runtime/lib/lifecycle/ref/delay.d.ts +31 -0
  35. package/runtime/lib/lifecycle/ref/delay.js +80 -0
  36. package/runtime/lib/lifecycle/ref/delay.js.map +1 -0
  37. package/runtime/lib/lifecycle/reload.d.ts +1 -1
  38. package/runtime/lib/lifecycle/reload.js +7 -4
  39. package/runtime/lib/lifecycle/reload.js.map +1 -1
  40. package/runtime/lib/lifecycle/render.js +3 -2
  41. package/runtime/lib/lifecycle/render.js.map +1 -1
  42. package/runtime/lib/lifecycleConstant.d.ts +10 -7
  43. package/runtime/lib/lifecycleConstant.js +8 -8
  44. package/runtime/lib/lifecycleConstant.js.map +1 -1
  45. package/runtime/lib/list.d.ts +1 -1
  46. package/runtime/lib/list.js +9 -7
  47. package/runtime/lib/list.js.map +1 -1
  48. package/runtime/lib/lynx/calledByNative.js +8 -5
  49. package/runtime/lib/lynx/calledByNative.js.map +1 -1
  50. package/runtime/lib/lynx/component.js +7 -0
  51. package/runtime/lib/lynx/component.js.map +1 -1
  52. package/runtime/lib/lynx/dynamic-js.d.ts +5 -1
  53. package/runtime/lib/lynx/dynamic-js.js +1 -0
  54. package/runtime/lib/lynx/dynamic-js.js.map +1 -1
  55. package/runtime/lib/lynx/env.d.ts +1 -1
  56. package/runtime/lib/lynx/env.js +13 -13
  57. package/runtime/lib/lynx/env.js.map +1 -1
  58. package/runtime/lib/lynx/lazy-bundle.js +7 -5
  59. package/runtime/lib/lynx/lazy-bundle.js.map +1 -1
  60. package/runtime/lib/lynx/performance.js +1 -1
  61. package/runtime/lib/lynx/performance.js.map +1 -1
  62. package/runtime/lib/lynx/runWithForce.js +3 -0
  63. package/runtime/lib/lynx/runWithForce.js.map +1 -1
  64. package/runtime/lib/lynx/tt.js +12 -33
  65. package/runtime/lib/lynx/tt.js.map +1 -1
  66. package/runtime/lib/lynx-api.d.ts +1 -1
  67. package/runtime/lib/lynx.js +5 -6
  68. package/runtime/lib/lynx.js.map +1 -1
  69. package/runtime/lib/snapshot/ref.d.ts +14 -9
  70. package/runtime/lib/snapshot/ref.js +64 -73
  71. package/runtime/lib/snapshot/ref.js.map +1 -1
  72. package/runtime/lib/snapshot/spread.js +9 -8
  73. package/runtime/lib/snapshot/spread.js.map +1 -1
  74. package/runtime/lib/snapshot/workletRef.d.ts +3 -3
  75. package/runtime/lib/snapshot/workletRef.js +27 -8
  76. package/runtime/lib/snapshot/workletRef.js.map +1 -1
  77. package/runtime/lib/snapshot.d.ts +4 -4
  78. package/runtime/lib/snapshot.js +28 -13
  79. package/runtime/lib/snapshot.js.map +1 -1
  80. package/runtime/lib/snapshotInstanceHydrationMap.d.ts +9 -0
  81. package/runtime/lib/snapshotInstanceHydrationMap.js +16 -0
  82. package/runtime/lib/snapshotInstanceHydrationMap.js.map +1 -0
  83. package/runtime/lib/worklet/workletRef.js +1 -2
  84. package/runtime/lib/worklet/workletRef.js.map +1 -1
  85. package/runtime/src/backgroundSnapshot.ts +74 -47
  86. package/runtime/src/hooks/react.ts +3 -3
  87. package/runtime/src/lifecycle/destroy.ts +1 -0
  88. package/runtime/src/lifecycle/event/delayEvents.ts +3 -0
  89. package/runtime/src/lifecycle/event/delayLifecycleEvents.ts +7 -13
  90. package/runtime/src/lifecycle/event/jsReady.ts +4 -3
  91. package/runtime/src/lifecycle/patch/commit.ts +10 -41
  92. package/runtime/src/lifecycle/patch/error.ts +61 -0
  93. package/runtime/src/lifecycle/patch/isMainThreadHydrationFinished.ts +3 -0
  94. package/runtime/src/lifecycle/patch/snapshotPatch.ts +2 -2
  95. package/runtime/src/lifecycle/patch/snapshotPatchApply.ts +28 -28
  96. package/runtime/src/lifecycle/patch/updateMainThread.ts +7 -16
  97. package/runtime/src/lifecycle/ref/delay.ts +99 -0
  98. package/runtime/src/lifecycle/reload.ts +9 -6
  99. package/runtime/src/lifecycle/render.ts +3 -2
  100. package/runtime/src/lifecycleConstant.ts +11 -7
  101. package/runtime/src/list.ts +9 -7
  102. package/runtime/src/lynx/calledByNative.ts +14 -9
  103. package/runtime/src/lynx/component.ts +9 -0
  104. package/runtime/src/lynx/dynamic-js.ts +5 -1
  105. package/runtime/src/lynx/env.ts +17 -17
  106. package/runtime/src/lynx/lazy-bundle.ts +22 -14
  107. package/runtime/src/lynx/performance.ts +1 -1
  108. package/runtime/src/lynx/runWithForce.ts +9 -5
  109. package/runtime/src/lynx/tt.ts +19 -37
  110. package/runtime/src/lynx-api.ts +1 -1
  111. package/runtime/src/lynx.ts +6 -6
  112. package/runtime/src/snapshot/ref.ts +77 -87
  113. package/runtime/src/snapshot/spread.ts +8 -8
  114. package/runtime/src/snapshot/workletRef.ts +35 -9
  115. package/runtime/src/snapshot.ts +39 -20
  116. package/runtime/src/snapshotInstanceHydrationMap.ts +17 -0
  117. package/runtime/src/worklet/workletRef.ts +1 -2
  118. package/testing-library/dist/env/vitest.js +5 -3
  119. package/testing-library/dist/pure.js +4 -3
  120. package/transform/dist/wasm.cjs +1 -1
  121. package/worklet-runtime/dist/dev.js +1 -4
  122. package/worklet-runtime/dist/main.js +0 -3
  123. package/worklet-runtime/lib/bindings/observers.d.ts +14 -1
  124. package/worklet-runtime/lib/bindings/observers.js +7 -7
  125. package/worklet-runtime/lib/bindings/observers.js.map +1 -1
  126. package/worklet-runtime/lib/hydrate.js +0 -5
  127. package/worklet-runtime/lib/hydrate.js.map +1 -1
  128. package/runtime/lib/lifecycle/delayUnmount.d.ts +0 -8
  129. package/runtime/lib/lifecycle/delayUnmount.js +0 -65
  130. package/runtime/lib/lifecycle/delayUnmount.js.map +0 -1
  131. package/runtime/src/lifecycle/delayUnmount.ts +0 -77
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * A map to store hydration states between snapshot instances.
3
+ * K->V: main thread snapshotInstance IDs -> background snapshotInstance IDs.
4
+ *
5
+ * The map is used by the ref system to translate between snapshot instance IDs when
6
+ * operations need to cross the thread boundary during the commit phase.
7
+ */
8
+ declare const hydrationMap: Map<number, number>;
9
+ export {};
@@ -0,0 +1,16 @@
1
+ // Copyright 2024 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
4
+ /**
5
+ * A map to store hydration states between snapshot instances.
6
+ * K->V: main thread snapshotInstance IDs -> background snapshotInstance IDs.
7
+ *
8
+ * The map is used by the ref system to translate between snapshot instance IDs when
9
+ * operations need to cross the thread boundary during the commit phase.
10
+ */
11
+ const hydrationMap = new Map();
12
+ /**
13
+ * @internal
14
+ */
15
+ export { hydrationMap };
16
+ //# sourceMappingURL=snapshotInstanceHydrationMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshotInstanceHydrationMap.js","sourceRoot":"","sources":["../src/snapshotInstanceHydrationMap.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D;;;;;;GAMG;AACH,MAAM,YAAY,GAAwB,IAAI,GAAG,EAAE,CAAC;AAEpD;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -43,10 +43,9 @@ class WorkletRef {
43
43
  throw new Error('MainThreadRef: value of a MainThreadRef cannot be accessed in the background thread.');
44
44
  }
45
45
  if (__LEPUS__ && __DEV__) {
46
- /* v8 ignore next */
46
+ /* v8 ignore next 3 */
47
47
  throw new Error('MainThreadRef: value of a MainThreadRef cannot be accessed outside of main thread script.');
48
48
  }
49
- /* v8 ignore next */
50
49
  return undefined;
51
50
  }
52
51
  set current(_) {
@@ -1 +1 @@
1
- {"version":3,"file":"workletRef.js","sourceRoot":"","sources":["../../src/worklet/workletRef.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAExE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,gDAAgD;AAChD,IAAI,QAAQ,GAAG,CAAC,CAAC;AACjB,IAAI,QAAQ,GAAG,CAAC,CAAC;AAEjB,MAAM,UAAU,+BAA+B;IAC7C,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,MAAe,UAAU;IACvB;;OAEG;IACO,KAAK,CAAS;IACxB;;OAEG;IACO,UAAU,CAAgB;IACpC;;OAEG;IACO,KAAK,CAAS;IACxB;;OAEG;IACO,kBAAkB,CAAU;IAEtC;;OAEG;IACH,YAAsB,SAAY,EAAE,IAAY;QAC9C,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,GAAG,EAAE,QAAQ,CAAC;YACxB,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,GAAG,EAAE,QAAQ,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,IAAI,OAAO;QACT,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,sFAAsF,CAAC,CAAC;QAC1G,CAAC;QACD,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;YACzB,oBAAoB;YACpB,MAAM,IAAI,KAAK,CAAC,2FAA2F,CAAC,CAAC;QAC/G,CAAC;QACD,oBAAoB;QACpB,OAAO,SAAc,CAAC;IACxB,CAAC;IAED,IAAI,OAAO,CAAC,CAAI;QACd,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,sFAAsF,CAAC,CAAC;QAC1G,CAAC;QACD,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,2FAA2F,CAAC,CAAC;QAC/G,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC;IACJ,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,aAAiB,SAAQ,UAAa;IACjD,YAAY,SAAY;QACtB,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAChC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;YACtB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,iCAAiC,EAAE,CAAC,GAAG,EAAE;gBACrF,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,aAAa,CAAC;oBACpC,IAAI,EAAE,aAAa,CAAC,iBAAiB;oBACrC,IAAI,EAAE;wBACJ,EAAE;qBACH;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF;AA2HD,MAAM,UAAU,gBAAgB,CAAI,SAAa;IAC/C,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,OAAO,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC"}
1
+ {"version":3,"file":"workletRef.js","sourceRoot":"","sources":["../../src/worklet/workletRef.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAExE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,gDAAgD;AAChD,IAAI,QAAQ,GAAG,CAAC,CAAC;AACjB,IAAI,QAAQ,GAAG,CAAC,CAAC;AAEjB,MAAM,UAAU,+BAA+B;IAC7C,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,MAAe,UAAU;IACvB;;OAEG;IACO,KAAK,CAAS;IACxB;;OAEG;IACO,UAAU,CAAgB;IACpC;;OAEG;IACO,KAAK,CAAS;IACxB;;OAEG;IACO,kBAAkB,CAAU;IAEtC;;OAEG;IACH,YAAsB,SAAY,EAAE,IAAY;QAC9C,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,GAAG,EAAE,QAAQ,CAAC;YACxB,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,GAAG,EAAE,QAAQ,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,IAAI,OAAO;QACT,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,sFAAsF,CAAC,CAAC;QAC1G,CAAC;QACD,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;YACzB,sBAAsB;YACtB,MAAM,IAAI,KAAK,CAAC,2FAA2F,CAAC,CAAC;QAC/G,CAAC;QACD,OAAO,SAAc,CAAC;IACxB,CAAC;IAED,IAAI,OAAO,CAAC,CAAI;QACd,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,sFAAsF,CAAC,CAAC;QAC1G,CAAC;QACD,IAAI,SAAS,IAAI,OAAO,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,2FAA2F,CAAC,CAAC;QAC/G,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC;IACJ,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,aAAiB,SAAQ,UAAa;IACjD,YAAY,SAAY;QACtB,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAChC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;YACtB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,iCAAiC,EAAE,CAAC,GAAG,EAAE;gBACrF,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,aAAa,CAAC;oBACpC,IAAI,EAAE,aAAa,CAAC,iBAAiB;oBACrC,IAAI,EAAE;wBACJ,EAAE;qBACH;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF;AA2HD,MAAM,UAAU,gBAAgB,CAAI,SAAa;IAC/C,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,OAAO,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC"}
@@ -22,20 +22,23 @@ import {
22
22
  takeGlobalSnapshotPatch,
23
23
  } from './lifecycle/patch/snapshotPatch.js';
24
24
  import { globalPipelineOptions } from './lynx/performance.js';
25
- import type { SerializedSnapshotInstance } from './snapshot.js';
25
+ import { clearQueuedRefs, queueRefAttrUpdate } from './snapshot/ref.js';
26
+ import type { Ref } from './snapshot/ref.js';
27
+ import { transformSpread } from './snapshot/spread.js';
28
+ import type { SerializedSnapshotInstance, Snapshot } from './snapshot.js';
26
29
  import {
27
30
  DynamicPartType,
28
31
  backgroundSnapshotInstanceManager,
29
32
  snapshotManager,
30
33
  traverseSnapshotInstance,
31
34
  } from './snapshot.js';
32
- import { markRefToRemove } from './snapshot/ref.js';
33
- import { transformSpread } from './snapshot/spread.js';
35
+ import { hydrationMap } from './snapshotInstanceHydrationMap.js';
34
36
  import { isDirectOrDeepEqual } from './utils.js';
35
37
  import { onPostWorkletCtx } from './worklet/ctx.js';
36
38
 
37
39
  export class BackgroundSnapshotInstance {
38
40
  constructor(public type: string) {
41
+ this.__snapshot_def = snapshotManager.values.get(type)!;
39
42
  let id;
40
43
  id = this.__id = backgroundSnapshotInstanceManager.nextId += 1;
41
44
  backgroundSnapshotInstanceManager.values.set(id, this);
@@ -45,6 +48,7 @@ export class BackgroundSnapshotInstance {
45
48
 
46
49
  __id: number;
47
50
  __values: any[] | undefined;
51
+ __snapshot_def: Snapshot;
48
52
 
49
53
  private __parent: BackgroundSnapshotInstance | null = null;
50
54
  private __firstChild: BackgroundSnapshotInstance | null = null;
@@ -160,6 +164,20 @@ export class BackgroundSnapshotInstance {
160
164
 
161
165
  traverseSnapshotInstance(node, v => {
162
166
  v.__parent = null;
167
+ v.__previousSibling = null;
168
+ v.__nextSibling = null;
169
+ if (v.__values) {
170
+ v.__snapshot_def.refAndSpreadIndexes?.forEach((i) => {
171
+ const value = v.__values![i] as unknown;
172
+ if (value && (typeof value === 'object' || typeof value === 'function')) {
173
+ if ('__spread' in value && 'ref' in value) {
174
+ queueRefAttrUpdate(value.ref as Ref, null, v.__id, i);
175
+ } else if ('__ref' in value) {
176
+ queueRefAttrUpdate(value as Ref, null, v.__id, i);
177
+ }
178
+ }
179
+ });
180
+ }
163
181
  globalBackgroundSnapshotInstancesToRemove.push(v.__id);
164
182
  });
165
183
  }
@@ -188,7 +206,7 @@ export class BackgroundSnapshotInstance {
188
206
  for (let index = 0; index < value.length; index++) {
189
207
  const { needUpdate, valueToCommit } = this.setAttributeImpl(value[index], oldValues[index], index);
190
208
  if (needUpdate) {
191
- __globalSnapshotPatch?.push(
209
+ __globalSnapshotPatch!.push(
192
210
  SnapshotOperation.SetAttribute,
193
211
  this.__id,
194
212
  index,
@@ -203,12 +221,23 @@ export class BackgroundSnapshotInstance {
203
221
  const { valueToCommit } = this.setAttributeImpl(value[index], null, index);
204
222
  patch[index] = valueToCommit;
205
223
  }
206
- __globalSnapshotPatch?.push(
224
+ __globalSnapshotPatch!.push(
207
225
  SnapshotOperation.SetAttributes,
208
226
  this.__id,
209
227
  patch,
210
228
  );
211
229
  }
230
+ } else {
231
+ this.__snapshot_def.refAndSpreadIndexes?.forEach((index) => {
232
+ const v = (value as unknown[])[index];
233
+ if (v && (typeof v === 'object' || typeof v === 'function')) {
234
+ if ('__spread' in v && 'ref' in v) {
235
+ queueRefAttrUpdate(null, v.ref as Ref, this.__id, index);
236
+ } else if ('__ref' in v) {
237
+ queueRefAttrUpdate(null, v as Ref, this.__id, index);
238
+ }
239
+ }
240
+ });
212
241
  }
213
242
  this.__values = value;
214
243
  if (__PROFILE__) {
@@ -233,65 +262,64 @@ export class BackgroundSnapshotInstance {
233
262
  }
234
263
  }
235
264
 
236
- private setAttributeImpl(newValue: any, oldValue: any, index: number): {
265
+ private setAttributeImpl(newValue: unknown, oldValue: unknown, index: number): {
237
266
  needUpdate: boolean;
238
- valueToCommit: any;
267
+ valueToCommit: unknown;
239
268
  } {
240
269
  if (!newValue) {
241
- if (oldValue && oldValue.__ref) {
242
- markRefToRemove(`${this.__id}:${index}:`, oldValue);
270
+ // `oldValue` can't be a spread.
271
+ if (oldValue && typeof oldValue === 'object' && '__ref' in oldValue) {
272
+ queueRefAttrUpdate(oldValue as Ref, null, this.__id, index);
243
273
  }
244
274
  return { needUpdate: oldValue !== newValue, valueToCommit: newValue };
245
275
  }
246
276
 
247
277
  const newType = typeof newValue;
248
278
  if (newType === 'object') {
249
- if (newValue.__spread) {
250
- const oldSpread = oldValue ? oldValue.__spread : oldValue;
251
- const newSpread = transformSpread(this, index, newValue);
279
+ const newValueObj = newValue as Record<string, unknown>;
280
+ if ('__spread' in newValueObj) {
281
+ const oldSpread = (oldValue as { __spread?: Record<string, unknown> } | undefined)?.__spread;
282
+ const newSpread = transformSpread(this, index, newValueObj);
252
283
  const needUpdate = !isDirectOrDeepEqual(oldSpread, newSpread);
253
284
  // use __spread to cache the transform result for next diff
254
- newValue.__spread = newSpread;
285
+ newValueObj['__spread'] = newSpread;
286
+ queueRefAttrUpdate(
287
+ oldSpread && ((oldValue as { ref?: Ref }).ref),
288
+ newValueObj['ref'] as Ref,
289
+ this.__id,
290
+ index,
291
+ );
255
292
  if (needUpdate) {
256
- if (oldSpread && oldSpread.ref) {
257
- markRefToRemove(`${this.__id}:${index}:ref`, oldValue.ref);
258
- }
259
- for (let key in newSpread) {
293
+ for (const key in newSpread) {
260
294
  const newSpreadValue = newSpread[key];
261
295
  if (!newSpreadValue) {
262
296
  continue;
263
297
  }
264
- if ((newSpreadValue as any)._wkltId) {
298
+ if ((newSpreadValue as { _wkltId?: string })._wkltId) {
265
299
  newSpread[key] = onPostWorkletCtx(newSpreadValue as Worklet);
266
- } else if ((newSpreadValue as any).__isGesture) {
300
+ } else if ((newSpreadValue as { __isGesture?: boolean }).__isGesture) {
267
301
  processGestureBackground(newSpreadValue as GestureKind);
268
- } else if (key == '__lynx_timing_flag' && oldSpread?.[key] != newSpreadValue) {
269
- if (globalPipelineOptions) {
270
- globalPipelineOptions.needTimestamps = true;
271
- }
302
+ } else if (key == '__lynx_timing_flag' && oldSpread?.[key] != newSpreadValue && globalPipelineOptions) {
303
+ globalPipelineOptions.needTimestamps = true;
272
304
  }
273
305
  }
274
306
  }
275
307
  return { needUpdate, valueToCommit: newSpread };
276
308
  }
277
- if (newValue.__ref) {
278
- // force update to update ref value
279
- // TODO: ref: optimize this. The ref update maybe can be done on the background thread to reduce updating.
280
- // The old ref must have a place to be stored because it needs to be cleared when the main thread returns.
281
- markRefToRemove(`${this.__id}:${index}:`, oldValue);
282
- // update ref. On the main thread, the ref id will be replaced with value's sign when updating.
283
- return { needUpdate: true, valueToCommit: newValue.__ref };
309
+ if ('__ref' in newValueObj) {
310
+ queueRefAttrUpdate(oldValue as Ref, newValueObj as Ref, this.__id, index);
311
+ return { needUpdate: false, valueToCommit: 1 };
284
312
  }
285
- if (newValue._wkltId) {
286
- return { needUpdate: true, valueToCommit: onPostWorkletCtx(newValue) };
313
+ if ('_wkltId' in newValueObj) {
314
+ return { needUpdate: true, valueToCommit: onPostWorkletCtx(newValueObj as Worklet) };
287
315
  }
288
- if (newValue.__isGesture) {
289
- processGestureBackground(newValue);
316
+ if ('__isGesture' in newValueObj) {
317
+ processGestureBackground(newValueObj as unknown as GestureKind);
290
318
  return { needUpdate: true, valueToCommit: newValue };
291
319
  }
292
- if (newValue.__ltf) {
320
+ if ('__ltf' in newValueObj) {
293
321
  // __lynx_timing_flag
294
- if (globalPipelineOptions && oldValue?.__ltf != newValue.__ltf) {
322
+ if (globalPipelineOptions && (oldValue as { __ltf?: unknown } | undefined)?.__ltf != newValueObj['__ltf']) {
295
323
  globalPipelineOptions.needTimestamps = true;
296
324
  return { needUpdate: true, valueToCommit: newValue };
297
325
  }
@@ -300,9 +328,9 @@ export class BackgroundSnapshotInstance {
300
328
  return { needUpdate: !isDirectOrDeepEqual(oldValue, newValue), valueToCommit: newValue };
301
329
  }
302
330
  if (newType === 'function') {
303
- if (newValue.__ref) {
304
- markRefToRemove(`${this.__id}:${index}:`, oldValue);
305
- return { needUpdate: true, valueToCommit: newValue.__ref };
331
+ if ((newValue as { __ref?: unknown }).__ref) {
332
+ queueRefAttrUpdate(oldValue as Ref, newValue as Ref, this.__id, index);
333
+ return { needUpdate: false, valueToCommit: 1 };
306
334
  }
307
335
  /* event */
308
336
  return { needUpdate: !oldValue, valueToCommit: 1 };
@@ -335,6 +363,7 @@ export function hydrate(
335
363
  before: SerializedSnapshotInstance,
336
364
  after: BackgroundSnapshotInstance,
337
365
  ) => {
366
+ hydrationMap.set(after.__id, before.id);
338
367
  backgroundSnapshotInstanceManager.updateId(after.__id, before.id);
339
368
  after.__values?.forEach((value, index) => {
340
369
  const old = before.values![index];
@@ -344,7 +373,7 @@ export function hydrate(
344
373
  // `value.__spread` my contain event ids using snapshot ids before hydration. Remove it.
345
374
  delete value.__spread;
346
375
  value = transformSpread(after, index, value);
347
- for (let key in value) {
376
+ for (const key in value) {
348
377
  if (value[key] && value[key]._wkltId) {
349
378
  onPostWorkletCtx(value[key]);
350
379
  } else if (value[key] && value[key].__isGesture) {
@@ -353,12 +382,8 @@ export function hydrate(
353
382
  }
354
383
  after.__values![index]!.__spread = value;
355
384
  } else if (value.__ref) {
356
- if (old) {
357
- // skip patch
358
- value = old;
359
- } else {
360
- value = value.__ref;
361
- }
385
+ // skip patch
386
+ value = old;
362
387
  } else if (typeof value === 'function') {
363
388
  value = `${after.__id}:${index}:`;
364
389
  }
@@ -379,7 +404,7 @@ export function hydrate(
379
404
  }
380
405
  });
381
406
 
382
- const { slot } = snapshotManager.values.get(after.type)!;
407
+ const { slot } = after.__snapshot_def;
383
408
 
384
409
  const beforeChildNodes = before.children || [];
385
410
  const afterChildNodes = after.childNodes;
@@ -455,5 +480,7 @@ export function hydrate(
455
480
  };
456
481
 
457
482
  helper(before, after);
483
+ // Hydration should not trigger ref updates. They were incorrectly triggered when using `setAttribute` to add values to the patch list.
484
+ clearQueuedRefs();
458
485
  return takeGlobalSnapshotPatch()!;
459
486
  }
@@ -9,7 +9,7 @@ import {
9
9
  useId,
10
10
  useImperativeHandle,
11
11
  useMemo,
12
- useLayoutEffect as usePreactLayoutEffect,
12
+ useEffect as usePreactEffect,
13
13
  useReducer,
14
14
  useRef,
15
15
  useState,
@@ -29,7 +29,7 @@ import type { DependencyList, EffectCallback } from 'react';
29
29
  * @deprecated `useLayoutEffect` in the background thread cannot offer the precise timing for reading layout information and synchronously re-render, which is different from React.
30
30
  */
31
31
  function useLayoutEffect(effect: EffectCallback, deps?: DependencyList): void {
32
- return usePreactLayoutEffect(effect, deps);
32
+ return usePreactEffect(effect, deps);
33
33
  }
34
34
 
35
35
  /**
@@ -42,7 +42,7 @@ function useLayoutEffect(effect: EffectCallback, deps?: DependencyList): void {
42
42
  * @public
43
43
  */
44
44
  function useEffect(effect: EffectCallback, deps?: DependencyList): void {
45
- return usePreactLayoutEffect(effect, deps);
45
+ return usePreactEffect(effect, deps);
46
46
  }
47
47
 
48
48
  export {
@@ -13,6 +13,7 @@ function destroyBackground(): void {
13
13
  console.profile('destroyBackground');
14
14
  }
15
15
 
16
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
16
17
  render(null, __root as any);
17
18
 
18
19
  globalCommitTaskMap.forEach(task => {
@@ -1,3 +1,6 @@
1
+ // Copyright 2025 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
1
4
  let delayedEvents: [handlerName: string, data: unknown][] | undefined;
2
5
 
3
6
  function delayedPublishEvent(handlerName: string, data: unknown): void {
@@ -1,18 +1,12 @@
1
- import { LifecycleConstant } from '../../lifecycleConstant.js';
1
+ // Copyright 2025 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
4
+ import type { LifecycleConstant } from '../../lifecycleConstant.js';
2
5
 
3
- const delayedLifecycleEvents: [type: string, data: any][] = [];
6
+ const delayedLifecycleEvents: [type: LifecycleConstant, data: unknown][] = [];
4
7
 
5
- function delayLifecycleEvent(type: string, data: any): void {
6
- // We need to ensure that firstScreen events are executed before other events.
7
- // This is because firstScreen events are used to initialize the dom tree,
8
- // and other events depend on the dom tree being fully constructed.
9
- // There might be some edge cases where ctx cannot be found in `ref` lifecycle event,
10
- // and they should be ignored safely.
11
- if (type === LifecycleConstant.firstScreen) {
12
- delayedLifecycleEvents.unshift([type, data]);
13
- } else {
14
- delayedLifecycleEvents.push([type, data]);
15
- }
8
+ function delayLifecycleEvent(type: LifecycleConstant, data: unknown): void {
9
+ delayedLifecycleEvents.push([type, data]);
16
10
  }
17
11
 
18
12
  /**
@@ -1,9 +1,11 @@
1
+ // Copyright 2025 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
1
4
  import { LifecycleConstant } from '../../lifecycleConstant.js';
2
5
  import { __root } from '../../root.js';
3
- import { takeGlobalRefPatchMap } from '../../snapshot/ref.js';
4
6
 
5
7
  let isJSReady: boolean;
6
- let jsReadyEventIdSwap: Record<number, number>;
8
+ let jsReadyEventIdSwap: Record<string | number, number>;
7
9
 
8
10
  function jsReady(): void {
9
11
  isJSReady = true;
@@ -11,7 +13,6 @@ function jsReady(): void {
11
13
  LifecycleConstant.firstScreen, /* FIRST_SCREEN */
12
14
  {
13
15
  root: JSON.stringify(__root),
14
- refPatch: JSON.stringify(takeGlobalRefPatchMap()),
15
16
  jsReadyEventIdSwap,
16
17
  },
17
18
  ]);
@@ -21,7 +21,6 @@
21
21
 
22
22
  import type { VNode } from 'preact';
23
23
  import { options } from 'preact';
24
- import type { Component } from 'preact/compat';
25
24
 
26
25
  import { LifecycleConstant } from '../../lifecycleConstant.js';
27
26
  import {
@@ -31,19 +30,18 @@ import {
31
30
  markTimingLegacy,
32
31
  setPipeline,
33
32
  } from '../../lynx/performance.js';
34
- import { CATCH_ERROR, COMMIT, RENDER_CALLBACKS, VNODE } from '../../renderToOpcodes/constants.js';
33
+ import { COMMIT } from '../../renderToOpcodes/constants.js';
34
+ import { applyQueuedRefs } from '../../snapshot/ref.js';
35
35
  import { backgroundSnapshotInstanceManager } from '../../snapshot.js';
36
- import { updateBackgroundRefs } from '../../snapshot/ref.js';
37
36
  import { isEmptyObject } from '../../utils.js';
38
37
  import { takeWorkletRefInitValuePatch } from '../../worklet/workletRefPool.js';
39
- import { runDelayedUnmounts, takeDelayedUnmounts } from '../delayUnmount.js';
40
38
  import { getReloadVersion } from '../pass.js';
41
39
  import type { SnapshotPatch } from './snapshotPatch.js';
42
40
  import { takeGlobalSnapshotPatch } from './snapshotPatch.js';
43
41
 
44
42
  let globalFlushOptions: FlushOptions = {};
45
43
 
46
- const globalCommitTaskMap: Map<number, () => void> = /*@__PURE__*/ new Map();
44
+ const globalCommitTaskMap: Map<number, () => void> = /*@__PURE__*/ new Map<number, () => void>();
47
45
  let nextCommitTaskId = 1;
48
46
 
49
47
  let globalBackgroundSnapshotInstancesToRemove: number[] = [];
@@ -52,6 +50,7 @@ let globalBackgroundSnapshotInstancesToRemove: number[] = [];
52
50
  * A single patch operation.
53
51
  */
54
52
  interface Patch {
53
+ // TODO: ref: do we need `id`?
55
54
  id: number;
56
55
  snapshotPatch?: SnapshotPatch;
57
56
  workletRefInitValuePatch?: [id: number, value: unknown][];
@@ -78,6 +77,7 @@ interface PatchOptions {
78
77
  * Replaces Preact's default commit hook with our custom implementation
79
78
  */
80
79
  function replaceCommitHook(): void {
80
+ // This is actually not used since Preact use `hooks._commit` for callbacks of `useLayoutEffect`.
81
81
  const originalPreactCommit = options[COMMIT];
82
82
  const commit = async (vnode: VNode, commitQueue: any[]) => {
83
83
  // Skip commit phase for MT runtime
@@ -91,20 +91,6 @@ function replaceCommitHook(): void {
91
91
  markTimingLegacy(PerformanceTimingKeys.updateDiffVdomEnd);
92
92
  markTiming(PerformanceTimingKeys.diffVdomEnd);
93
93
 
94
- // The callback functions to be called after components are rendered.
95
- const renderCallbacks = commitQueue.map((component: Component<any>) => {
96
- const ret = {
97
- component,
98
- [RENDER_CALLBACKS]: component[RENDER_CALLBACKS],
99
- [VNODE]: component[VNODE],
100
- };
101
- component[RENDER_CALLBACKS] = [];
102
- return ret;
103
- });
104
- commitQueue.length = 0;
105
-
106
- const delayedUnmounts = takeDelayedUnmounts();
107
-
108
94
  const backgroundSnapshotInstancesToRemove = globalBackgroundSnapshotInstancesToRemove;
109
95
  globalBackgroundSnapshotInstancesToRemove = [];
110
96
 
@@ -112,18 +98,6 @@ function replaceCommitHook(): void {
112
98
 
113
99
  // Register the commit task
114
100
  globalCommitTaskMap.set(commitTaskId, () => {
115
- updateBackgroundRefs(commitTaskId);
116
- runDelayedUnmounts(delayedUnmounts);
117
- originalPreactCommit?.(vnode, renderCallbacks);
118
- renderCallbacks.some(wrapper => {
119
- try {
120
- wrapper[RENDER_CALLBACKS].some((cb: (this: Component) => void) => {
121
- cb.call(wrapper.component);
122
- });
123
- } catch (e) {
124
- options[CATCH_ERROR](e, wrapper[VNODE]!);
125
- }
126
- });
127
101
  if (backgroundSnapshotInstancesToRemove.length) {
128
102
  setTimeout(() => {
129
103
  backgroundSnapshotInstancesToRemove.forEach(id => {
@@ -140,6 +114,8 @@ function replaceCommitHook(): void {
140
114
  globalFlushOptions = {};
141
115
  if (!snapshotPatch && workletRefInitValuePatch.length === 0) {
142
116
  // before hydration, skip patch
117
+ applyQueuedRefs();
118
+ originalPreactCommit?.(vnode, commitQueue);
143
119
  return;
144
120
  }
145
121
 
@@ -169,6 +145,9 @@ function replaceCommitHook(): void {
169
145
  globalCommitTaskMap.delete(commitTaskId);
170
146
  }
171
147
  });
148
+
149
+ applyQueuedRefs();
150
+ originalPreactCommit?.(vnode, commitQueue);
172
151
  };
173
152
  options[COMMIT] = commit as ((...args: Parameters<typeof commit>) => void);
174
153
  }
@@ -225,14 +204,6 @@ function clearCommitTaskId(): void {
225
204
  nextCommitTaskId = 1;
226
205
  }
227
206
 
228
- function replaceRequestAnimationFrame(): void {
229
- // to make afterPaintEffects run faster
230
- const resolvedPromise = Promise.resolve();
231
- options.requestAnimationFrame = (cb: () => void) => {
232
- void resolvedPromise.then(cb);
233
- };
234
- }
235
-
236
207
  /**
237
208
  * @internal
238
209
  */
@@ -243,9 +214,7 @@ export {
243
214
  globalBackgroundSnapshotInstancesToRemove,
244
215
  globalCommitTaskMap,
245
216
  globalFlushOptions,
246
- nextCommitTaskId,
247
217
  replaceCommitHook,
248
- replaceRequestAnimationFrame,
249
218
  type PatchList,
250
219
  type PatchOptions,
251
220
  };
@@ -0,0 +1,61 @@
1
+ // Copyright 2025 The Lynx Authors. All rights reserved.
2
+ // Licensed under the Apache License Version 2.0 that can be found in the
3
+ // LICENSE file in the root directory of this source tree.
4
+
5
+ import { backgroundSnapshotInstanceManager, snapshotManager } from '../../snapshot.js';
6
+
7
+ export const ctxNotFoundType = 'Lynx.Error.CtxNotFound';
8
+
9
+ const errorMsg = 'snapshotPatchApply failed: ctx not found';
10
+
11
+ let ctxNotFoundEventListener: ((e: RuntimeProxy.Event) => void) | null = null;
12
+
13
+ export interface CtxNotFoundData {
14
+ id: number;
15
+ }
16
+
17
+ export function sendCtxNotFoundEventToBackground(id: number): void {
18
+ /* v8 ignore next 3 */
19
+ if (!lynx.getJSContext) {
20
+ throw new Error(errorMsg);
21
+ }
22
+ lynx.getJSContext().dispatchEvent({
23
+ type: ctxNotFoundType,
24
+ data: {
25
+ id,
26
+ } as CtxNotFoundData,
27
+ });
28
+ }
29
+
30
+ export function reportCtxNotFound(data: CtxNotFoundData): void {
31
+ const id = data.id;
32
+ const instance = backgroundSnapshotInstanceManager.values.get(id);
33
+
34
+ let snapshotType = 'null';
35
+
36
+ if (instance && instance.__snapshot_def) {
37
+ for (const [snapshotId, snapshot] of snapshotManager.values.entries()) {
38
+ if (snapshot === instance.__snapshot_def) {
39
+ snapshotType = snapshotId;
40
+ break;
41
+ }
42
+ }
43
+ }
44
+
45
+ lynx.reportError(new Error(`${errorMsg}, snapshot type: '${snapshotType}'`));
46
+ }
47
+
48
+ export function addCtxNotFoundEventListener(): void {
49
+ ctxNotFoundEventListener = (e) => {
50
+ reportCtxNotFound(e.data as CtxNotFoundData);
51
+ };
52
+ lynx.getCoreContext?.().addEventListener(ctxNotFoundType, ctxNotFoundEventListener);
53
+ }
54
+
55
+ export function removeCtxNotFoundEventListener(): void {
56
+ const coreContext = lynx.getCoreContext?.();
57
+ if (coreContext && ctxNotFoundEventListener) {
58
+ coreContext.removeEventListener(ctxNotFoundType, ctxNotFoundEventListener);
59
+ ctxNotFoundEventListener = null;
60
+ }
61
+ }