@lynx-js/react 0.119.0 → 0.121.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/CHANGELOG.md +78 -0
- package/package.json +39 -11
- package/runtime/lazy/compat.js +1 -0
- package/runtime/lazy/internal.js +3 -0
- package/runtime/lazy/react.js +1 -0
- package/runtime/lib/core/hooks/mainThread.d.ts +1 -0
- package/runtime/lib/core/hooks/mainThread.js +7 -0
- package/runtime/lib/core/hooks/mainThread.js.map +1 -0
- package/runtime/lib/{hooks/mainThread.d.ts → core/hooks/mainThreadImpl.d.ts} +2 -1
- package/runtime/lib/{hooks/mainThread.js → core/hooks/mainThreadImpl.js} +46 -35
- package/runtime/lib/core/hooks/mainThreadImpl.js.map +1 -0
- package/runtime/lib/{hooks → core/hooks}/react.js +1 -1
- package/runtime/lib/core/hooks/react.js.map +1 -0
- package/runtime/lib/{hooks → core/hooks}/useLynxGlobalEventListener.d.ts +1 -1
- package/runtime/lib/{hooks → core/hooks}/useLynxGlobalEventListener.js +1 -1
- package/runtime/lib/core/hooks/useLynxGlobalEventListener.js.map +1 -0
- package/runtime/lib/document.d.ts +4 -4
- package/runtime/lib/document.js +14 -12
- package/runtime/lib/document.js.map +1 -1
- package/runtime/lib/element-template/background/attr-slots.d.ts +2 -0
- package/runtime/lib/element-template/background/attr-slots.js +34 -0
- package/runtime/lib/element-template/background/attr-slots.js.map +1 -0
- package/runtime/lib/element-template/background/commit-context.d.ts +13 -0
- package/runtime/lib/element-template/background/commit-context.js +25 -0
- package/runtime/lib/element-template/background/commit-context.js.map +1 -0
- package/runtime/lib/element-template/background/commit-hook.d.ts +7 -0
- package/runtime/lib/element-template/background/commit-hook.js +96 -0
- package/runtime/lib/element-template/background/commit-hook.js.map +1 -0
- package/runtime/lib/element-template/background/destroy.d.ts +1 -0
- package/runtime/lib/element-template/background/destroy.js +17 -0
- package/runtime/lib/element-template/background/destroy.js.map +1 -0
- package/runtime/lib/element-template/background/document.d.ts +7 -0
- package/runtime/lib/element-template/background/document.js +27 -0
- package/runtime/lib/element-template/background/document.js.map +1 -0
- package/runtime/lib/element-template/background/hydrate.d.ts +4 -0
- package/runtime/lib/element-template/background/hydrate.js +219 -0
- package/runtime/lib/element-template/background/hydrate.js.map +1 -0
- package/runtime/lib/element-template/background/hydration-listener.d.ts +2 -0
- package/runtime/lib/element-template/background/hydration-listener.js +93 -0
- package/runtime/lib/element-template/background/hydration-listener.js.map +1 -0
- package/runtime/lib/element-template/background/instance.d.ts +39 -0
- package/runtime/lib/element-template/background/instance.js +349 -0
- package/runtime/lib/element-template/background/instance.js.map +1 -0
- package/runtime/lib/element-template/background/manager.d.ts +10 -0
- package/runtime/lib/element-template/background/manager.js +60 -0
- package/runtime/lib/element-template/background/manager.js.map +1 -0
- package/runtime/lib/element-template/client/root.d.ts +36 -0
- package/runtime/lib/element-template/client/root.js +33 -0
- package/runtime/lib/element-template/client/root.js.map +1 -0
- package/runtime/lib/element-template/debug/alog.d.ts +34 -0
- package/runtime/lib/element-template/debug/alog.js +93 -0
- package/runtime/lib/element-template/debug/alog.js.map +1 -0
- package/runtime/lib/element-template/debug/elementPAPICall.d.ts +1 -0
- package/runtime/lib/element-template/debug/elementPAPICall.js +75 -0
- package/runtime/lib/element-template/debug/elementPAPICall.js.map +1 -0
- package/runtime/lib/element-template/debug/profile.d.ts +3 -0
- package/runtime/lib/element-template/debug/profile.js +141 -0
- package/runtime/lib/element-template/debug/profile.js.map +1 -0
- package/runtime/lib/element-template/hooks/react.d.ts +14 -0
- package/runtime/lib/element-template/hooks/react.js +24 -0
- package/runtime/lib/element-template/hooks/react.js.map +1 -0
- package/runtime/lib/element-template/index.d.ts +7 -0
- package/runtime/lib/element-template/index.js +45 -0
- package/runtime/lib/element-template/index.js.map +1 -0
- package/runtime/lib/element-template/internal.d.ts +6 -0
- package/runtime/lib/element-template/internal.js +44 -0
- package/runtime/lib/element-template/internal.js.map +1 -0
- package/runtime/lib/element-template/jsx-dev-runtime/index.d.ts +1 -0
- package/runtime/lib/element-template/jsx-dev-runtime/index.js +5 -0
- package/runtime/lib/element-template/jsx-dev-runtime/index.js.map +1 -0
- package/runtime/lib/element-template/jsx-runtime/index.d.ts +19 -0
- package/runtime/lib/element-template/jsx-runtime/index.js +60 -0
- package/runtime/lib/element-template/jsx-runtime/index.js.map +1 -0
- package/runtime/lib/element-template/lynx/env.js +89 -0
- package/runtime/lib/element-template/lynx/env.js.map +1 -0
- package/runtime/lib/element-template/lynx/performance.d.ts +23 -0
- package/runtime/lib/element-template/lynx/performance.js +135 -0
- package/runtime/lib/element-template/lynx/performance.js.map +1 -0
- package/runtime/lib/element-template/native/callDestroyLifetimeFun.d.ts +1 -0
- package/runtime/lib/element-template/native/callDestroyLifetimeFun.js +8 -0
- package/runtime/lib/element-template/native/callDestroyLifetimeFun.js.map +1 -0
- package/runtime/lib/element-template/native/index.d.ts +1 -0
- package/runtime/lib/element-template/native/index.js +53 -0
- package/runtime/lib/element-template/native/index.js.map +1 -0
- package/runtime/lib/element-template/native/main-thread-api.js +27 -0
- package/runtime/lib/element-template/native/main-thread-api.js.map +1 -0
- package/runtime/lib/element-template/native/mts-destroy.d.ts +3 -0
- package/runtime/lib/element-template/native/mts-destroy.js +37 -0
- package/runtime/lib/element-template/native/mts-destroy.js.map +1 -0
- package/runtime/lib/element-template/native/patch-listener.d.ts +2 -0
- package/runtime/lib/element-template/native/patch-listener.js +66 -0
- package/runtime/lib/element-template/native/patch-listener.js.map +1 -0
- package/runtime/lib/element-template/prop-adapters/event-value.d.ts +1 -0
- package/runtime/lib/element-template/prop-adapters/event-value.js +7 -0
- package/runtime/lib/element-template/prop-adapters/event-value.js.map +1 -0
- package/runtime/lib/element-template/prop-adapters/event.d.ts +7 -0
- package/runtime/lib/element-template/prop-adapters/event.js +61 -0
- package/runtime/lib/element-template/prop-adapters/event.js.map +1 -0
- package/runtime/lib/element-template/prop-adapters/spread.d.ts +5 -0
- package/runtime/lib/element-template/prop-adapters/spread.js +45 -0
- package/runtime/lib/element-template/prop-adapters/spread.js.map +1 -0
- package/runtime/lib/element-template/protocol/lifecycle-constant.d.ts +4 -0
- package/runtime/lib/element-template/protocol/lifecycle-constant.js +9 -0
- package/runtime/lib/element-template/protocol/lifecycle-constant.js.map +1 -0
- package/runtime/lib/element-template/protocol/opcodes.d.ts +7 -0
- package/runtime/lib/element-template/protocol/opcodes.js +10 -0
- package/runtime/lib/element-template/protocol/opcodes.js.map +1 -0
- package/runtime/lib/element-template/protocol/types.d.ts +50 -0
- package/runtime/lib/element-template/protocol/types.js +5 -0
- package/runtime/lib/element-template/protocol/types.js.map +1 -0
- package/runtime/lib/element-template/runtime/components/slot.js +11 -0
- package/runtime/lib/element-template/runtime/components/slot.js.map +1 -0
- package/runtime/lib/element-template/runtime/page/page.d.ts +2 -0
- package/runtime/lib/element-template/runtime/page/page.js +8 -0
- package/runtime/lib/element-template/runtime/page/page.js.map +1 -0
- package/runtime/lib/element-template/runtime/page/root-instance.d.ts +10 -0
- package/runtime/lib/element-template/runtime/page/root-instance.js +17 -0
- package/runtime/lib/element-template/runtime/page/root-instance.js.map +1 -0
- package/runtime/lib/element-template/runtime/patch.d.ts +3 -0
- package/runtime/lib/element-template/runtime/patch.js +145 -0
- package/runtime/lib/element-template/runtime/patch.js.map +1 -0
- package/runtime/lib/element-template/runtime/render/render-main-thread.js +53 -0
- package/runtime/lib/element-template/runtime/render/render-main-thread.js.map +1 -0
- package/runtime/lib/element-template/runtime/render/render-opcodes.d.ts +4 -0
- package/runtime/lib/element-template/runtime/render/render-opcodes.js +134 -0
- package/runtime/lib/element-template/runtime/render/render-opcodes.js.map +1 -0
- package/runtime/lib/element-template/runtime/render/render-to-opcodes.d.ts +14 -0
- package/runtime/lib/element-template/runtime/render/render-to-opcodes.js +272 -0
- package/runtime/lib/element-template/runtime/render/render-to-opcodes.js.map +1 -0
- package/runtime/lib/element-template/runtime/template/attr-slot-plan.d.ts +11 -0
- package/runtime/lib/element-template/runtime/template/attr-slot-plan.js +23 -0
- package/runtime/lib/element-template/runtime/template/attr-slot-plan.js.map +1 -0
- package/runtime/lib/element-template/runtime/template/handle.d.ts +5 -0
- package/runtime/lib/element-template/runtime/template/handle.js +23 -0
- package/runtime/lib/element-template/runtime/template/handle.js.map +1 -0
- package/runtime/lib/element-template/runtime/template/registry.d.ts +13 -0
- package/runtime/lib/element-template/runtime/template/registry.js +46 -0
- package/runtime/lib/element-template/runtime/template/registry.js.map +1 -0
- package/runtime/lib/index.d.ts +7 -5
- package/runtime/lib/index.js +9 -6
- package/runtime/lib/index.js.map +1 -1
- package/runtime/lib/internal.d.ts +22 -20
- package/runtime/lib/internal.js +26 -23
- package/runtime/lib/internal.js.map +1 -1
- package/runtime/lib/lynx-api.d.ts +5 -5
- package/runtime/lib/lynx-api.js +9 -9
- package/runtime/lib/lynx-api.js.map +1 -1
- package/runtime/lib/lynx.d.ts +2 -2
- package/runtime/lib/lynx.js +17 -17
- package/runtime/lib/lynx.js.map +1 -1
- package/runtime/lib/root.d.ts +2 -2
- package/runtime/lib/root.js +2 -2
- package/runtime/lib/root.js.map +1 -1
- package/runtime/lib/{debug → shared}/component-stack.js +1 -1
- package/runtime/lib/shared/component-stack.js.map +1 -0
- package/runtime/lib/{debug → shared}/profile.js +6 -4
- package/runtime/lib/shared/profile.js.map +1 -0
- package/runtime/lib/{renderToOpcodes/constants.js → shared/render-constants.js} +1 -1
- package/runtime/lib/shared/render-constants.js.map +1 -0
- package/runtime/lib/{alog → snapshot/alog}/elementPAPICall.js +1 -1
- package/runtime/lib/snapshot/alog/elementPAPICall.js.map +1 -0
- package/runtime/lib/snapshot/alog/index.js.map +1 -0
- package/runtime/lib/{alog → snapshot/alog}/render.js +2 -2
- package/runtime/lib/snapshot/alog/render.js.map +1 -0
- package/runtime/lib/snapshot/compat/componentIs.js.map +1 -0
- package/runtime/lib/{compat → snapshot/compat}/initData.d.ts +2 -2
- package/runtime/lib/{compat → snapshot/compat}/initData.js +1 -1
- package/runtime/lib/snapshot/compat/initData.js.map +1 -0
- package/runtime/lib/snapshot/compat/lynxComponent.js.map +1 -0
- package/runtime/lib/snapshot/debug/debug.js.map +1 -0
- package/runtime/lib/snapshot/debug/describeInvalidValue.js.map +1 -0
- package/runtime/lib/snapshot/debug/formatPatch.js.map +1 -0
- package/runtime/lib/snapshot/debug/printSnapshot.js.map +1 -0
- package/runtime/lib/{debug → snapshot/debug}/profileHooks.js +2 -2
- package/runtime/lib/snapshot/debug/profileHooks.js.map +1 -0
- package/runtime/lib/{debug → snapshot/debug}/vnodeSource.js +1 -1
- package/runtime/lib/snapshot/debug/vnodeSource.js.map +1 -0
- package/runtime/lib/{gesture → snapshot/gesture}/processGesture.d.ts +2 -0
- package/runtime/lib/{gesture → snapshot/gesture}/processGesture.js +40 -3
- package/runtime/lib/snapshot/gesture/processGesture.js.map +1 -0
- package/runtime/lib/snapshot/gesture/processGestureBagkround.d.ts +9 -0
- package/runtime/lib/snapshot/gesture/processGestureBagkround.js +80 -0
- package/runtime/lib/snapshot/gesture/processGestureBagkround.js.map +1 -0
- package/runtime/lib/snapshot/gesture/types.js.map +1 -0
- package/runtime/lib/snapshot/index.d.ts +1 -4
- package/runtime/lib/snapshot/index.js +2 -5
- package/runtime/lib/snapshot/index.js.map +1 -1
- package/runtime/lib/{legacy-react-runtime → snapshot/legacy-react-runtime}/index.d.ts +2 -2
- package/runtime/lib/{legacy-react-runtime → snapshot/legacy-react-runtime}/index.js +2 -2
- package/runtime/lib/snapshot/legacy-react-runtime/index.js.map +1 -0
- package/runtime/lib/snapshot/lifecycle/constant.js.map +1 -0
- package/runtime/lib/{lifecycle → snapshot/lifecycle}/destroy.js +2 -2
- package/runtime/lib/snapshot/lifecycle/destroy.js.map +1 -0
- package/runtime/lib/snapshot/lifecycle/event/delayEvents.js.map +1 -0
- package/runtime/lib/snapshot/lifecycle/event/delayLifecycleEvents.js.map +1 -0
- package/runtime/lib/{lifecycle → snapshot/lifecycle}/event/jsReady.js +2 -2
- package/runtime/lib/snapshot/lifecycle/event/jsReady.js.map +1 -0
- package/runtime/lib/{lifecycle → snapshot/lifecycle}/isRendering.js +2 -2
- package/runtime/lib/snapshot/lifecycle/isRendering.js.map +1 -0
- package/runtime/lib/snapshot/lifecycle/pass.js.map +1 -0
- package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/commit.js +3 -3
- package/runtime/lib/snapshot/lifecycle/patch/commit.js.map +1 -0
- package/runtime/lib/snapshot/lifecycle/patch/error.js.map +1 -0
- package/runtime/lib/snapshot/lifecycle/patch/globalState.js.map +1 -0
- package/runtime/lib/snapshot/lifecycle/patch/isMainThreadHydrating.js.map +1 -0
- package/runtime/lib/snapshot/lifecycle/patch/nodesRefApply.d.ts +15 -0
- package/runtime/lib/snapshot/lifecycle/patch/nodesRefApply.js +102 -0
- package/runtime/lib/snapshot/lifecycle/patch/nodesRefApply.js.map +1 -0
- package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/snapshotPatch.d.ts +2 -0
- package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/snapshotPatch.js +27 -2
- package/runtime/lib/snapshot/lifecycle/patch/snapshotPatch.js.map +1 -0
- package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/snapshotPatchApply.js +28 -0
- package/runtime/lib/snapshot/lifecycle/patch/snapshotPatchApply.js.map +1 -0
- package/runtime/lib/snapshot/lifecycle/patch/updateMainThread.js.map +1 -0
- package/runtime/lib/{lifecycle → snapshot/lifecycle}/ref/delay.d.ts +1 -0
- package/runtime/lib/{lifecycle → snapshot/lifecycle}/ref/delay.js +5 -3
- package/runtime/lib/snapshot/lifecycle/ref/delay.js.map +1 -0
- package/runtime/lib/{lifecycle → snapshot/lifecycle}/reload.js +3 -3
- package/runtime/lib/snapshot/lifecycle/reload.js.map +1 -0
- package/runtime/lib/snapshot/lifecycle/render.d.ts +2 -0
- package/runtime/lib/{lifecycle → snapshot/lifecycle}/render.js +2 -2
- package/runtime/lib/snapshot/lifecycle/render.js.map +1 -0
- package/runtime/lib/{list → snapshot/list}/list.js +5 -2
- package/runtime/lib/snapshot/list/list.js.map +1 -0
- package/runtime/lib/{list → snapshot/list}/listUpdateInfo.js +1 -1
- package/runtime/lib/snapshot/list/listUpdateInfo.js.map +1 -0
- package/runtime/lib/snapshot/list/pendingListUpdates.js.map +1 -0
- package/runtime/lib/snapshot/lynx/calledByNative.d.ts +2 -0
- package/runtime/lib/{lynx → snapshot/lynx}/calledByNative.js +2 -2
- package/runtime/lib/snapshot/lynx/calledByNative.js.map +1 -0
- package/runtime/lib/{lynx → snapshot/lynx}/component.js +1 -1
- package/runtime/lib/snapshot/lynx/component.js.map +1 -0
- package/runtime/lib/snapshot/lynx/dynamic-js.js.map +1 -0
- package/runtime/lib/snapshot/lynx/element.d.ts +6 -0
- package/runtime/lib/snapshot/lynx/element.js +35 -0
- package/runtime/lib/snapshot/lynx/element.js.map +1 -0
- package/runtime/lib/snapshot/lynx/env.d.ts +1 -0
- package/runtime/lib/{lynx → snapshot/lynx}/env.js +1 -4
- package/runtime/lib/snapshot/lynx/env.js.map +1 -0
- package/runtime/lib/snapshot/lynx/injectLepusMethods.js.map +1 -0
- package/runtime/lib/snapshot/lynx/lazy-bundle.js.map +1 -0
- package/runtime/lib/snapshot/lynx/nodesRef.d.ts +6 -0
- package/runtime/lib/snapshot/lynx/nodesRef.js +31 -0
- package/runtime/lib/snapshot/lynx/nodesRef.js.map +1 -0
- package/runtime/lib/{lynx → snapshot/lynx}/performance.js +2 -2
- package/runtime/lib/snapshot/lynx/performance.js.map +1 -0
- package/runtime/lib/snapshot/lynx/portals.d.ts +9 -0
- package/runtime/lib/snapshot/lynx/portals.js +120 -0
- package/runtime/lib/snapshot/lynx/portals.js.map +1 -0
- package/runtime/lib/snapshot/lynx/portalsPending.d.ts +10 -0
- package/runtime/lib/snapshot/lynx/portalsPending.js +38 -0
- package/runtime/lib/snapshot/lynx/portalsPending.js.map +1 -0
- package/runtime/lib/{lynx → snapshot/lynx}/runWithForce.js +2 -2
- package/runtime/lib/snapshot/lynx/runWithForce.js.map +1 -0
- package/runtime/lib/{lynx → snapshot/lynx}/suspense.js +27 -17
- package/runtime/lib/snapshot/lynx/suspense.js.map +1 -0
- package/runtime/lib/{lynx → snapshot/lynx}/tt.js +3 -3
- package/runtime/lib/snapshot/lynx/tt.js.map +1 -0
- package/runtime/lib/{renderToOpcodes → snapshot/renderToOpcodes}/hydrate.js +22 -5
- package/runtime/lib/snapshot/renderToOpcodes/hydrate.js.map +1 -0
- package/runtime/lib/{renderToOpcodes → snapshot/renderToOpcodes}/index.js +35 -14
- package/runtime/lib/snapshot/renderToOpcodes/index.js.map +1 -0
- package/runtime/lib/{renderToOpcodes → snapshot/renderToOpcodes}/opcodes.js +5 -3
- package/runtime/lib/snapshot/renderToOpcodes/opcodes.js.map +1 -0
- package/runtime/lib/snapshot/{backgroundSnapshot.d.ts → snapshot/backgroundSnapshot.d.ts} +2 -1
- package/runtime/lib/snapshot/{backgroundSnapshot.js → snapshot/backgroundSnapshot.js} +101 -73
- package/runtime/lib/snapshot/snapshot/backgroundSnapshot.js.map +1 -0
- package/runtime/lib/snapshot/{constants.d.ts → snapshot/constants.d.ts} +4 -0
- package/runtime/lib/snapshot/{constants.js → snapshot/constants.js} +4 -0
- package/runtime/lib/snapshot/snapshot/constants.js.map +1 -0
- package/runtime/lib/snapshot/{definition.d.ts → snapshot/definition.d.ts} +2 -0
- package/runtime/lib/snapshot/{definition.js → snapshot/definition.js} +55 -3
- package/runtime/lib/snapshot/snapshot/definition.js.map +1 -0
- package/runtime/lib/snapshot/{dynamicPartType.d.ts → snapshot/dynamicPartType.d.ts} +14 -0
- package/runtime/lib/snapshot/{dynamicPartType.js → snapshot/dynamicPartType.js} +14 -0
- package/runtime/lib/snapshot/snapshot/dynamicPartType.js.map +1 -0
- package/runtime/lib/snapshot/{event.d.ts → snapshot/event.d.ts} +1 -1
- package/runtime/lib/snapshot/{event.js → snapshot/event.js} +0 -4
- package/runtime/lib/snapshot/snapshot/event.js.map +1 -0
- package/runtime/lib/snapshot/{gesture.js → snapshot/gesture.js} +9 -3
- package/runtime/lib/snapshot/snapshot/gesture.js.map +1 -0
- package/runtime/lib/snapshot/snapshot/index.d.ts +4 -0
- package/runtime/lib/snapshot/snapshot/index.js +8 -0
- package/runtime/lib/snapshot/snapshot/index.js.map +1 -0
- package/runtime/lib/snapshot/snapshot/list.js.map +1 -0
- package/runtime/lib/snapshot/snapshot/platformInfo.js.map +1 -0
- package/runtime/lib/snapshot/snapshot/reconstructInstanceTree.d.ts +14 -0
- package/runtime/lib/snapshot/snapshot/reconstructInstanceTree.js +27 -0
- package/runtime/lib/snapshot/snapshot/reconstructInstanceTree.js.map +1 -0
- package/runtime/lib/snapshot/{ref.d.ts → snapshot/ref.d.ts} +1 -0
- package/runtime/lib/snapshot/{ref.js → snapshot/ref.js} +13 -1
- package/runtime/lib/snapshot/snapshot/ref.js.map +1 -0
- package/runtime/lib/snapshot/{snapshot.d.ts → snapshot/snapshot.d.ts} +1 -0
- package/runtime/lib/snapshot/{snapshot.js → snapshot/snapshot.js} +90 -11
- package/runtime/lib/snapshot/snapshot/snapshot.js.map +1 -0
- package/runtime/lib/snapshot/snapshot/snapshotInstanceHydrationMap.js.map +1 -0
- package/runtime/lib/snapshot/{spread.d.ts → snapshot/spread.d.ts} +1 -1
- package/runtime/lib/snapshot/{spread.js → snapshot/spread.js} +35 -4
- package/runtime/lib/snapshot/snapshot/spread.js.map +1 -0
- package/runtime/lib/snapshot/{types.d.ts → snapshot/types.d.ts} +1 -0
- package/runtime/lib/snapshot/snapshot/types.js.map +1 -0
- package/runtime/lib/snapshot/{utils.d.ts → snapshot/utils.d.ts} +1 -3
- package/runtime/lib/snapshot/{utils.js → snapshot/utils.js} +5 -0
- package/runtime/lib/snapshot/snapshot/utils.js.map +1 -0
- package/runtime/lib/snapshot/{workletEvent.d.ts → snapshot/workletEvent.d.ts} +1 -1
- package/runtime/lib/snapshot/{workletEvent.js → snapshot/workletEvent.js} +10 -5
- package/runtime/lib/snapshot/snapshot/workletEvent.js.map +1 -0
- package/runtime/lib/snapshot/{workletRef.d.ts → snapshot/workletRef.d.ts} +1 -1
- package/runtime/lib/snapshot/{workletRef.js → snapshot/workletRef.js} +6 -3
- package/runtime/lib/snapshot/snapshot/workletRef.js.map +1 -0
- package/runtime/lib/snapshot/worklet/call/delayedRunOnMainThreadData.js.map +1 -0
- package/runtime/lib/snapshot/worklet/call/execMap.js.map +1 -0
- package/runtime/lib/snapshot/worklet/call/functionCall.js.map +1 -0
- package/runtime/lib/snapshot/worklet/call/runOnBackground.js.map +1 -0
- package/runtime/lib/snapshot/worklet/call/runOnMainThread.js.map +1 -0
- package/runtime/lib/snapshot/worklet/call/transformToWorklet.js.map +1 -0
- package/runtime/lib/snapshot/worklet/ctx.d.ts +1 -0
- package/runtime/lib/snapshot/worklet/ctx.js.map +1 -0
- package/runtime/lib/snapshot/worklet/destroy.js.map +1 -0
- package/runtime/lib/{worklet → snapshot/worklet}/functionality.js +1 -1
- package/runtime/lib/snapshot/worklet/functionality.js.map +1 -0
- package/runtime/lib/snapshot/worklet/hmr.js.map +1 -0
- package/runtime/lib/snapshot/worklet/indexMap.js.map +1 -0
- package/runtime/lib/snapshot/worklet/ref/updateInitValue.js.map +1 -0
- package/runtime/lib/{worklet → snapshot/worklet}/ref/workletRef.js +1 -1
- package/runtime/lib/snapshot/worklet/ref/workletRef.js.map +1 -0
- package/runtime/lib/snapshot/worklet/ref/workletRefPool.js.map +1 -0
- package/runtime/lib/tsconfig.tsbuildinfo +1 -1
- package/runtime/lib/utils.js +1 -1
- package/runtime/lib/utils.js.map +1 -1
- package/runtime/lib/worklet-runtime/bindings/observers.d.ts +1 -0
- package/runtime/lib/worklet-runtime/bindings/observers.js +5 -3
- package/runtime/lib/worklet-runtime/bindings/observers.js.map +1 -1
- package/runtime/lib/worklet-runtime/bindings/types.d.ts +1 -1
- package/runtime/lib/worklet-runtime/bindings/types.js.map +1 -1
- package/runtime/lib/worklet-runtime/hydrate.js +1 -1
- package/runtime/lib/worklet-runtime/hydrate.js.map +1 -1
- package/runtime/lib/worklet-runtime/jsFunctionLifecycle.d.ts +1 -0
- package/runtime/lib/worklet-runtime/jsFunctionLifecycle.js +5 -0
- package/runtime/lib/worklet-runtime/jsFunctionLifecycle.js.map +1 -1
- package/runtime/lib/worklet-runtime/workletRuntime.js +1 -2
- package/runtime/lib/worklet-runtime/workletRuntime.js.map +1 -1
- package/runtime/worklet-runtime/dev.js +8 -4
- package/runtime/worklet-runtime/main.js +1 -1
- package/testing-library/dist/env/index.js +25 -7
- package/testing-library/dist/fire-event.d.ts +21 -7
- package/testing-library/dist/index.d.ts +2 -0
- package/testing-library/dist/pure.js +29 -11
- package/testing-library/dist/setupFiles/common/runtime-setup.js +14 -49
- package/testing-library/dist/type-entry/index.js +0 -0
- package/transform/dist/wasm.cjs +1274 -665
- package/transform/index.d.ts +28 -1
- package/types/react.docs.d.ts +9 -1
- package/refresh/.gitignore +0 -1
- package/refresh/.npmignore +0 -3
- package/refresh/.turbo/turbo-build.log +0 -12
- package/refresh/package.json +0 -20
- package/refresh/rslib.config.ts +0 -24
- package/refresh/tsconfig.json +0 -4
- package/refresh/turbo.json +0 -15
- package/runtime/lib/alog/elementPAPICall.js.map +0 -1
- package/runtime/lib/alog/index.js.map +0 -1
- package/runtime/lib/alog/render.js.map +0 -1
- package/runtime/lib/compat/componentIs.js.map +0 -1
- package/runtime/lib/compat/initData.js.map +0 -1
- package/runtime/lib/compat/lynxComponent.js.map +0 -1
- package/runtime/lib/debug/component-stack.js.map +0 -1
- package/runtime/lib/debug/debug.js.map +0 -1
- package/runtime/lib/debug/describeInvalidValue.js.map +0 -1
- package/runtime/lib/debug/formatPatch.js.map +0 -1
- package/runtime/lib/debug/printSnapshot.js.map +0 -1
- package/runtime/lib/debug/profile.js.map +0 -1
- package/runtime/lib/debug/profileHooks.js.map +0 -1
- package/runtime/lib/debug/vnodeSource.js.map +0 -1
- package/runtime/lib/gesture/processGesture.js.map +0 -1
- package/runtime/lib/gesture/processGestureBagkround.d.ts +0 -2
- package/runtime/lib/gesture/processGestureBagkround.js +0 -19
- package/runtime/lib/gesture/processGestureBagkround.js.map +0 -1
- package/runtime/lib/gesture/types.js.map +0 -1
- package/runtime/lib/hooks/mainThread.js.map +0 -1
- package/runtime/lib/hooks/react.js.map +0 -1
- package/runtime/lib/hooks/useLynxGlobalEventListener.js.map +0 -1
- package/runtime/lib/legacy-react-runtime/index.js.map +0 -1
- package/runtime/lib/lifecycle/constant.js.map +0 -1
- package/runtime/lib/lifecycle/destroy.js.map +0 -1
- package/runtime/lib/lifecycle/event/delayEvents.js.map +0 -1
- package/runtime/lib/lifecycle/event/delayLifecycleEvents.js.map +0 -1
- package/runtime/lib/lifecycle/event/jsReady.js.map +0 -1
- package/runtime/lib/lifecycle/isRendering.js.map +0 -1
- package/runtime/lib/lifecycle/pass.js.map +0 -1
- package/runtime/lib/lifecycle/patch/commit.js.map +0 -1
- package/runtime/lib/lifecycle/patch/error.js.map +0 -1
- package/runtime/lib/lifecycle/patch/globalState.js.map +0 -1
- package/runtime/lib/lifecycle/patch/isMainThreadHydrating.js.map +0 -1
- package/runtime/lib/lifecycle/patch/snapshotPatch.js.map +0 -1
- package/runtime/lib/lifecycle/patch/snapshotPatchApply.js.map +0 -1
- package/runtime/lib/lifecycle/patch/updateMainThread.js.map +0 -1
- package/runtime/lib/lifecycle/ref/delay.js.map +0 -1
- package/runtime/lib/lifecycle/reload.js.map +0 -1
- package/runtime/lib/lifecycle/render.js.map +0 -1
- package/runtime/lib/list/list.js.map +0 -1
- package/runtime/lib/list/listUpdateInfo.js.map +0 -1
- package/runtime/lib/list/pendingListUpdates.js.map +0 -1
- package/runtime/lib/lynx/calledByNative.js.map +0 -1
- package/runtime/lib/lynx/component.js.map +0 -1
- package/runtime/lib/lynx/dynamic-js.js.map +0 -1
- package/runtime/lib/lynx/env.js.map +0 -1
- package/runtime/lib/lynx/injectLepusMethods.js.map +0 -1
- package/runtime/lib/lynx/lazy-bundle.js.map +0 -1
- package/runtime/lib/lynx/performance.js.map +0 -1
- package/runtime/lib/lynx/runWithForce.js.map +0 -1
- package/runtime/lib/lynx/suspense.js.map +0 -1
- package/runtime/lib/lynx/tt.js.map +0 -1
- package/runtime/lib/renderToOpcodes/constants.js.map +0 -1
- package/runtime/lib/renderToOpcodes/hydrate.js.map +0 -1
- package/runtime/lib/renderToOpcodes/index.js.map +0 -1
- package/runtime/lib/renderToOpcodes/opcodes.js.map +0 -1
- package/runtime/lib/snapshot/backgroundSnapshot.js.map +0 -1
- package/runtime/lib/snapshot/constants.js.map +0 -1
- package/runtime/lib/snapshot/definition.js.map +0 -1
- package/runtime/lib/snapshot/dynamicPartType.js.map +0 -1
- package/runtime/lib/snapshot/event.js.map +0 -1
- package/runtime/lib/snapshot/gesture.js.map +0 -1
- package/runtime/lib/snapshot/list.js.map +0 -1
- package/runtime/lib/snapshot/platformInfo.js.map +0 -1
- package/runtime/lib/snapshot/ref.js.map +0 -1
- package/runtime/lib/snapshot/snapshot.js.map +0 -1
- package/runtime/lib/snapshot/snapshotInstanceHydrationMap.js.map +0 -1
- package/runtime/lib/snapshot/spread.js.map +0 -1
- package/runtime/lib/snapshot/types.js.map +0 -1
- package/runtime/lib/snapshot/utils.js.map +0 -1
- package/runtime/lib/snapshot/workletEvent.js.map +0 -1
- package/runtime/lib/snapshot/workletRef.js.map +0 -1
- package/runtime/lib/worklet/call/delayedRunOnMainThreadData.js.map +0 -1
- package/runtime/lib/worklet/call/execMap.js.map +0 -1
- package/runtime/lib/worklet/call/functionCall.js.map +0 -1
- package/runtime/lib/worklet/call/runOnBackground.js.map +0 -1
- package/runtime/lib/worklet/call/runOnMainThread.js.map +0 -1
- package/runtime/lib/worklet/call/transformToWorklet.js.map +0 -1
- package/runtime/lib/worklet/ctx.js.map +0 -1
- package/runtime/lib/worklet/destroy.js.map +0 -1
- package/runtime/lib/worklet/functionality.js.map +0 -1
- package/runtime/lib/worklet/hmr.js.map +0 -1
- package/runtime/lib/worklet/indexMap.js.map +0 -1
- package/runtime/lib/worklet/ref/updateInitValue.js.map +0 -1
- package/runtime/lib/worklet/ref/workletRef.js.map +0 -1
- package/runtime/lib/worklet/ref/workletRefPool.js.map +0 -1
- package/testing-library/README.md +0 -109
- /package/runtime/lib/{hooks → core/hooks}/react.d.ts +0 -0
- /package/runtime/lib/{lynx → element-template/lynx}/env.d.ts +0 -0
- /package/runtime/lib/{lynx/calledByNative.d.ts → element-template/native/main-thread-api.d.ts} +0 -0
- /package/runtime/lib/{lynx/component.d.ts → element-template/runtime/components/slot.d.ts} +0 -0
- /package/runtime/lib/{lifecycle/render.d.ts → element-template/runtime/render/render-main-thread.d.ts} +0 -0
- /package/runtime/lib/{debug → shared}/component-stack.d.ts +0 -0
- /package/runtime/lib/{debug → shared}/profile.d.ts +0 -0
- /package/runtime/lib/{renderToOpcodes/constants.d.ts → shared/render-constants.d.ts} +0 -0
- /package/runtime/lib/{alog → snapshot/alog}/elementPAPICall.d.ts +0 -0
- /package/runtime/lib/{alog → snapshot/alog}/index.d.ts +0 -0
- /package/runtime/lib/{alog → snapshot/alog}/index.js +0 -0
- /package/runtime/lib/{alog → snapshot/alog}/render.d.ts +0 -0
- /package/runtime/lib/{compat → snapshot/compat}/componentIs.d.ts +0 -0
- /package/runtime/lib/{compat → snapshot/compat}/componentIs.js +0 -0
- /package/runtime/lib/{compat → snapshot/compat}/lynxComponent.d.ts +0 -0
- /package/runtime/lib/{compat → snapshot/compat}/lynxComponent.js +0 -0
- /package/runtime/lib/{debug → snapshot/debug}/debug.d.ts +0 -0
- /package/runtime/lib/{debug → snapshot/debug}/debug.js +0 -0
- /package/runtime/lib/{debug → snapshot/debug}/describeInvalidValue.d.ts +0 -0
- /package/runtime/lib/{debug → snapshot/debug}/describeInvalidValue.js +0 -0
- /package/runtime/lib/{debug → snapshot/debug}/formatPatch.d.ts +0 -0
- /package/runtime/lib/{debug → snapshot/debug}/formatPatch.js +0 -0
- /package/runtime/lib/{debug → snapshot/debug}/printSnapshot.d.ts +0 -0
- /package/runtime/lib/{debug → snapshot/debug}/printSnapshot.js +0 -0
- /package/runtime/lib/{debug → snapshot/debug}/profileHooks.d.ts +0 -0
- /package/runtime/lib/{debug → snapshot/debug}/vnodeSource.d.ts +0 -0
- /package/runtime/lib/{gesture → snapshot/gesture}/types.d.ts +0 -0
- /package/runtime/lib/{gesture → snapshot/gesture}/types.js +0 -0
- /package/runtime/lib/{lifecycle → snapshot/lifecycle}/constant.d.ts +0 -0
- /package/runtime/lib/{lifecycle → snapshot/lifecycle}/constant.js +0 -0
- /package/runtime/lib/{lifecycle → snapshot/lifecycle}/destroy.d.ts +0 -0
- /package/runtime/lib/{lifecycle → snapshot/lifecycle}/event/delayEvents.d.ts +0 -0
- /package/runtime/lib/{lifecycle → snapshot/lifecycle}/event/delayEvents.js +0 -0
- /package/runtime/lib/{lifecycle → snapshot/lifecycle}/event/delayLifecycleEvents.d.ts +0 -0
- /package/runtime/lib/{lifecycle → snapshot/lifecycle}/event/delayLifecycleEvents.js +0 -0
- /package/runtime/lib/{lifecycle → snapshot/lifecycle}/event/jsReady.d.ts +0 -0
- /package/runtime/lib/{lifecycle → snapshot/lifecycle}/isRendering.d.ts +0 -0
- /package/runtime/lib/{lifecycle → snapshot/lifecycle}/pass.d.ts +0 -0
- /package/runtime/lib/{lifecycle → snapshot/lifecycle}/pass.js +0 -0
- /package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/commit.d.ts +0 -0
- /package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/error.d.ts +0 -0
- /package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/error.js +0 -0
- /package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/globalState.d.ts +0 -0
- /package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/globalState.js +0 -0
- /package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/isMainThreadHydrating.d.ts +0 -0
- /package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/isMainThreadHydrating.js +0 -0
- /package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/snapshotPatchApply.d.ts +0 -0
- /package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/updateMainThread.d.ts +0 -0
- /package/runtime/lib/{lifecycle → snapshot/lifecycle}/patch/updateMainThread.js +0 -0
- /package/runtime/lib/{lifecycle → snapshot/lifecycle}/reload.d.ts +0 -0
- /package/runtime/lib/{list → snapshot/list}/list.d.ts +0 -0
- /package/runtime/lib/{list → snapshot/list}/listUpdateInfo.d.ts +0 -0
- /package/runtime/lib/{list → snapshot/list}/pendingListUpdates.d.ts +0 -0
- /package/runtime/lib/{list → snapshot/list}/pendingListUpdates.js +0 -0
- /package/runtime/lib/{worklet/call/execMap.d.ts → snapshot/lynx/component.d.ts} +0 -0
- /package/runtime/lib/{lynx → snapshot/lynx}/dynamic-js.d.ts +0 -0
- /package/runtime/lib/{lynx → snapshot/lynx}/dynamic-js.js +0 -0
- /package/runtime/lib/{lynx → snapshot/lynx}/injectLepusMethods.d.ts +0 -0
- /package/runtime/lib/{lynx → snapshot/lynx}/injectLepusMethods.js +0 -0
- /package/runtime/lib/{lynx → snapshot/lynx}/lazy-bundle.d.ts +0 -0
- /package/runtime/lib/{lynx → snapshot/lynx}/lazy-bundle.js +0 -0
- /package/runtime/lib/{lynx → snapshot/lynx}/performance.d.ts +0 -0
- /package/runtime/lib/{lynx → snapshot/lynx}/runWithForce.d.ts +0 -0
- /package/runtime/lib/{lynx → snapshot/lynx}/suspense.d.ts +0 -0
- /package/runtime/lib/{lynx → snapshot/lynx}/tt.d.ts +0 -0
- /package/runtime/lib/{renderToOpcodes → snapshot/renderToOpcodes}/hydrate.d.ts +0 -0
- /package/runtime/lib/{renderToOpcodes → snapshot/renderToOpcodes}/index.d.ts +0 -0
- /package/runtime/lib/{renderToOpcodes → snapshot/renderToOpcodes}/opcodes.d.ts +0 -0
- /package/runtime/lib/snapshot/{gesture.d.ts → snapshot/gesture.d.ts} +0 -0
- /package/runtime/lib/snapshot/{list.d.ts → snapshot/list.d.ts} +0 -0
- /package/runtime/lib/snapshot/{list.js → snapshot/list.js} +0 -0
- /package/runtime/lib/snapshot/{platformInfo.d.ts → snapshot/platformInfo.d.ts} +0 -0
- /package/runtime/lib/snapshot/{platformInfo.js → snapshot/platformInfo.js} +0 -0
- /package/runtime/lib/snapshot/{snapshotInstanceHydrationMap.d.ts → snapshot/snapshotInstanceHydrationMap.d.ts} +0 -0
- /package/runtime/lib/snapshot/{snapshotInstanceHydrationMap.js → snapshot/snapshotInstanceHydrationMap.js} +0 -0
- /package/runtime/lib/snapshot/{types.js → snapshot/types.js} +0 -0
- /package/runtime/lib/{worklet → snapshot/worklet}/call/delayedRunOnMainThreadData.d.ts +0 -0
- /package/runtime/lib/{worklet → snapshot/worklet}/call/delayedRunOnMainThreadData.js +0 -0
- /package/runtime/lib/{worklet/call/transformToWorklet.d.ts → snapshot/worklet/call/execMap.d.ts} +0 -0
- /package/runtime/lib/{worklet → snapshot/worklet}/call/execMap.js +0 -0
- /package/runtime/lib/{worklet → snapshot/worklet}/call/functionCall.d.ts +0 -0
- /package/runtime/lib/{worklet → snapshot/worklet}/call/functionCall.js +0 -0
- /package/runtime/lib/{worklet → snapshot/worklet}/call/runOnBackground.d.ts +0 -0
- /package/runtime/lib/{worklet → snapshot/worklet}/call/runOnBackground.js +0 -0
- /package/runtime/lib/{worklet → snapshot/worklet}/call/runOnMainThread.d.ts +0 -0
- /package/runtime/lib/{worklet → snapshot/worklet}/call/runOnMainThread.js +0 -0
- /package/runtime/lib/{worklet/ctx.d.ts → snapshot/worklet/call/transformToWorklet.d.ts} +0 -0
- /package/runtime/lib/{worklet → snapshot/worklet}/call/transformToWorklet.js +0 -0
- /package/runtime/lib/{worklet → snapshot/worklet}/ctx.js +0 -0
- /package/runtime/lib/{worklet → snapshot/worklet}/destroy.d.ts +0 -0
- /package/runtime/lib/{worklet → snapshot/worklet}/destroy.js +0 -0
- /package/runtime/lib/{worklet → snapshot/worklet}/functionality.d.ts +0 -0
- /package/runtime/lib/{worklet → snapshot/worklet}/hmr.d.ts +0 -0
- /package/runtime/lib/{worklet → snapshot/worklet}/hmr.js +0 -0
- /package/runtime/lib/{worklet → snapshot/worklet}/indexMap.d.ts +0 -0
- /package/runtime/lib/{worklet → snapshot/worklet}/indexMap.js +0 -0
- /package/runtime/lib/{worklet → snapshot/worklet}/ref/updateInitValue.d.ts +0 -0
- /package/runtime/lib/{worklet → snapshot/worklet}/ref/updateInitValue.js +0 -0
- /package/runtime/lib/{worklet → snapshot/worklet}/ref/workletRef.d.ts +0 -0
- /package/runtime/lib/{worklet → snapshot/worklet}/ref/workletRefPool.d.ts +0 -0
- /package/runtime/lib/{worklet → snapshot/worklet}/ref/workletRefPool.js +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// Copyright 2024 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 { profileEnd, profileStart } from '
|
|
4
|
+
import { profileEnd, profileStart } from '../../shared/profile.js';
|
|
5
5
|
import { componentAtIndexFactory, enqueueComponentFactory, gRecycleMap, gSignMap } from '../list/list.js';
|
|
6
6
|
import { __pendingListUpdates } from '../list/pendingListUpdates.js';
|
|
7
7
|
import { DynamicPartType } from '../snapshot/dynamicPartType.js';
|
|
8
8
|
import { unref } from '../snapshot/ref.js';
|
|
9
|
-
import { isEmptyObject } from '
|
|
9
|
+
import { isEmptyObject } from '../../utils.js';
|
|
10
10
|
const UNREACHABLE_ITEM_KEY_NOT_FOUND = 'UNREACHABLE_ITEM_KEY_NOT_FOUND';
|
|
11
11
|
export function isEmptyDiffResult(diffResult) {
|
|
12
12
|
const hasChanged = !isEmptyObject(diffResult.i)
|
|
@@ -205,11 +205,18 @@ export function hydrate(before, after, options) {
|
|
|
205
205
|
hydrate(v1, v2, options);
|
|
206
206
|
break;
|
|
207
207
|
}
|
|
208
|
+
case DynamicPartType.SlotV2:
|
|
208
209
|
case DynamicPartType.Children: {
|
|
209
|
-
|
|
210
|
+
let filteredBeforeChildNodes = beforeChildNodes;
|
|
211
|
+
let filteredAfterChildNodes = afterChildNodes;
|
|
212
|
+
if (type === DynamicPartType.SlotV2) {
|
|
213
|
+
filteredBeforeChildNodes = beforeChildNodes.filter(v => v.__slotIndex === index);
|
|
214
|
+
filteredAfterChildNodes = afterChildNodes.filter(v => v.__slotIndex === index);
|
|
215
|
+
}
|
|
216
|
+
const diffResult = diffArrayLepus(filteredBeforeChildNodes, filteredAfterChildNodes, (a, b) => a.type === b.type, (a, b) => {
|
|
210
217
|
hydrate(a, b, options);
|
|
211
218
|
}, false);
|
|
212
|
-
diffArrayAction(
|
|
219
|
+
diffArrayAction(filteredBeforeChildNodes, diffResult, (node, target) => {
|
|
213
220
|
node.ensureElements();
|
|
214
221
|
__InsertElementBefore(before.__elements[elementIndex], node.__element_root, target?.__element_root);
|
|
215
222
|
return node;
|
|
@@ -221,14 +228,21 @@ export function hydrate(before, after, options) {
|
|
|
221
228
|
});
|
|
222
229
|
break;
|
|
223
230
|
}
|
|
231
|
+
case DynamicPartType.ListSlotV2:
|
|
224
232
|
case DynamicPartType.ListChildren: {
|
|
233
|
+
let filteredBeforeChildNodes = beforeChildNodes;
|
|
234
|
+
let filteredAfterChildNodes = afterChildNodes;
|
|
235
|
+
if (type === DynamicPartType.ListSlotV2) {
|
|
236
|
+
filteredBeforeChildNodes = beforeChildNodes.filter(v => v.__slotIndex === index);
|
|
237
|
+
filteredAfterChildNodes = afterChildNodes.filter(v => v.__slotIndex === index);
|
|
238
|
+
}
|
|
225
239
|
const removals = [];
|
|
226
240
|
const insertions = [];
|
|
227
241
|
const updateAction = [];
|
|
228
242
|
const listID = __GetElementUniqueID(before.__elements[elementIndex]);
|
|
229
243
|
const signMap = gSignMap[listID];
|
|
230
244
|
const recycleMap = gRecycleMap[listID];
|
|
231
|
-
const diffResult = diffArrayLepus(
|
|
245
|
+
const diffResult = diffArrayLepus(filteredBeforeChildNodes, filteredAfterChildNodes, (a, b) => a.type === b.type, (a, b, _oldIndex, newIndex) => {
|
|
232
246
|
if (JSON.stringify(a.__listItemPlatformInfo)
|
|
233
247
|
!== JSON.stringify(b.__listItemPlatformInfo)) {
|
|
234
248
|
updateAction.push({
|
|
@@ -300,7 +314,10 @@ export function hydrate(before, after, options) {
|
|
|
300
314
|
if (typeof __PROFILE__ !== 'undefined' && __PROFILE__) {
|
|
301
315
|
profileEnd();
|
|
302
316
|
}
|
|
317
|
+
break;
|
|
303
318
|
}
|
|
319
|
+
default:
|
|
320
|
+
throw new Error('Unexpected slot type: ' + type);
|
|
304
321
|
}
|
|
305
322
|
});
|
|
306
323
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hydrate.js","sourceRoot":"","sources":["../../../src/snapshot/renderToOpcodes/hydrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
// @ts-nocheck
|
|
10
10
|
import { Fragment, h, options, isValidElement } from 'preact';
|
|
11
11
|
import { SnapshotInstance } from '../snapshot/snapshot.js';
|
|
12
|
-
import { CHILDREN, COMMIT, COMPONENT, DIFF, DIFF2, DIFFED, DIRTY, NEXT_STATE, PARENT, RENDER, SKIP_EFFECTS, VNODE, HOOK, CHILD_DID_SUSPEND, } from '
|
|
12
|
+
import { CHILDREN, COMMIT, COMPONENT, DIFF, DIFF2, DIFFED, DIRTY, NEXT_STATE, PARENT, RENDER, SKIP_EFFECTS, VNODE, HOOK, CHILD_DID_SUSPEND, } from '../../shared/render-constants.js';
|
|
13
13
|
/** @typedef {import('preact').VNode} VNode */
|
|
14
14
|
const EMPTY_ARR = [];
|
|
15
15
|
const isArray = /* @__PURE__ */ Array.isArray;
|
|
@@ -39,7 +39,7 @@ export function renderToString(vnode, context, into) {
|
|
|
39
39
|
parent[CHILDREN] = [vnode];
|
|
40
40
|
const opcodes = [];
|
|
41
41
|
try {
|
|
42
|
-
_renderToString(vnode, context || EMPTY_OBJ,
|
|
42
|
+
_renderToString(vnode, context || EMPTY_OBJ, 0, undefined, parent, opcodes, 0, into);
|
|
43
43
|
}
|
|
44
44
|
finally {
|
|
45
45
|
// options._commit, we don't schedule any effects in this library right now,
|
|
@@ -96,14 +96,14 @@ function renderClassComponent(vnode, context) {
|
|
|
96
96
|
* Recursively render VNodes to HTML.
|
|
97
97
|
* @param {VNode|any} vnode
|
|
98
98
|
* @param {any} context
|
|
99
|
-
* @param {
|
|
99
|
+
* @param {number | true} slotIndex
|
|
100
100
|
* @param {any} selectValue
|
|
101
101
|
* @param {VNode} parent
|
|
102
102
|
* @param {any[]} opcodes
|
|
103
103
|
* @param {number} opcodesLength
|
|
104
104
|
* @param {SnapshotInstance} into
|
|
105
105
|
*/
|
|
106
|
-
function _renderToString(vnode, context,
|
|
106
|
+
function _renderToString(vnode, context, slotIndex, selectValue, parent, opcodes, opcodesLength, into) {
|
|
107
107
|
// Ignore non-rendered VNodes/values
|
|
108
108
|
if (vnode == null || vnode === true || vnode === false || vnode === '') {
|
|
109
109
|
return;
|
|
@@ -113,7 +113,7 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent, opcodes
|
|
|
113
113
|
if (vnodeType !== 'object') {
|
|
114
114
|
if (vnodeType === 'function')
|
|
115
115
|
return;
|
|
116
|
-
renderToTextNode(into, vnode
|
|
116
|
+
renderToTextNode(into, vnode, opcodes, slotIndex);
|
|
117
117
|
return;
|
|
118
118
|
}
|
|
119
119
|
// Recurse into children / Arrays
|
|
@@ -123,7 +123,7 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent, opcodes
|
|
|
123
123
|
const child = vnode[i];
|
|
124
124
|
if (child == null || typeof child === 'boolean')
|
|
125
125
|
continue;
|
|
126
|
-
_renderToString(child, context,
|
|
126
|
+
_renderToString(child, context, slotIndex === true ? i : slotIndex, selectValue, parent, opcodes,
|
|
127
127
|
/* v8 ignore start */
|
|
128
128
|
__ENABLE_SSR__ ? opcodes.length : 0,
|
|
129
129
|
/* v8 ignore end */
|
|
@@ -195,7 +195,7 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent, opcodes
|
|
|
195
195
|
let lastChild = into.__lastChild;
|
|
196
196
|
// Recurse into children before invoking the after-diff hook
|
|
197
197
|
try {
|
|
198
|
-
_renderToString(rendered, context,
|
|
198
|
+
_renderToString(rendered, context, slotIndex, selectValue, vnode, opcodes,
|
|
199
199
|
/* v8 ignore start */
|
|
200
200
|
__ENABLE_SSR__ ? opcodes.length : 0,
|
|
201
201
|
/* v8 ignore end */
|
|
@@ -216,7 +216,7 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent, opcodes
|
|
|
216
216
|
if (__ENABLE_SSR__) {
|
|
217
217
|
opcodes.length = opcodesLength;
|
|
218
218
|
}
|
|
219
|
-
_renderToString(rendered, context,
|
|
219
|
+
_renderToString(rendered, context, slotIndex, selectValue, vnode, opcodes,
|
|
220
220
|
/* v8 ignore start */
|
|
221
221
|
__ENABLE_SSR__ ? opcodes.length : 0,
|
|
222
222
|
/* v8 ignore end */
|
|
@@ -237,6 +237,7 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent, opcodes
|
|
|
237
237
|
return;
|
|
238
238
|
}
|
|
239
239
|
let children;
|
|
240
|
+
let hasNamedChildren = false;
|
|
240
241
|
// hack for runtime test
|
|
241
242
|
if (process.env['NODE_ENV'] === 'test' && isValidElement(vnode) && typeof vnode.type === 'string') {
|
|
242
243
|
vnode = Object.assign(new SnapshotInstance(type), vnode, { $$typeof: undefined });
|
|
@@ -246,8 +247,9 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent, opcodes
|
|
|
246
247
|
vnode = new SnapshotInstance(type);
|
|
247
248
|
}
|
|
248
249
|
if (__ENABLE_SSR__) {
|
|
249
|
-
opcodes.push(__OpBegin, vnode);
|
|
250
|
+
opcodes.push(__OpBegin, vnode, slotIndex);
|
|
250
251
|
}
|
|
252
|
+
vnode.__slotIndex = slotIndex;
|
|
251
253
|
into.insertBefore(vnode);
|
|
252
254
|
for (const name in props) {
|
|
253
255
|
const v = props[name];
|
|
@@ -262,7 +264,14 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent, opcodes
|
|
|
262
264
|
case '__self':
|
|
263
265
|
case '__source':
|
|
264
266
|
continue;
|
|
265
|
-
default: {
|
|
267
|
+
default: {
|
|
268
|
+
if (name.startsWith('$')) {
|
|
269
|
+
children ??= [];
|
|
270
|
+
children[+name.slice(1)] = v;
|
|
271
|
+
hasNamedChildren = true;
|
|
272
|
+
continue;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
266
275
|
}
|
|
267
276
|
// write this attribute to the buffer
|
|
268
277
|
if (v != null && v !== false && typeof v !== 'function') {
|
|
@@ -275,11 +284,22 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent, opcodes
|
|
|
275
284
|
let childrenType = typeof children;
|
|
276
285
|
if (childrenType === 'string' || childrenType === 'number') {
|
|
277
286
|
// single text child
|
|
278
|
-
renderToTextNode(vnode, children, opcodes);
|
|
287
|
+
renderToTextNode(vnode, children, opcodes, slotIndex);
|
|
279
288
|
}
|
|
280
289
|
else if (children != null && children !== false && children !== true) {
|
|
281
290
|
// recurse into this element VNode's children
|
|
282
|
-
|
|
291
|
+
let _slotIndex = slotIndex;
|
|
292
|
+
if (hasNamedChildren) {
|
|
293
|
+
// @ts-expect-error children must be an array
|
|
294
|
+
if (children.length === 1) {
|
|
295
|
+
children = children[0];
|
|
296
|
+
_slotIndex = 0;
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
_slotIndex = true;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
_renderToString(children, context, _slotIndex, selectValue, vnode, opcodes,
|
|
283
303
|
/* v8 ignore start */
|
|
284
304
|
__ENABLE_SSR__ ? opcodes.length : 0,
|
|
285
305
|
/* v8 ignore end */
|
|
@@ -300,14 +320,15 @@ function _renderToString(vnode, context, isSvgMode, selectValue, parent, opcodes
|
|
|
300
320
|
function doRender(props, state, context) {
|
|
301
321
|
return this.constructor(props, context);
|
|
302
322
|
}
|
|
303
|
-
function renderToTextNode(into, text, opcodes) {
|
|
323
|
+
function renderToTextNode(into, text, opcodes, slotIndex) {
|
|
304
324
|
const textNode = new SnapshotInstance(null);
|
|
325
|
+
textNode.__slotIndex = slotIndex;
|
|
305
326
|
textNode.setAttribute(0, text);
|
|
306
327
|
into.insertBefore(textNode);
|
|
307
328
|
if (__ENABLE_SSR__) {
|
|
308
329
|
// We need store the just created SnapshotInstance, or it will be lost when we leave the function
|
|
309
330
|
text = [textNode, text];
|
|
310
|
-
opcodes.push(__OpText, text);
|
|
331
|
+
opcodes.push(__OpText, text, slotIndex);
|
|
311
332
|
}
|
|
312
333
|
}
|
|
313
334
|
export default renderToString;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/snapshot/renderToOpcodes/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// LICENSE file in the root directory of this source tree.
|
|
4
4
|
import { hydrate } from './hydrate.js';
|
|
5
5
|
import { componentAtIndexFactory, enqueueComponentFactory, gRecycleMap, gSignMap } from '../list/list.js';
|
|
6
|
-
import { CHILDREN } from '
|
|
6
|
+
import { CHILDREN } from '../../shared/render-constants.js';
|
|
7
7
|
import { SnapshotInstance } from '../snapshot/snapshot.js';
|
|
8
8
|
const OpcodeBegin = 0;
|
|
9
9
|
const OpcodeEnd = 1;
|
|
@@ -20,9 +20,10 @@ export function ssrHydrateByOpcodes(opcodes, into, refMap) {
|
|
|
20
20
|
const [type, __id, elements] = opcodes[i + 1];
|
|
21
21
|
top = new SnapshotInstance(type, __id);
|
|
22
22
|
top.__pendingElements = elements;
|
|
23
|
+
top.__slotIndex = opcodes[i + 2];
|
|
23
24
|
p.insertBefore(top);
|
|
24
25
|
stack.push(top);
|
|
25
|
-
i +=
|
|
26
|
+
i += 3;
|
|
26
27
|
break;
|
|
27
28
|
}
|
|
28
29
|
case OpcodeEnd: {
|
|
@@ -63,11 +64,12 @@ export function ssrHydrateByOpcodes(opcodes, into, refMap) {
|
|
|
63
64
|
case OpcodeText: {
|
|
64
65
|
const [[type, __id, elements], text] = opcodes[i + 1];
|
|
65
66
|
const s = new SnapshotInstance(type, __id);
|
|
67
|
+
s.__slotIndex = opcodes[i + 2];
|
|
66
68
|
s.setAttribute(0, text);
|
|
67
69
|
top.insertBefore(s);
|
|
68
70
|
s.__elements = elements.map(({ ssrID }) => refMap[ssrID]);
|
|
69
71
|
s.__element_root = s.__elements[0];
|
|
70
|
-
i +=
|
|
72
|
+
i += 3;
|
|
71
73
|
break;
|
|
72
74
|
}
|
|
73
75
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opcodes.js","sourceRoot":"","sources":["../../../src/snapshot/renderToOpcodes/opcodes.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,9 +15,10 @@ export declare class BackgroundSnapshotInstance {
|
|
|
15
15
|
type: string;
|
|
16
16
|
constructor(type: string);
|
|
17
17
|
__id: number;
|
|
18
|
-
__values:
|
|
18
|
+
__values: unknown[] | undefined;
|
|
19
19
|
__snapshot_def: Snapshot;
|
|
20
20
|
__extraProps?: Record<string, unknown> | undefined;
|
|
21
|
+
__slotIndex: number;
|
|
21
22
|
private __parent;
|
|
22
23
|
private __firstChild;
|
|
23
24
|
private __lastChild;
|
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
// Copyright 2024 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 { snapshotManager } from './definition.js';
|
|
4
|
+
import { createRuntimeSnapshot, snapshotManager } from './definition.js';
|
|
5
5
|
import { DynamicPartType } from './dynamicPartType.js';
|
|
6
|
-
import {
|
|
6
|
+
import { reconstructInstanceTree } from './reconstructInstanceTree.js';
|
|
7
|
+
import { applyRef, clearQueuedRefs, getRefFromValue, queueRefAttrUpdate } from './ref.js';
|
|
7
8
|
import { snapshotCreatorMap } from './snapshot.js';
|
|
8
9
|
import { hydrationMap } from './snapshotInstanceHydrationMap.js';
|
|
9
10
|
import { transformSpread } from './spread.js';
|
|
10
|
-
import { traverseSnapshotInstance } from './utils.js';
|
|
11
|
-
import { profileEnd, profileStart } from '
|
|
11
|
+
import { isCompiledSnapshot, traverseSnapshotInstance } from './utils.js';
|
|
12
|
+
import { profileEnd, profileStart } from '../../shared/profile.js';
|
|
13
|
+
import { isDirectOrDeepEqual } from '../../utils.js';
|
|
12
14
|
import { clearSnapshotVNodeSource, getSnapshotVNodeSource, moveSnapshotVNodeSource } from '../debug/vnodeSource.js';
|
|
13
|
-
import {
|
|
15
|
+
import { prepareGestureForCommit } from '../gesture/processGestureBagkround.js';
|
|
14
16
|
import { globalBackgroundSnapshotInstancesToRemove } from '../lifecycle/patch/globalState.js';
|
|
15
17
|
import { SnapshotOperation, __globalSnapshotPatch, initGlobalSnapshotPatch, takeGlobalSnapshotPatch, } from '../lifecycle/patch/snapshotPatch.js';
|
|
16
18
|
import { globalPipelineOptions } from '../lynx/performance.js';
|
|
19
|
+
import { clearPendingPortalInsertBefore } from '../lynx/portalsPending.js';
|
|
17
20
|
import { diffArrayAction, diffArrayLepus } from '../renderToOpcodes/hydrate.js';
|
|
18
|
-
import { isDirectOrDeepEqual } from '../utils.js';
|
|
19
21
|
import { onPostWorkletCtx } from '../worklet/ctx.js';
|
|
20
22
|
/**
|
|
21
23
|
* Background snapshot instance manager that manages all background snapshot instances.
|
|
@@ -62,6 +64,13 @@ export const backgroundSnapshotInstanceManager = {
|
|
|
62
64
|
if (!ctx) {
|
|
63
65
|
return null;
|
|
64
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* 1. normal event
|
|
69
|
+
* `${ctx.__id}:${expIndex}:${spreadKey}`
|
|
70
|
+
* 2. defer list event
|
|
71
|
+
* ${ctx.__id}:__extraProps:onRecycleComponent`
|
|
72
|
+
* ${ctx.__id}:__extraProps:onComponentAtIndex`
|
|
73
|
+
*/
|
|
65
74
|
const spreadKey = res[2];
|
|
66
75
|
if (res[1] === '__extraProps') {
|
|
67
76
|
if (spreadKey) {
|
|
@@ -79,6 +88,37 @@ export const backgroundSnapshotInstanceManager = {
|
|
|
79
88
|
}
|
|
80
89
|
},
|
|
81
90
|
};
|
|
91
|
+
function prepareWorkletForCommit(worklet) {
|
|
92
|
+
// Copy-on-commit: do not mutate the background-side worklet ctx.
|
|
93
|
+
// `_execId` is injected into the payload object that will be sent to the main thread.
|
|
94
|
+
return onPostWorkletCtx({ ...worklet });
|
|
95
|
+
}
|
|
96
|
+
function prepareSpreadForCommit(spread, oldSpread) {
|
|
97
|
+
let committed;
|
|
98
|
+
for (const key in spread) {
|
|
99
|
+
const v = spread[key];
|
|
100
|
+
if (key === '__lynx_timing_flag' && oldSpread?.[key] != v && globalPipelineOptions) {
|
|
101
|
+
globalPipelineOptions.needTimestamps = true;
|
|
102
|
+
}
|
|
103
|
+
if (!v || typeof v !== 'object') {
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
const valueRecord = v;
|
|
107
|
+
let committedValue;
|
|
108
|
+
if ('_wkltId' in valueRecord) {
|
|
109
|
+
committedValue = prepareWorkletForCommit(v);
|
|
110
|
+
}
|
|
111
|
+
else if ('__isGesture' in valueRecord) {
|
|
112
|
+
committedValue = prepareGestureForCommit(v);
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
committed ??= { ...spread };
|
|
118
|
+
committed[key] = committedValue;
|
|
119
|
+
}
|
|
120
|
+
return committed ?? spread;
|
|
121
|
+
}
|
|
82
122
|
export class BackgroundSnapshotInstance {
|
|
83
123
|
type;
|
|
84
124
|
constructor(type) {
|
|
@@ -88,9 +128,13 @@ export class BackgroundSnapshotInstance {
|
|
|
88
128
|
if (snapshotCreatorMap[type]) {
|
|
89
129
|
snapshotCreatorMap[type](type);
|
|
90
130
|
}
|
|
91
|
-
else {
|
|
131
|
+
else if (isCompiledSnapshot(type)) {
|
|
92
132
|
throw new Error('BackgroundSnapshot not found: ' + type);
|
|
93
133
|
}
|
|
134
|
+
else {
|
|
135
|
+
// add runtime snapshot to backgroundSnapshotInstanceManager
|
|
136
|
+
createRuntimeSnapshot(type);
|
|
137
|
+
}
|
|
94
138
|
}
|
|
95
139
|
this.__snapshot_def = snapshotManager.values.get(type);
|
|
96
140
|
const id = this.__id = backgroundSnapshotInstanceManager.nextId += 1;
|
|
@@ -101,6 +145,7 @@ export class BackgroundSnapshotInstance {
|
|
|
101
145
|
__values;
|
|
102
146
|
__snapshot_def;
|
|
103
147
|
__extraProps;
|
|
148
|
+
__slotIndex = 0;
|
|
104
149
|
__parent = null;
|
|
105
150
|
__firstChild = null;
|
|
106
151
|
__lastChild = null;
|
|
@@ -131,7 +176,7 @@ export class BackgroundSnapshotInstance {
|
|
|
131
176
|
reconstructInstanceTree([node], this.__id, beforeNode?.__id);
|
|
132
177
|
}
|
|
133
178
|
else {
|
|
134
|
-
__globalSnapshotPatch?.push(SnapshotOperation.InsertBefore, this.__id, node.__id, beforeNode?.__id);
|
|
179
|
+
__globalSnapshotPatch?.push(SnapshotOperation.InsertBefore, this.__id, node.__id, beforeNode?.__id, node.__slotIndex);
|
|
135
180
|
}
|
|
136
181
|
// If the node already has a parent, remove it from its current parent
|
|
137
182
|
const p = node.__parent;
|
|
@@ -262,15 +307,11 @@ export class BackgroundSnapshotInstance {
|
|
|
262
307
|
}
|
|
263
308
|
else {
|
|
264
309
|
this.__snapshot_def.refAndSpreadIndexes?.forEach((index) => {
|
|
310
|
+
// In first render, this.__values is undefined.
|
|
311
|
+
// In next rerenders before hydration, this.__values is not undefined.
|
|
312
|
+
const oldValue = this.__values?.[index];
|
|
265
313
|
const v = value[index];
|
|
266
|
-
|
|
267
|
-
if ('__spread' in v && 'ref' in v) {
|
|
268
|
-
queueRefAttrUpdate(null, v.ref, this.__id, index);
|
|
269
|
-
}
|
|
270
|
-
else if ('__ref' in v) {
|
|
271
|
-
queueRefAttrUpdate(null, v, this.__id, index);
|
|
272
|
-
}
|
|
273
|
-
}
|
|
314
|
+
queueRefAttrUpdate(getRefFromValue(oldValue), getRefFromValue(v), this.__id, index);
|
|
274
315
|
});
|
|
275
316
|
}
|
|
276
317
|
this.__values = value;
|
|
@@ -310,35 +351,34 @@ export class BackgroundSnapshotInstance {
|
|
|
310
351
|
// use __spread to cache the transform result for next diff
|
|
311
352
|
newValueObj['__spread'] = newSpread;
|
|
312
353
|
queueRefAttrUpdate(oldSpread && (oldValue.ref), newValueObj['ref'], this.__id, index);
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
continue;
|
|
318
|
-
}
|
|
319
|
-
if (newSpreadValue._wkltId) {
|
|
320
|
-
newSpread[key] = onPostWorkletCtx(newSpreadValue);
|
|
321
|
-
}
|
|
322
|
-
else if (newSpreadValue.__isGesture) {
|
|
323
|
-
processGestureBackground(newSpreadValue);
|
|
324
|
-
}
|
|
325
|
-
else if (key == '__lynx_timing_flag' && oldSpread?.[key] != newSpreadValue && globalPipelineOptions) {
|
|
326
|
-
globalPipelineOptions.needTimestamps = true;
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
return { needUpdate, valueToCommit: newSpread };
|
|
354
|
+
return {
|
|
355
|
+
needUpdate,
|
|
356
|
+
valueToCommit: needUpdate ? prepareSpreadForCommit(newSpread, oldSpread) : newSpread,
|
|
357
|
+
};
|
|
331
358
|
}
|
|
332
359
|
if ('__ref' in newValueObj) {
|
|
333
360
|
queueRefAttrUpdate(oldValue, newValueObj, this.__id, index);
|
|
334
361
|
return { needUpdate: false, valueToCommit: 1 };
|
|
335
362
|
}
|
|
336
363
|
if ('_wkltId' in newValueObj) {
|
|
337
|
-
|
|
364
|
+
// Worklet ctx can be stable across rerenders (e.g. memoized by the user).
|
|
365
|
+
// In that case we should NOT re-register / re-send it, otherwise `_execId` churn
|
|
366
|
+
// will cause unnecessary patches.
|
|
367
|
+
const needUpdate = oldValue !== newValue;
|
|
368
|
+
return {
|
|
369
|
+
needUpdate,
|
|
370
|
+
valueToCommit: needUpdate ? prepareWorkletForCommit(newValueObj) : newValue,
|
|
371
|
+
};
|
|
338
372
|
}
|
|
339
373
|
if ('__isGesture' in newValueObj) {
|
|
340
|
-
|
|
341
|
-
|
|
374
|
+
// Gestures are large objects; if the reference is stable, avoid reprocessing and patching.
|
|
375
|
+
const needUpdate = oldValue !== newValue;
|
|
376
|
+
return {
|
|
377
|
+
needUpdate,
|
|
378
|
+
valueToCommit: needUpdate
|
|
379
|
+
? prepareGestureForCommit(newValueObj)
|
|
380
|
+
: newValue,
|
|
381
|
+
};
|
|
342
382
|
}
|
|
343
383
|
if ('__ltf' in newValueObj) {
|
|
344
384
|
// __lynx_timing_flag
|
|
@@ -371,37 +411,30 @@ export function hydrate(before, after) {
|
|
|
371
411
|
const helper = (before, after) => {
|
|
372
412
|
hydrationMap.set(after.__id, before.id);
|
|
373
413
|
backgroundSnapshotInstanceManager.updateId(after.__id, before.id);
|
|
414
|
+
// handle value by index
|
|
374
415
|
after.__values?.forEach((value, index) => {
|
|
375
|
-
|
|
416
|
+
// render with different root would cause different values length
|
|
417
|
+
const old = before.values?.[index];
|
|
376
418
|
if (value) {
|
|
377
419
|
if (typeof value === 'object') {
|
|
378
420
|
if ('__spread' in value) {
|
|
379
421
|
// `value.__spread` my contain event ids using snapshot ids before hydration. Remove it.
|
|
380
422
|
delete value.__spread;
|
|
381
423
|
const __spread = transformSpread(after, index, value);
|
|
382
|
-
for
|
|
383
|
-
|
|
384
|
-
if (v && typeof v === 'object') {
|
|
385
|
-
if ('_wkltId' in v) {
|
|
386
|
-
onPostWorkletCtx(v);
|
|
387
|
-
}
|
|
388
|
-
else if ('__isGesture' in v) {
|
|
389
|
-
processGestureBackground(v);
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
}
|
|
424
|
+
// Cache a clean spread for future diffs. For the patch payload, create a committed copy
|
|
425
|
+
// with runtime fields (e.g. `_execId`) injected.
|
|
393
426
|
after.__values[index]['__spread'] = __spread;
|
|
394
|
-
value = __spread;
|
|
427
|
+
value = prepareSpreadForCommit(__spread, old);
|
|
395
428
|
}
|
|
396
429
|
else if ('__ref' in value) {
|
|
397
430
|
// skip patch
|
|
398
431
|
value = old;
|
|
399
432
|
}
|
|
400
433
|
else if ('_wkltId' in value) {
|
|
401
|
-
|
|
434
|
+
value = prepareWorkletForCommit(value);
|
|
402
435
|
}
|
|
403
436
|
else if ('__isGesture' in value) {
|
|
404
|
-
|
|
437
|
+
value = prepareGestureForCommit(value);
|
|
405
438
|
}
|
|
406
439
|
}
|
|
407
440
|
else if (typeof value === 'function') {
|
|
@@ -444,6 +477,7 @@ export function hydrate(before, after) {
|
|
|
444
477
|
}
|
|
445
478
|
}
|
|
446
479
|
});
|
|
480
|
+
// handle extraProps as attributes and set by key
|
|
447
481
|
if (after.__extraProps) {
|
|
448
482
|
for (const key in after.__extraProps) {
|
|
449
483
|
const value = after.__extraProps[key];
|
|
@@ -488,14 +522,22 @@ export function hydrate(before, after) {
|
|
|
488
522
|
helper(v1, v2);
|
|
489
523
|
break;
|
|
490
524
|
}
|
|
525
|
+
case DynamicPartType.SlotV2:
|
|
526
|
+
case DynamicPartType.ListSlotV2:
|
|
491
527
|
case DynamicPartType.Children:
|
|
492
528
|
case DynamicPartType.ListChildren: {
|
|
493
|
-
|
|
529
|
+
let filteredBeforeChildNodes = beforeChildNodes;
|
|
530
|
+
let filteredAfterChildNodes = afterChildNodes;
|
|
531
|
+
if (type === DynamicPartType.SlotV2 || type === DynamicPartType.ListSlotV2) {
|
|
532
|
+
filteredBeforeChildNodes = beforeChildNodes.filter(v => (v.slotIndex ?? 0) === index);
|
|
533
|
+
filteredAfterChildNodes = afterChildNodes.filter(v => v.__slotIndex === index);
|
|
534
|
+
}
|
|
535
|
+
const diffResult = diffArrayLepus(filteredBeforeChildNodes, filteredAfterChildNodes, (a, b) => a.type === b.type, (a, b) => {
|
|
494
536
|
helper(a, b);
|
|
495
537
|
},
|
|
496
538
|
// Should be `false` in hydrate as SerializedSnapshotInstance has no item-key
|
|
497
539
|
false);
|
|
498
|
-
diffArrayAction(
|
|
540
|
+
diffArrayAction(filteredBeforeChildNodes, diffResult, (node, target) => {
|
|
499
541
|
if (shouldProfile) {
|
|
500
542
|
profileStart('ReactLynx::BSI::reconstructInstanceTree', {
|
|
501
543
|
args: {
|
|
@@ -547,24 +589,27 @@ export function hydrate(before, after) {
|
|
|
547
589
|
},
|
|
548
590
|
});
|
|
549
591
|
try {
|
|
550
|
-
__globalSnapshotPatch.push(SnapshotOperation.InsertBefore, before.id, node.id, target?.id);
|
|
592
|
+
__globalSnapshotPatch.push(SnapshotOperation.InsertBefore, before.id, node.id, target?.id, node.slotIndex ?? 0);
|
|
551
593
|
}
|
|
552
594
|
finally {
|
|
553
595
|
profileEnd();
|
|
554
596
|
}
|
|
555
597
|
}
|
|
556
598
|
else {
|
|
557
|
-
__globalSnapshotPatch.push(SnapshotOperation.InsertBefore, before.id, node.id, target?.id);
|
|
599
|
+
__globalSnapshotPatch.push(SnapshotOperation.InsertBefore, before.id, node.id, target?.id, node.slotIndex ?? 0);
|
|
558
600
|
}
|
|
559
601
|
});
|
|
560
602
|
break;
|
|
561
603
|
}
|
|
604
|
+
default:
|
|
605
|
+
throw new Error('Unexpected slot type: ' + type);
|
|
562
606
|
}
|
|
563
607
|
});
|
|
564
608
|
};
|
|
565
609
|
helper(before, after);
|
|
566
610
|
// Hydration should not trigger ref updates. They were incorrectly triggered when using `setAttribute` to add values to the patch list.
|
|
567
611
|
clearQueuedRefs();
|
|
612
|
+
clearPendingPortalInsertBefore();
|
|
568
613
|
return takeGlobalSnapshotPatch();
|
|
569
614
|
}
|
|
570
615
|
finally {
|
|
@@ -573,21 +618,4 @@ export function hydrate(before, after) {
|
|
|
573
618
|
}
|
|
574
619
|
}
|
|
575
620
|
}
|
|
576
|
-
function reconstructInstanceTree(afters, parentId, targetId) {
|
|
577
|
-
for (const child of afters) {
|
|
578
|
-
const id = child.__id;
|
|
579
|
-
__globalSnapshotPatch?.push(SnapshotOperation.CreateElement, child.type, id);
|
|
580
|
-
const values = child.__values;
|
|
581
|
-
if (values) {
|
|
582
|
-
child.__values = undefined;
|
|
583
|
-
child.setAttribute('values', values);
|
|
584
|
-
}
|
|
585
|
-
const extraProps = child.__extraProps;
|
|
586
|
-
for (const key in extraProps) {
|
|
587
|
-
child.setAttribute(key, extraProps[key]);
|
|
588
|
-
}
|
|
589
|
-
reconstructInstanceTree(child.childNodes, id);
|
|
590
|
-
__globalSnapshotPatch?.push(SnapshotOperation.InsertBefore, parentId, id, targetId);
|
|
591
|
-
}
|
|
592
|
-
}
|
|
593
621
|
//# sourceMappingURL=backgroundSnapshot.js.map
|