@lynx-js/react 0.112.6 → 0.114.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 (95) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/package.json +3 -3
  3. package/refresh/.turbo/turbo-build.log +2 -2
  4. package/runtime/lazy/internal.js +2 -0
  5. package/runtime/lib/internal.d.ts +4 -3
  6. package/runtime/lib/internal.js +4 -3
  7. package/runtime/lib/internal.js.map +1 -1
  8. package/runtime/lib/lifecycle/isRendering.d.ts +3 -0
  9. package/runtime/lib/lifecycle/isRendering.js +25 -0
  10. package/runtime/lib/lifecycle/isRendering.js.map +1 -0
  11. package/runtime/lib/lifecycle/patch/commit.d.ts +2 -1
  12. package/runtime/lib/lifecycle/patch/commit.js +9 -6
  13. package/runtime/lib/lifecycle/patch/commit.js.map +1 -1
  14. package/runtime/lib/lifecycle/patch/updateMainThread.js +17 -4
  15. package/runtime/lib/lifecycle/patch/updateMainThread.js.map +1 -1
  16. package/runtime/lib/lifecycle/ref/delay.d.ts +9 -4
  17. package/runtime/lib/lifecycle/ref/delay.js +23 -16
  18. package/runtime/lib/lifecycle/ref/delay.js.map +1 -1
  19. package/runtime/lib/lifecycle/reload.js +0 -2
  20. package/runtime/lib/lifecycle/reload.js.map +1 -1
  21. package/runtime/lib/lifecycleConstant.d.ts +2 -1
  22. package/runtime/lib/lifecycleConstant.js +1 -0
  23. package/runtime/lib/lifecycleConstant.js.map +1 -1
  24. package/runtime/lib/list.js +7 -2
  25. package/runtime/lib/list.js.map +1 -1
  26. package/runtime/lib/lynx/tt.js +6 -0
  27. package/runtime/lib/lynx/tt.js.map +1 -1
  28. package/runtime/lib/lynx-api.d.ts +3 -3
  29. package/runtime/lib/lynx-api.js +3 -3
  30. package/runtime/lib/lynx-api.js.map +1 -1
  31. package/runtime/lib/lynx.js +4 -7
  32. package/runtime/lib/lynx.js.map +1 -1
  33. package/runtime/lib/snapshot/spread.js +3 -3
  34. package/runtime/lib/snapshot/spread.js.map +1 -1
  35. package/runtime/lib/utils.d.ts +1 -0
  36. package/runtime/lib/utils.js +24 -0
  37. package/runtime/lib/utils.js.map +1 -1
  38. package/runtime/lib/worklet/call/delayedRunOnMainThreadData.d.ts +3 -0
  39. package/runtime/lib/worklet/call/delayedRunOnMainThreadData.js +10 -0
  40. package/runtime/lib/worklet/call/delayedRunOnMainThreadData.js.map +1 -0
  41. package/runtime/lib/worklet/{execMap.js → call/execMap.js} +1 -1
  42. package/runtime/lib/worklet/call/execMap.js.map +1 -0
  43. package/runtime/lib/worklet/{functionCall.js → call/functionCall.js} +2 -2
  44. package/runtime/lib/worklet/call/functionCall.js.map +1 -0
  45. package/runtime/lib/worklet/{runOnBackground.js → call/runOnBackground.js} +2 -2
  46. package/runtime/lib/worklet/call/runOnBackground.js.map +1 -0
  47. package/runtime/lib/worklet/{runOnMainThread.js → call/runOnMainThread.js} +16 -7
  48. package/runtime/lib/worklet/call/runOnMainThread.js.map +1 -0
  49. package/runtime/lib/worklet/call/transformToWorklet.js.map +1 -0
  50. package/runtime/lib/worklet/ctx.js +1 -1
  51. package/runtime/lib/worklet/ctx.js.map +1 -1
  52. package/runtime/lib/worklet/destroy.js +4 -2
  53. package/runtime/lib/worklet/destroy.js.map +1 -1
  54. package/runtime/lib/worklet/ref/updateInitValue.d.ts +2 -0
  55. package/runtime/lib/worklet/ref/updateInitValue.js +24 -0
  56. package/runtime/lib/worklet/ref/updateInitValue.js.map +1 -0
  57. package/runtime/lib/worklet/{workletRef.js → ref/workletRef.js} +1 -1
  58. package/runtime/lib/worklet/ref/workletRef.js.map +1 -0
  59. package/runtime/lib/worklet/ref/workletRefPool.d.ts +1 -0
  60. package/runtime/lib/worklet/{workletRefPool.js → ref/workletRefPool.js} +1 -3
  61. package/runtime/lib/worklet/ref/workletRefPool.js.map +1 -0
  62. package/testing-library/dist/env/vitest.js +2 -1
  63. package/testing-library/dist/index.d.ts +25 -2
  64. package/testing-library/dist/pure.js +21 -9
  65. package/testing-library/dist/vitest-global-setup.js +19 -0
  66. package/testing-library/types/entry.d.ts +1 -0
  67. package/transform/dist/wasm.cjs +1 -1
  68. package/worklet-runtime/dist/dev.js +18 -10
  69. package/worklet-runtime/dist/main.js +1 -1
  70. package/worklet-runtime/lib/bindings/bindings.d.ts +1 -1
  71. package/worklet-runtime/lib/bindings/bindings.js +9 -1
  72. package/worklet-runtime/lib/bindings/bindings.js.map +1 -1
  73. package/worklet-runtime/lib/global.d.ts +1 -0
  74. package/worklet-runtime/lib/listeners.js +2 -8
  75. package/worklet-runtime/lib/listeners.js.map +1 -1
  76. package/worklet-runtime/lib/runOnMainThread.d.ts +2 -0
  77. package/worklet-runtime/lib/runOnMainThread.js +21 -0
  78. package/worklet-runtime/lib/runOnMainThread.js.map +1 -0
  79. package/worklet-runtime/lib/workletRuntime.js +2 -0
  80. package/worklet-runtime/lib/workletRuntime.js.map +1 -1
  81. package/runtime/lib/worklet/execMap.js.map +0 -1
  82. package/runtime/lib/worklet/functionCall.js.map +0 -1
  83. package/runtime/lib/worklet/runOnBackground.js.map +0 -1
  84. package/runtime/lib/worklet/runOnMainThread.js.map +0 -1
  85. package/runtime/lib/worklet/transformToWorklet.js.map +0 -1
  86. package/runtime/lib/worklet/workletRef.js.map +0 -1
  87. package/runtime/lib/worklet/workletRefPool.d.ts +0 -1
  88. package/runtime/lib/worklet/workletRefPool.js.map +0 -1
  89. /package/runtime/lib/worklet/{execMap.d.ts → call/execMap.d.ts} +0 -0
  90. /package/runtime/lib/worklet/{functionCall.d.ts → call/functionCall.d.ts} +0 -0
  91. /package/runtime/lib/worklet/{runOnBackground.d.ts → call/runOnBackground.d.ts} +0 -0
  92. /package/runtime/lib/worklet/{runOnMainThread.d.ts → call/runOnMainThread.d.ts} +0 -0
  93. /package/runtime/lib/worklet/{transformToWorklet.d.ts → call/transformToWorklet.d.ts} +0 -0
  94. /package/runtime/lib/worklet/{transformToWorklet.js → call/transformToWorklet.js} +0 -0
  95. /package/runtime/lib/worklet/{workletRef.d.ts → ref/workletRef.d.ts} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,45 @@
1
1
  # @lynx-js/react
2
2
 
3
+ ## 0.114.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Partially fix the "cannot read property 'update' of undefined" error. ([#1771](https://github.com/lynx-family/lynx-stack/pull/1771))
8
+
9
+ This error happens when rendering a JSX expression in a [background-only](https://lynxjs.org/react/thinking-in-reactlynx.html) context.
10
+
11
+ See [lynx-family/lynx-stack#894](https://github.com/lynx-family/lynx-stack/issues/894) for more details.
12
+
13
+ ### Patch Changes
14
+
15
+ - Reduce extra snapshot when children are pure text ([#1562](https://github.com/lynx-family/lynx-stack/pull/1562))
16
+
17
+ - feat: Support `SelectorQuery` `animation` APIs ([#1768](https://github.com/lynx-family/lynx-stack/pull/1768))
18
+
19
+ - Fix spread props inside list-item caused redundant snapshot patch ([#1760](https://github.com/lynx-family/lynx-stack/pull/1760))
20
+
21
+ - fix: `ref is not initialized` error on template reload ([#1757](https://github.com/lynx-family/lynx-stack/pull/1757))
22
+
23
+ ## 0.113.0
24
+
25
+ ### Minor Changes
26
+
27
+ - fix: Delay execution of `runOnMainThread()` during initial render ([#1667](https://github.com/lynx-family/lynx-stack/pull/1667))
28
+
29
+ When called during the initial render, `runOnMainThread()` would execute before the `main-thread:ref` was hydrated, causing it to be incorrectly set to null.
30
+
31
+ This change delays the function's execution to ensure the ref is available and correctly assigned.
32
+
33
+ ### Patch Changes
34
+
35
+ - Fix "TypeError: cannot read property '0' of undefined" in deferred list-item scenarios. ([#1692](https://github.com/lynx-family/lynx-stack/pull/1692))
36
+
37
+ Deferred `componentAtIndex` causes nodes that quickly appear/disappear to be enqueued without `__elements`. Update `signMap` before `__FlushElementTree` to resolve the issue.
38
+
39
+ - Keep the same `<page/>` element when calling `rerender` in testing library. ([#1656](https://github.com/lynx-family/lynx-stack/pull/1656))
40
+
41
+ - Bump `swc_core` to `39.0.3`. ([#1721](https://github.com/lynx-family/lynx-stack/pull/1721))
42
+
3
43
  ## 0.112.6
4
44
 
5
45
  ### Patch Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lynx-js/react",
3
- "version": "0.112.6",
3
+ "version": "0.114.0",
4
4
  "description": "ReactLynx is a framework for developing Lynx applications with familiar React.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -175,8 +175,8 @@
175
175
  },
176
176
  "devDependencies": {
177
177
  "@lynx-js/types": "3.4.11",
178
- "@microsoft/api-extractor": "7.52.11",
179
- "@types/react": "^18.3.23"
178
+ "@microsoft/api-extractor": "7.52.13",
179
+ "@types/react": "^18.3.24"
180
180
  },
181
181
  "peerDependencies": {
182
182
  "@lynx-js/types": "*",
@@ -2,10 +2,10 @@
2
2
  > @lynx-js/react-refresh@0.1.0 build /home/runner/work/lynx-stack/lynx-stack/packages/react/refresh
3
3
  > rslib build
4
4
 
5
- Rslib v0.12.4
5
+ Rslib v0.13.3
6
6
 
7
7
  info build started...
8
- ready built in 0.18 s
8
+ ready built in 0.20 s
9
9
 
10
10
  File (esm) Size 
11
11
  dist/index.js 11.1 kB
@@ -5,6 +5,7 @@
5
5
  import { sExportsReactInternal, target } from './target.js';
6
6
 
7
7
  export const {
8
+ BackgroundSnapshotInstance,
8
9
  Component,
9
10
  __ComponentIsPolyfill,
10
11
  __DynamicPartChildren,
@@ -21,6 +22,7 @@ export const {
21
22
  loadLazyBundle,
22
23
  loadWorkletRuntime,
23
24
  options,
25
+ process,
24
26
  registerWorkletOnBackground,
25
27
  snapshotCreateList,
26
28
  snapshotManager,
@@ -1,10 +1,11 @@
1
1
  import './lynx.js';
2
+ import { BackgroundSnapshotInstance } from './backgroundSnapshot.js';
2
3
  import { __root } from './root.js';
3
4
  import { DynamicPartType } from './snapshot/dynamicPartType.js';
4
5
  import { snapshotCreateList } from './snapshot/list.js';
5
6
  import { SnapshotInstance, __page, __pageId, createSnapshot, snapshotManager } from './snapshot.js';
6
7
  export { __page, __pageId, __root };
7
- export { SnapshotInstance, snapshotCreateList, createSnapshot, snapshotManager };
8
+ export { BackgroundSnapshotInstance, SnapshotInstance, snapshotCreateList, createSnapshot, snapshotManager };
8
9
  export declare const __DynamicPartSlot: DynamicPartType;
9
10
  export declare const __DynamicPartMultiChildren: DynamicPartType;
10
11
  export declare const __DynamicPartChildren: DynamicPartType;
@@ -17,12 +18,12 @@ export { updateWorkletEvent } from './snapshot/workletEvent.js';
17
18
  export { updateWorkletRef } from './snapshot/workletRef.js';
18
19
  export { updateGesture } from './snapshot/gesture.js';
19
20
  export { updateListItemPlatformInfo } from './snapshot/platformInfo.js';
20
- export { options, Component, } from 'preact';
21
+ export { options, Component, process, } from 'preact';
21
22
  export type { Options } from 'preact';
22
23
  export { loadDynamicJS, __dynamicImport } from './lynx/dynamic-js.js';
23
24
  export { withInitDataInState } from './compat/initData.js';
24
25
  export { wrapWithLynxComponent } from './compat/lynxComponent.js';
25
26
  export { loadLazyBundle } from './lynx/lazy-bundle.js';
26
- export { transformToWorklet } from './worklet/transformToWorklet.js';
27
+ export { transformToWorklet } from './worklet/call/transformToWorklet.js';
27
28
  export { registerWorkletOnBackground } from './worklet/hmr.js';
28
29
  export { loadWorkletRuntime } from '@lynx-js/react/worklet-runtime/bindings';
@@ -3,6 +3,7 @@
3
3
  // LICENSE file in the root directory of this source tree.
4
4
  import { Suspense, createElement, lazy } from 'preact/compat';
5
5
  import './lynx.js';
6
+ import { BackgroundSnapshotInstance } from './backgroundSnapshot.js';
6
7
  import { factory as factory2 } from './compat/componentIs.js';
7
8
  import { useMemo } from './hooks/react.js';
8
9
  import { loadLazyBundle } from './lynx/lazy-bundle.js';
@@ -11,7 +12,7 @@ import { DynamicPartType } from './snapshot/dynamicPartType.js';
11
12
  import { snapshotCreateList } from './snapshot/list.js';
12
13
  import { SnapshotInstance, __page, __pageId, createSnapshot, snapshotManager } from './snapshot.js';
13
14
  export { __page, __pageId, __root };
14
- export { SnapshotInstance, snapshotCreateList, createSnapshot, snapshotManager };
15
+ export { BackgroundSnapshotInstance, SnapshotInstance, snapshotCreateList, createSnapshot, snapshotManager };
15
16
  export const __DynamicPartSlot = DynamicPartType.Slot;
16
17
  export const __DynamicPartMultiChildren = DynamicPartType.MultiChildren;
17
18
  export const __DynamicPartChildren = DynamicPartType.Children;
@@ -26,7 +27,7 @@ export { updateGesture } from './snapshot/gesture.js';
26
27
  export { updateListItemPlatformInfo } from './snapshot/platformInfo.js';
27
28
  export { options,
28
29
  // Component is not an internal API, but refresh needs it from 'react/internal'
29
- Component, } from 'preact';
30
+ Component, process, } from 'preact';
30
31
  export { loadDynamicJS, __dynamicImport } from './lynx/dynamic-js.js';
31
32
  export { withInitDataInState } from './compat/initData.js';
32
33
  export { wrapWithLynxComponent } from './compat/lynxComponent.js';
@@ -37,7 +38,7 @@ export const __ComponentIsPolyfill = /* @__PURE__ */ factory2(
37
38
  // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
38
39
  { Suspense, lazy, createElement, useMemo }, loadLazyBundle);
39
40
  export { loadLazyBundle } from './lynx/lazy-bundle.js';
40
- export { transformToWorklet } from './worklet/transformToWorklet.js';
41
+ export { transformToWorklet } from './worklet/call/transformToWorklet.js';
41
42
  export { registerWorkletOnBackground } from './worklet/hmr.js';
42
43
  export { loadWorkletRuntime } from '@lynx-js/react/worklet-runtime/bindings';
43
44
  //# sourceMappingURL=internal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAG9D,OAAO,WAAW,CAAC;AAEnB,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEpG,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;AAEjF,MAAM,CAAC,MAAM,iBAAiB,GAAoB,eAAe,CAAC,IAAI,CAAC;AACvE,MAAM,CAAC,MAAM,0BAA0B,GAAoB,eAAe,CAAC,aAAa,CAAC;AACzF,MAAM,CAAC,MAAM,qBAAqB,GAAoB,eAAe,CAAC,QAAQ,CAAC;AAC/E,MAAM,CAAC,MAAM,yBAAyB,GAAoB,eAAe,CAAC,YAAY,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAExE,OAAO,EACL,OAAO;AACP,+EAA+E;AAC/E,SAAS,GACV,MAAM,QAAQ,CAAC;AAGhB,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAuB,eAAe,CAAC,QAAQ;AAC/E,iEAAiE;AACjE,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAS,EACjD,cAAc,CACf,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC"}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAG9D,OAAO,WAAW,CAAC;AAEnB,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEpG,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AAEpC,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;AAE7G,MAAM,CAAC,MAAM,iBAAiB,GAAoB,eAAe,CAAC,IAAI,CAAC;AACvE,MAAM,CAAC,MAAM,0BAA0B,GAAoB,eAAe,CAAC,aAAa,CAAC;AACzF,MAAM,CAAC,MAAM,qBAAqB,GAAoB,eAAe,CAAC,QAAQ,CAAC;AAC/E,MAAM,CAAC,MAAM,yBAAyB,GAAoB,eAAe,CAAC,YAAY,CAAC;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAExE,OAAO,EACL,OAAO;AACP,+EAA+E;AAC/E,SAAS,EACT,OAAO,GACR,MAAM,QAAQ,CAAC;AAGhB,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAuB,eAAe,CAAC,QAAQ;AAC/E,iEAAiE;AACjE,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAS,EACjD,cAAc,CACf,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const isRendering: {
2
+ value: boolean;
3
+ };
@@ -0,0 +1,25 @@
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 { options } from 'preact';
5
+ import { RENDER_COMPONENT, ROOT } from '../renderToOpcodes/constants.js';
6
+ import { hook, lynxQueueMicrotask } from '../utils.js';
7
+ export const isRendering = /* @__PURE__ */ { value: false };
8
+ const setIsRendering = () => {
9
+ isRendering.value = true;
10
+ // Make sure `isRendering` is set to false even if an error is thrown during rendering
11
+ lynxQueueMicrotask(() => {
12
+ isRendering.value = false;
13
+ });
14
+ };
15
+ hook(options, RENDER_COMPONENT, (old, ...args) => {
16
+ /* v8 ignore next */
17
+ old?.(...args);
18
+ setIsRendering();
19
+ });
20
+ hook(options, ROOT, (old, ...args) => {
21
+ /* v8 ignore next */
22
+ old?.(...args);
23
+ setIsRendering();
24
+ });
25
+ //# sourceMappingURL=isRendering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isRendering.js","sourceRoot":"","sources":["../../src/lifecycle/isRendering.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAE5D,MAAM,cAAc,GAAG,GAAG,EAAE;IAC1B,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;IACzB,sFAAsF;IACtF,kBAAkB,CAAC,GAAG,EAAE;QACtB,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE;IAC/C,oBAAoB;IACpB,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACf,cAAc,EAAE,CAAC;AACnB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE;IACnC,oBAAoB;IACpB,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACf,cAAc,EAAE,CAAC;AACnB,CAAC,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { RunWorkletCtxData } from '@lynx-js/react/worklet-runtime/bindings';
1
2
  import type { SnapshotPatch } from './snapshotPatch.js';
2
3
  declare let globalFlushOptions: FlushOptions;
3
4
  declare const globalCommitTaskMap: Map<number, () => void>;
@@ -8,13 +9,13 @@ declare let globalBackgroundSnapshotInstancesToRemove: number[];
8
9
  interface Patch {
9
10
  id: number;
10
11
  snapshotPatch?: SnapshotPatch;
11
- workletRefInitValuePatch?: [id: number, value: unknown][];
12
12
  }
13
13
  /**
14
14
  * List of patches to be applied in a single update cycle with flush options.
15
15
  */
16
16
  interface PatchList {
17
17
  patchList: Patch[];
18
+ delayedRunOnMainThreadData?: RunWorkletCtxData[];
18
19
  flushOptions?: FlushOptions;
19
20
  }
20
21
  /**
@@ -23,10 +23,12 @@ import { COMMIT } from '../../renderToOpcodes/constants.js';
23
23
  import { applyQueuedRefs } from '../../snapshot/ref.js';
24
24
  import { backgroundSnapshotInstanceManager } from '../../snapshot.js';
25
25
  import { hook, isEmptyObject } from '../../utils.js';
26
- import { takeWorkletRefInitValuePatch } from '../../worklet/workletRefPool.js';
26
+ import { sendMTRefInitValueToMainThread } from '../../worklet/ref/updateInitValue.js';
27
27
  import { getReloadVersion } from '../pass.js';
28
28
  import { takeGlobalSnapshotPatch } from './snapshotPatch.js';
29
29
  import { profileEnd, profileStart } from '../../debug/utils.js';
30
+ import { delayedRunOnMainThreadData, takeDelayedRunOnMainThreadData, } from '../../worklet/call/delayedRunOnMainThreadData.js';
31
+ import { isRendering } from '../isRendering.js';
30
32
  let globalFlushOptions = {};
31
33
  function takeGlobalFlushOptions() {
32
34
  const res = globalFlushOptions;
@@ -54,6 +56,7 @@ function replaceCommitHook() {
54
56
  commitQueue.length = 0;
55
57
  return;
56
58
  }
59
+ isRendering.value = false;
57
60
  // Mark the end of virtual DOM diffing phase for performance tracking
58
61
  markTimingLegacy('updateDiffVdomEnd');
59
62
  markTiming('diffVdomEnd');
@@ -70,12 +73,12 @@ function replaceCommitHook() {
70
73
  }, 10000);
71
74
  }
72
75
  });
76
+ sendMTRefInitValueToMainThread();
73
77
  // Collect patches for this update
74
78
  const snapshotPatch = takeGlobalSnapshotPatch();
75
79
  const flushOptions = takeGlobalFlushOptions();
76
80
  const patchOptions = takeGlobalPatchOptions();
77
- const workletRefInitValuePatch = takeWorkletRefInitValuePatch();
78
- if (!snapshotPatch && workletRefInitValuePatch.length === 0) {
81
+ if (!snapshotPatch) {
79
82
  // before hydration, skip patch
80
83
  applyQueuedRefs();
81
84
  originalPreactCommit?.(vnode, commitQueue);
@@ -88,15 +91,15 @@ function replaceCommitHook() {
88
91
  if (snapshotPatch?.length) {
89
92
  patch.snapshotPatch = snapshotPatch;
90
93
  }
91
- if (workletRefInitValuePatch.length) {
92
- patch.workletRefInitValuePatch = workletRefInitValuePatch;
93
- }
94
94
  const patchList = {
95
95
  patchList: [patch],
96
96
  };
97
97
  if (!isEmptyObject(flushOptions)) {
98
98
  patchList.flushOptions = flushOptions;
99
99
  }
100
+ if (snapshotPatch && delayedRunOnMainThreadData.length) {
101
+ patchList.delayedRunOnMainThreadData = takeDelayedRunOnMainThreadData();
102
+ }
100
103
  const obj = commitPatchUpdate(patchList, patchOptions);
101
104
  // Send the update to the native layer
102
105
  lynx.getNativeApp().callLepusMethod(LifecycleConstant.patchUpdate, obj, () => {
@@ -1 +1 @@
1
- {"version":3,"file":"commit.js","sourceRoot":"","sources":["../../../src/lifecycle/patch/commit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commit.js","sourceRoot":"","sources":["../../../src/lifecycle/patch/commit.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  // Copyright 2025 The Lynx Authors. All rights reserved.
2
2
  // Licensed under the Apache License Version 2.0 that can be found in the
3
3
  // LICENSE file in the root directory of this source tree.
4
- import { updateWorkletRefInitValueChanges } from '@lynx-js/react/worklet-runtime/bindings';
4
+ import { runRunOnMainThreadTask, setEomShouldFlushElementTree } from '@lynx-js/react/worklet-runtime/bindings';
5
5
  import { setMainThreadHydrating } from './isMainThreadHydrating.js';
6
6
  import { snapshotPatchApply } from './snapshotPatchApply.js';
7
7
  import { LifecycleConstant } from '../../lifecycleConstant.js';
@@ -9,6 +9,7 @@ import { markTiming, setPipeline } from '../../lynx/performance.js';
9
9
  import { __pendingListUpdates } from '../../pendingListUpdates.js';
10
10
  import { applyRefQueue } from '../../snapshot/workletRef.js';
11
11
  import { __page } from '../../snapshot.js';
12
+ import { isMtsEnabled } from '../../worklet/functionality.js';
12
13
  import { getReloadVersion } from '../pass.js';
13
14
  function updateMainThread({ data, patchOptions }) {
14
15
  if ((patchOptions.reloadVersion) < getReloadVersion()) {
@@ -25,15 +26,14 @@ function updateMainThread({ data, patchOptions }) {
25
26
  setPipeline(patchOptions.pipelineOptions);
26
27
  markTiming('mtsRenderStart');
27
28
  markTiming('parseChangesStart');
28
- const { patchList, flushOptions = {} } = JSON.parse(data);
29
+ const { patchList, flushOptions = {}, delayedRunOnMainThreadData } = JSON.parse(data);
29
30
  markTiming('parseChangesEnd');
30
31
  markTiming('patchChangesStart');
31
32
  if (patchOptions.isHydration) {
32
33
  setMainThreadHydrating(true);
33
34
  }
34
35
  try {
35
- for (const { snapshotPatch, workletRefInitValuePatch } of patchList) {
36
- updateWorkletRefInitValueChanges(workletRefInitValuePatch);
36
+ for (const { snapshotPatch } of patchList) {
37
37
  __pendingListUpdates.clearAttachedLists();
38
38
  if (snapshotPatch) {
39
39
  snapshotPatchApply(snapshotPatch);
@@ -51,6 +51,19 @@ function updateMainThread({ data, patchOptions }) {
51
51
  }
52
52
  }
53
53
  applyRefQueue();
54
+ if (delayedRunOnMainThreadData && isMtsEnabled()) {
55
+ setEomShouldFlushElementTree(false);
56
+ for (const data of delayedRunOnMainThreadData) {
57
+ try {
58
+ runRunOnMainThreadTask(data.worklet, data.params, data.resolveId);
59
+ /* v8 ignore next 3 */
60
+ }
61
+ catch (e) {
62
+ lynx.reportError(e);
63
+ }
64
+ }
65
+ setEomShouldFlushElementTree(true);
66
+ }
54
67
  if (patchOptions.pipelineOptions) {
55
68
  flushOptions.pipelineOptions = patchOptions.pipelineOptions;
56
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"updateMainThread.js","sourceRoot":"","sources":["../../../src/lifecycle/patch/updateMainThread.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,OAAO,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAC;AAG3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,SAAS,gBAAgB,CACvB,EAAE,IAAI,EAAE,YAAY,EAGnB;IAED,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,gBAAgB,EAAE,EAAE,CAAC;QACtD,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;IACrC,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,kBAAkB,EAAE;YAChD,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;YAClB,+DAA+D;YAC/D,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IAC1C,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC7B,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAChC,MAAM,EAAE,SAAS,EAAE,YAAY,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAc,CAAC;IAEvE,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAC9B,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAChC,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;QAC7B,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,CAAC;QACH,KAAK,MAAM,EAAE,aAAa,EAAE,wBAAwB,EAAE,IAAI,SAAS,EAAE,CAAC;YACpE,gCAAgC,CAAC,wBAAwB,CAAC,CAAC;YAC3D,oBAAoB,CAAC,kBAAkB,EAAE,CAAC;YAC1C,IAAI,aAAa,EAAE,CAAC;gBAClB,kBAAkB,CAAC,aAAa,CAAC,CAAC;YACpC,CAAC;YACD,oBAAoB,CAAC,KAAK,EAAE,CAAC;YAC7B,kDAAkD;YAClD,kEAAkE;QACpE,CAAC;IACH,CAAC;YAAS,CAAC;QACT,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAC9B,UAAU,CAAC,cAAc,CAAC,CAAC;QAC3B,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;YAC7B,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,aAAa,EAAE,CAAC;IAChB,IAAI,YAAY,CAAC,eAAe,EAAE,CAAC;QACjC,YAAY,CAAC,eAAe,GAAG,YAAY,CAAC,eAAe,CAAC;IAC9D,CAAC;IACD,kBAAkB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAEzC,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB;IAC7B,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;AACnF,CAAC;AAED;;GAEG;AACH,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
1
+ {"version":3,"file":"updateMainThread.js","sourceRoot":"","sources":["../../../src/lifecycle/patch/updateMainThread.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,8 @@
1
1
  import type { NodesRef } from '@lynx-js/types';
2
+ type FunctionPropertyNames<T> = {
3
+ [K in keyof T]: T[K] extends (...args: unknown[]) => unknown ? K : never;
4
+ }[keyof T];
5
+ type ForwardableNodesRefMethod = Exclude<FunctionPropertyNames<NodesRef>, 'exec'>;
2
6
  /**
3
7
  * A flag to indicate whether UI operations should be delayed.
4
8
  * When set to true, UI operations will be queued in the `delayedUiOps` array
@@ -22,10 +26,11 @@ declare class RefProxy {
22
26
  private task;
23
27
  constructor(refAttr: [snapshotInstanceId: number, expIndex: number]);
24
28
  private setTask;
25
- invoke(...args: Parameters<NodesRef['invoke']>): RefProxy;
26
- path(...args: Parameters<NodesRef['path']>): RefProxy;
27
- fields(...args: Parameters<NodesRef['fields']>): RefProxy;
28
- setNativeProps(...args: Parameters<NodesRef['setNativeProps']>): RefProxy;
29
29
  exec(): void;
30
30
  }
31
+ type RefProxyForwardedMethods = {
32
+ [K in ForwardableNodesRefMethod]: (...args: Parameters<NodesRef[K]>) => RefProxy;
33
+ };
34
+ interface RefProxy extends RefProxyForwardedMethods {
35
+ }
31
36
  export {};
@@ -31,11 +31,12 @@ function runOrDelay(task) {
31
31
  * Executes all delayed UI operations.
32
32
  */
33
33
  function runDelayedUiOps() {
34
- for (const task of delayedUiOps) {
34
+ const tasks = delayedUiOps.slice();
35
+ delayedUiOps.length = 0;
36
+ shouldDelayUiOps.value = false;
37
+ for (const task of tasks) {
35
38
  task();
36
39
  }
37
- shouldDelayUiOps.value = false;
38
- delayedUiOps.length = 0;
39
40
  }
40
41
  /**
41
42
  * A proxy class designed for managing and executing reference-based tasks.
@@ -46,25 +47,31 @@ class RefProxy {
46
47
  task;
47
48
  constructor(refAttr) {
48
49
  this.refAttr = refAttr;
50
+ this.task = undefined;
51
+ return new Proxy(this, {
52
+ get: (target, prop, receiver) => {
53
+ if (typeof prop === 'symbol'
54
+ || prop === 'then'
55
+ || prop in target
56
+ || typeof prop !== 'string') {
57
+ return Reflect.get(target, prop, receiver);
58
+ }
59
+ const forward = (method) => {
60
+ return (...args) => {
61
+ return new RefProxy(target.refAttr).setTask(method, args);
62
+ };
63
+ };
64
+ return forward(prop);
65
+ },
66
+ });
49
67
  }
50
68
  setTask(method, args) {
51
69
  this.task = (nodesRef) => {
52
- return nodesRef[method](...args);
70
+ const nodesRefMethod = nodesRef[method];
71
+ return nodesRefMethod.apply(nodesRef, args);
53
72
  };
54
73
  return this;
55
74
  }
56
- invoke(...args) {
57
- return new RefProxy(this.refAttr).setTask('invoke', args);
58
- }
59
- path(...args) {
60
- return new RefProxy(this.refAttr).setTask('path', args);
61
- }
62
- fields(...args) {
63
- return new RefProxy(this.refAttr).setTask('fields', args);
64
- }
65
- setNativeProps(...args) {
66
- return new RefProxy(this.refAttr).setTask('setNativeProps', args);
67
- }
68
75
  exec() {
69
76
  runOrDelay(() => {
70
77
  const realRefId = hydrationMap.get(this.refAttr[0]) ?? this.refAttr[0];
@@ -1 +1 @@
1
- {"version":3,"file":"delay.js","sourceRoot":"","sources":["../../../src/lifecycle/ref/delay.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAI1D,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAIrE;;;;;;GAMG;AACH,MAAM,gBAAgB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAEzC;;;GAGG;AACH,MAAM,YAAY,GAAmB,EAAE,CAAC;AAExC;;;GAGG;AACH,SAAS,UAAU,CAAC,IAAgB;IAClC,IAAI,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC3B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,IAAI,EAAE,CAAC;IACT,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,eAAe;IACtB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,IAAI,EAAE,CAAC;IACT,CAAC;IACD,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAC;IAC/B,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,MAAM,QAAQ;IACK,OAAO,CAAiD;IACjE,IAAI,CAAsB;IAElC,YAAY,OAAuD;QACjE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEO,OAAO,CACb,MAAS,EACT,IAA6B;QAE7B,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE;YACvB,OAAQ,QAAQ,CAAC,MAAM,CAAkD,CAAC,GAAG,IAAI,CAAC,CAAC;QACrF,CAAC,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,GAAG,IAAoC;QAC5C,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,CAAC,GAAG,IAAkC;QACxC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,GAAG,IAAoC;QAC5C,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED,cAAc,CAAC,GAAG,IAA4C;QAC5D,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,IAAI;QACF,UAAU,CAAC,GAAG,EAAE;YACd,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACvE,MAAM,WAAW,GAAG,cAAc,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;YAClE,IAAI,CAAC,IAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACpE,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"delay.js","sourceRoot":"","sources":["../../../src/lifecycle/ref/delay.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAI1D,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAUrE;;;;;;GAMG;AACH,MAAM,gBAAgB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAEzC;;;GAGG;AACH,MAAM,YAAY,GAAmB,EAAE,CAAC;AAExC;;;GAGG;AACH,SAAS,UAAU,CAAC,IAAgB;IAClC,IAAI,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC3B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,IAAI,EAAE,CAAC;IACT,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,eAAe;IACtB,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;IACnC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IACxB,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAC;IAE/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,EAAE,CAAC;IACT,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,QAAQ;IACK,OAAO,CAAiD;IACjE,IAAI,CAAsB;IAElC,YAAY,OAAuD;QACjE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QAEtB,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE;YACrB,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBAC9B,IACE,OAAO,IAAI,KAAK,QAAQ;uBACrB,IAAI,KAAK,MAAM;uBACf,IAAI,IAAI,MAAM;uBACd,OAAO,IAAI,KAAK,QAAQ,EAC3B,CAAC;oBACD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC7C,CAAC;gBAED,MAAM,OAAO,GAAG,CAAsC,MAAS,EAAE,EAAE;oBACjE,OAAO,CAAC,GAAG,IAA6B,EAAE,EAAE;wBAC1C,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;oBAC5D,CAAC,CAAC;gBACJ,CAAC,CAAC;gBAEF,OAAO,OAAO,CAAC,IAAiC,CAAC,CAAC;YACpD,CAAC;SACF,CAAa,CAAC;IACjB,CAAC;IAEO,OAAO,CACb,MAAS,EACT,IAA6B;QAE7B,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE;YACvB,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAA0D,CAAC;YACjG,OAAO,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI;QACF,UAAU,CAAC,GAAG,EAAE;YACd,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACvE,MAAM,WAAW,GAAG,cAAc,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;YAClE,IAAI,CAAC,IAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACpE,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAQD;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC"}
@@ -14,7 +14,6 @@ import { destroyBackground } from './destroy.js';
14
14
  import { applyRefQueue } from '../snapshot/workletRef.js';
15
15
  import { SnapshotInstance, __page, snapshotInstanceManager } from '../snapshot.js';
16
16
  import { isEmptyObject } from '../utils.js';
17
- import { destroyWorklet } from '../worklet/destroy.js';
18
17
  import { clearJSReadyEventIdSwap, isJSReady } from './event/jsReady.js';
19
18
  import { increaseReloadVersion } from './pass.js';
20
19
  import { deinitGlobalSnapshotPatch } from './patch/snapshotPatch.js';
@@ -29,7 +28,6 @@ function reloadMainThread(data, options) {
29
28
  if (typeof data == 'object' && !isEmptyObject(data)) {
30
29
  Object.assign(lynx.__initData, data);
31
30
  }
32
- destroyWorklet();
33
31
  snapshotInstanceManager.clear();
34
32
  __pendingListUpdates.clearAttachedLists();
35
33
  clearJSReadyEventIdSwap();
@@ -1 +1 @@
1
- {"version":3,"file":"reload.js","sourceRoot":"","sources":["../../src/lifecycle/reload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reload.js","sourceRoot":"","sources":["../../src/lifecycle/reload.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,8 @@ export declare const enum LifecycleConstant {
4
4
  globalEventFromLepus = "globalEventFromLepus",
5
5
  jsReady = "rLynxJSReady",
6
6
  patchUpdate = "rLynxChange",
7
- publishEvent = "rLynxPublishEvent"
7
+ publishEvent = "rLynxPublishEvent",
8
+ updateMTRefInitValue = "rLynxChangeRefInitValue"
8
9
  }
9
10
  export interface FirstScreenData {
10
11
  root: string;
@@ -9,6 +9,7 @@ export var LifecycleConstant;
9
9
  LifecycleConstant["jsReady"] = "rLynxJSReady";
10
10
  LifecycleConstant["patchUpdate"] = "rLynxChange";
11
11
  LifecycleConstant["publishEvent"] = "rLynxPublishEvent";
12
+ LifecycleConstant["updateMTRefInitValue"] = "rLynxChangeRefInitValue";
12
13
  })(LifecycleConstant || (LifecycleConstant = {}));
13
14
  export var NativeUpdateDataType;
14
15
  (function (NativeUpdateDataType) {
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycleConstant.js","sourceRoot":"","sources":["../src/lifecycleConstant.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAC1D,MAAM,CAAN,IAAkB,iBAOjB;AAPD,WAAkB,iBAAiB;IACjC,qDAAgC,CAAA;IAChC,sDAAiC,CAAA;IACjC,kEAA6C,CAAA;IAC7C,6CAAwB,CAAA;IACxB,gDAA2B,CAAA;IAC3B,uDAAkC,CAAA;AACpC,CAAC,EAPiB,iBAAiB,KAAjB,iBAAiB,QAOlC;AAOD,MAAM,CAAN,IAAkB,oBAGjB;AAHD,WAAkB,oBAAoB;IACpC,mEAAU,CAAA;IACV,iEAAS,CAAA;AACX,CAAC,EAHiB,oBAAoB,KAApB,oBAAoB,QAGrC"}
1
+ {"version":3,"file":"lifecycleConstant.js","sourceRoot":"","sources":["../src/lifecycleConstant.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAC1D,MAAM,CAAN,IAAkB,iBAQjB;AARD,WAAkB,iBAAiB;IACjC,qDAAgC,CAAA;IAChC,sDAAiC,CAAA;IACjC,kEAA6C,CAAA;IAC7C,6CAAwB,CAAA;IACxB,gDAA2B,CAAA;IAC3B,uDAAkC,CAAA;IAClC,qEAAgD,CAAA;AAClD,CAAC,EARiB,iBAAiB,KAAjB,iBAAiB,QAQlC;AAOD,MAAM,CAAN,IAAkB,oBAGjB;AAHD,WAAkB,oBAAoB;IACpC,mEAAU,CAAA;IACV,iEAAS,CAAA;AACX,CAAC,EAHiB,oBAAoB,KAApB,oBAAoB,QAGrC"}
@@ -132,6 +132,11 @@ export function componentAtIndexFactory(ctx, hydrateFunction) {
132
132
  }
133
133
  const root = childCtx.__element_root;
134
134
  applyRefQueue();
135
+ // In the defer `list-item` scenario, `componentAtIndex` occurs with delay.
136
+ // Within `componentAtIndex`, nodes that quickly appear and disappear due to re-layout will be enqueued again,
137
+ // causing the mapping relationship between sign and SnapshotInstance to become corrupted.
138
+ // This results in a SnapshotInstance without `__elements` being enqueued.
139
+ signMap.set(sign, childCtx);
135
140
  if (!enableBatchRender) {
136
141
  const flushOptions = {
137
142
  triggerLayout: true,
@@ -159,7 +164,6 @@ export function componentAtIndexFactory(ctx, hydrateFunction) {
159
164
  }
160
165
  __FlushElementTree(root, flushOptions);
161
166
  }
162
- signMap.set(sign, childCtx);
163
167
  return sign;
164
168
  }
165
169
  childCtx.ensureElements();
@@ -167,6 +171,7 @@ export function componentAtIndexFactory(ctx, hydrateFunction) {
167
171
  __AppendElement(list, root);
168
172
  const sign = __GetElementUniqueID(root);
169
173
  applyRefQueue();
174
+ signMap.set(sign, childCtx);
170
175
  if (!enableBatchRender) {
171
176
  __FlushElementTree(root, {
172
177
  triggerLayout: true,
@@ -180,7 +185,6 @@ export function componentAtIndexFactory(ctx, hydrateFunction) {
180
185
  asyncFlush: true,
181
186
  });
182
187
  }
183
- signMap.set(sign, childCtx);
184
188
  return sign;
185
189
  };
186
190
  function componentAtIndex(list, listID, cellIndex, operationID, enableReuseNotification) {
@@ -223,6 +227,7 @@ export function componentAtIndexFactory(ctx, hydrateFunction) {
223
227
  // not the one generated by any code here, to workaround a bug of Lynx Engine.
224
228
  // So we CANNOT split the `operationIDs` into two parts: one for ready items, one for unready items.
225
229
  if (hasUnready) {
230
+ // eslint-disable-next-line @typescript-eslint/await-thenable
226
231
  void Promise.all(p).then((uiSigns) => {
227
232
  __FlushElementTree(list, {
228
233
  triggerLayout: true,
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../src/list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../src/list.ts"],"names":[],"mappings":"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"}