@lynx-js/react 0.112.1 → 0.112.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/package.json +2 -2
  3. package/refresh/.turbo/turbo-build.log +2 -2
  4. package/refresh/turbo.json +1 -1
  5. package/runtime/lib/backgroundSnapshot.d.ts +1 -0
  6. package/runtime/lib/backgroundSnapshot.js +29 -23
  7. package/runtime/lib/backgroundSnapshot.js.map +1 -1
  8. package/runtime/lib/debug/profile.js +115 -31
  9. package/runtime/lib/debug/profile.js.map +1 -1
  10. package/runtime/lib/index.d.ts +2 -1
  11. package/runtime/lib/index.js +2 -1
  12. package/runtime/lib/index.js.map +1 -1
  13. package/runtime/lib/lifecycle/patch/commit.d.ts +7 -1
  14. package/runtime/lib/lifecycle/patch/commit.js +33 -9
  15. package/runtime/lib/lifecycle/patch/commit.js.map +1 -1
  16. package/runtime/lib/lifecycle/patch/updateMainThread.js +11 -0
  17. package/runtime/lib/lifecycle/patch/updateMainThread.js.map +1 -1
  18. package/runtime/lib/lynx/suspense.d.ts +5 -0
  19. package/runtime/lib/lynx/suspense.js +33 -0
  20. package/runtime/lib/lynx/suspense.js.map +1 -0
  21. package/runtime/lib/lynx.js +5 -3
  22. package/runtime/lib/lynx.js.map +1 -1
  23. package/runtime/lib/renderToOpcodes/index.js +5 -2
  24. package/runtime/lib/renderToOpcodes/index.js.map +1 -1
  25. package/runtime/lib/snapshot/platformInfo.d.ts +1 -0
  26. package/runtime/lib/snapshot/platformInfo.js +5 -1
  27. package/runtime/lib/snapshot/platformInfo.js.map +1 -1
  28. package/runtime/lib/snapshot/spread.js +3 -0
  29. package/runtime/lib/snapshot/spread.js.map +1 -1
  30. package/runtime/lib/snapshot.js +11 -0
  31. package/runtime/lib/snapshot.js.map +1 -1
  32. package/runtime/lib/worklet/transformToWorklet.js +1 -0
  33. package/runtime/lib/worklet/transformToWorklet.js.map +1 -1
  34. package/testing-library/dist/env/vitest.js +43 -3
  35. package/testing-library/dist/pure.js +7 -7
  36. package/transform/dist/wasm.cjs +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,41 @@
1
1
  # @lynx-js/react
2
2
 
3
+ ## 0.112.2
4
+
5
+ ### Patch Changes
6
+
7
+ - Supports `recyclable` attribute in `<list-item>` to control whether the list item is recyclable. The `recyclable` attribute depends on Lynx Engine 3.4 or later. ([#1388](https://github.com/lynx-family/lynx-stack/pull/1388))
8
+
9
+ ```jsx
10
+ <list-item recyclable={false} />;
11
+ ```
12
+
13
+ - feat: Support using a host element as direct child of Suspense ([#1455](https://github.com/lynx-family/lynx-stack/pull/1455))
14
+
15
+ - Add profile in production build: ([#1336](https://github.com/lynx-family/lynx-stack/pull/1336))
16
+
17
+ 1. `diff:__COMPONENT_NAME__`: how long ReactLynx diff took.
18
+ 2. `render:__COMPONENT_NAME__`: how long your render function took.
19
+ 3. `setState`: an instant trace event, indicate when your setState was called.
20
+
21
+ NOTE: `__COMPONENT_NAME__` may be unreadable when minified, setting `displayName` may help.
22
+
23
+ - Add `onBackgroundSnapshotInstanceUpdateId` event on dev for Preact Devtools to keep the correct snapshotInstanceId info. ([#1173](https://github.com/lynx-family/lynx-stack/pull/1173))
24
+
25
+ - fix: Prevent error when spreading component props onto an element ([#1459](https://github.com/lynx-family/lynx-stack/pull/1459))
26
+
27
+ - fix: Correctly check for the existence of background functions in MTS ([#1416](https://github.com/lynx-family/lynx-stack/pull/1416))
28
+
29
+ ```ts
30
+ function handleTap() {
31
+ 'main thread';
32
+ // The following check always returned false before this fix
33
+ if (myHandleTap) {
34
+ runOnBackground(myHandleTap)();
35
+ }
36
+ }
37
+ ```
38
+
3
39
  ## 0.112.1
4
40
 
5
41
  ### Patch Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lynx-js/react",
3
- "version": "0.112.1",
3
+ "version": "0.112.2",
4
4
  "description": "ReactLynx is a framework for developing Lynx applications with familiar React.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -171,7 +171,7 @@
171
171
  "README.zh.md"
172
172
  ],
173
173
  "dependencies": {
174
- "preact": "npm:@hongzhiyuan/preact@10.24.0-27dc9d8f"
174
+ "preact": "npm:@hongzhiyuan/preact@10.24.0-00213bad"
175
175
  },
176
176
  "devDependencies": {
177
177
  "@lynx-js/types": "3.3.0",
@@ -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.11.0
5
+ Rslib v0.11.2
6
6
 
7
7
  info build started...
8
- ready built in 0.17 s
8
+ ready built in 0.15 s
9
9
 
10
10
  File (esm) Size 
11
11
  dist/index.js 10.5 kB
@@ -5,7 +5,7 @@
5
5
  "build": {
6
6
  "dependsOn": [],
7
7
  "inputs": [
8
- "src"
8
+ "src/**"
9
9
  ],
10
10
  "outputs": [
11
11
  "dist"
@@ -12,6 +12,7 @@ export declare class BackgroundSnapshotInstance {
12
12
  private __lastChild;
13
13
  private __previousSibling;
14
14
  private __nextSibling;
15
+ private __removed_from_tree?;
15
16
  get parentNode(): BackgroundSnapshotInstance | null;
16
17
  get nextSibling(): BackgroundSnapshotInstance | null;
17
18
  contains(child: BackgroundSnapshotInstance): boolean;
@@ -31,6 +31,7 @@ export class BackgroundSnapshotInstance {
31
31
  __lastChild = null;
32
32
  __previousSibling = null;
33
33
  __nextSibling = null;
34
+ __removed_from_tree;
34
35
  get parentNode() {
35
36
  return this.__parent;
36
37
  }
@@ -43,16 +44,20 @@ export class BackgroundSnapshotInstance {
43
44
  contains(child) {
44
45
  return child.parentNode === this;
45
46
  }
46
- // TODO: write tests for this
47
47
  // This will be called in `lazy`/`Suspense`.
48
- // We currently ignore this since we did not find a way to test.
49
- /* v8 ignore start */
50
48
  appendChild(child) {
51
49
  return this.insertBefore(child);
52
50
  }
53
- /* v8 ignore stop */
54
51
  insertBefore(node, beforeNode) {
55
- __globalSnapshotPatch?.push(SnapshotOperation.InsertBefore, this.__id, node.__id, beforeNode?.__id);
52
+ if (node.__removed_from_tree) {
53
+ node.__removed_from_tree = false;
54
+ // This is only called by `lazy`/`Suspense` through `appendChild` so beforeNode is always undefined.
55
+ /* v8 ignore next */
56
+ reconstructInstanceTree([node], this.__id, beforeNode?.__id);
57
+ }
58
+ else {
59
+ __globalSnapshotPatch?.push(SnapshotOperation.InsertBefore, this.__id, node.__id, beforeNode?.__id);
60
+ }
56
61
  // If the node already has a parent, remove it from its current parent
57
62
  const p = node.__parent;
58
63
  if (p) {
@@ -100,6 +105,7 @@ export class BackgroundSnapshotInstance {
100
105
  }
101
106
  removeChild(node) {
102
107
  __globalSnapshotPatch?.push(SnapshotOperation.RemoveChild, this.__id, node.__id);
108
+ node.__removed_from_tree = true;
103
109
  if (node.__parent !== this) {
104
110
  throw new Error('The node to be removed is not a child of this node.');
105
111
  }
@@ -285,23 +291,6 @@ export class BackgroundSnapshotInstance {
285
291
  }
286
292
  export function hydrate(before, after) {
287
293
  initGlobalSnapshotPatch();
288
- const helper2 = (afters, parentId, targetId) => {
289
- for (const child of afters) {
290
- const id = child.__id;
291
- __globalSnapshotPatch.push(SnapshotOperation.CreateElement, child.type, id);
292
- const values = child.__values;
293
- if (values) {
294
- child.__values = undefined;
295
- child.setAttribute('values', values);
296
- }
297
- const extraProps = child.__extraProps;
298
- for (const key in extraProps) {
299
- child.setAttribute(key, extraProps[key]);
300
- }
301
- helper2(child.childNodes, id);
302
- __globalSnapshotPatch.push(SnapshotOperation.InsertBefore, parentId, id, targetId);
303
- }
304
- };
305
294
  const helper = (before, after) => {
306
295
  hydrationMap.set(after.__id, before.id);
307
296
  backgroundSnapshotInstanceManager.updateId(after.__id, before.id);
@@ -390,7 +379,7 @@ export function hydrate(before, after) {
390
379
  helper(a, b);
391
380
  });
392
381
  diffArrayAction(beforeChildNodes, diffResult, (node, target) => {
393
- helper2([node], before.id, target?.id);
382
+ reconstructInstanceTree([node], before.id, target?.id);
394
383
  return undefined;
395
384
  }, node => {
396
385
  __globalSnapshotPatch.push(SnapshotOperation.RemoveChild, before.id, node.id);
@@ -408,4 +397,21 @@ export function hydrate(before, after) {
408
397
  clearQueuedRefs();
409
398
  return takeGlobalSnapshotPatch();
410
399
  }
400
+ function reconstructInstanceTree(afters, parentId, targetId) {
401
+ for (const child of afters) {
402
+ const id = child.__id;
403
+ __globalSnapshotPatch.push(SnapshotOperation.CreateElement, child.type, id);
404
+ const values = child.__values;
405
+ if (values) {
406
+ child.__values = undefined;
407
+ child.setAttribute('values', values);
408
+ }
409
+ const extraProps = child.__extraProps;
410
+ for (const key in extraProps) {
411
+ child.setAttribute(key, extraProps[key]);
412
+ }
413
+ reconstructInstanceTree(child.childNodes, id);
414
+ __globalSnapshotPatch.push(SnapshotOperation.InsertBefore, parentId, id, targetId);
415
+ }
416
+ }
411
417
  //# sourceMappingURL=backgroundSnapshot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"backgroundSnapshot.js","sourceRoot":"","sources":["../src/backgroundSnapshot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backgroundSnapshot.js","sourceRoot":"","sources":["../src/backgroundSnapshot.ts"],"names":[],"mappings":"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"}
@@ -1,50 +1,134 @@
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 { options } from 'preact';
5
- import { COMPONENT, DIFF, DIFFED, RENDER } from '../renderToOpcodes/constants.js';
6
- import { getDisplayName } from '../utils.js';
4
+ import { Component, options } from 'preact';
5
+ import { globalPatchOptions } from '../lifecycle/patch/commit.js';
6
+ import { __globalSnapshotPatch } from '../lifecycle/patch/snapshotPatch.js';
7
+ import { COMMIT, COMPONENT, DIFF, DIFF2, DIFFED, DIRTY, NEXT_STATE, RENDER } from '../renderToOpcodes/constants.js';
8
+ import { getDisplayName, hook } from '../utils.js';
7
9
  export function initProfileHook() {
8
- const oldDiff = options[DIFF];
9
- options[DIFF] = function (vnode) {
10
- // This __PROFILE__ is used for DCE testing
11
- if (__PROFILE__ && typeof vnode.type === 'function') {
12
- // We only add profiling trace for Component
13
- console.profile(`diff::${getDisplayName(vnode.type)}`);
10
+ // early-exit if required profiling APIs are unavailable
11
+ let p;
12
+ /* v8 ignore start */
13
+ if (!(p = lynx.performance)
14
+ || typeof p.profileStart !== 'function'
15
+ || typeof p.profileEnd !== 'function'
16
+ || typeof p.profileMark !== 'function'
17
+ || typeof p.profileFlowId !== 'function') {
18
+ return;
19
+ }
20
+ /* v8 ignore stop */
21
+ const profileStart = p.profileStart.bind(p);
22
+ const profileEnd = p.profileEnd.bind(p);
23
+ const profileMark = p.profileMark.bind(p);
24
+ const profileFlowId = p.profileFlowId.bind(p);
25
+ // for each setState call, we will add a profiling trace and
26
+ // attach a flowId to the component instance.
27
+ // This allows us to trace the flow of its diffing, committing and patching.
28
+ {
29
+ const sFlowID = Symbol('FLOW_ID');
30
+ if (__BACKGROUND__) {
31
+ function buildSetStateProfileMarkArgs(currentState, nextState) {
32
+ const EMPTY_OBJ = {};
33
+ currentState ??= EMPTY_OBJ;
34
+ nextState ??= EMPTY_OBJ;
35
+ return {
36
+ 'current state keys': JSON.stringify(Object.keys(currentState)),
37
+ 'next state keys': JSON.stringify(Object.keys(nextState)),
38
+ 'changed (shallow diff) state keys': JSON.stringify(
39
+ // the setState is in assign manner, we assume nextState is a superset of currentState
40
+ Object.keys(nextState).filter(key => currentState[key] !== nextState[key])),
41
+ };
42
+ }
43
+ hook(Component.prototype, 'setState', function (old, state, callback) {
44
+ old?.call(this, state, callback);
45
+ if (this[DIRTY]) {
46
+ profileMark('ReactLynx::setState', {
47
+ flowId: this[sFlowID] ??= profileFlowId(),
48
+ args: buildSetStateProfileMarkArgs(this.state, this[NEXT_STATE]),
49
+ });
50
+ }
51
+ });
14
52
  }
15
- oldDiff?.(vnode);
16
- };
17
- const oldDiffed = options[DIFFED];
18
- options[DIFFED] = function (vnode) {
19
- // This __PROFILE__ is used for DCE testing
20
- if (__PROFILE__ && typeof vnode.type === 'function') {
21
- console.profileEnd(); // for options[DIFF]
53
+ hook(options, DIFF2, (old, vnode, oldVNode) => {
54
+ // We only add profiling trace for Component
55
+ if (typeof vnode.type === 'function') {
56
+ const profileOptions = {};
57
+ if (__BACKGROUND__) {
58
+ const c = oldVNode[COMPONENT];
59
+ if (c) {
60
+ const flowId = c[sFlowID];
61
+ delete c[sFlowID];
62
+ if (flowId) {
63
+ globalPatchOptions.flowIds ??= [];
64
+ globalPatchOptions.flowIds.push(flowId);
65
+ profileOptions.flowId = flowId;
66
+ }
67
+ }
68
+ }
69
+ profileStart(`ReactLynx::diff::${ /* #__INLINE__ */getDisplayName(vnode.type)}`, profileOptions);
70
+ }
71
+ old?.(vnode, oldVNode);
72
+ });
73
+ hook(options, DIFFED, (old, vnode) => {
74
+ if (typeof vnode.type === 'function') {
75
+ profileEnd(); // for options[DIFF]
76
+ }
77
+ old?.(vnode);
78
+ });
79
+ if (__BACKGROUND__) {
80
+ hook(options, COMMIT, (old, vnode, commitQueue) => {
81
+ profileStart('ReactLynx::commit', {
82
+ ...globalPatchOptions.flowIds
83
+ ? {
84
+ flowId: globalPatchOptions.flowIds[0],
85
+ flowIds: globalPatchOptions.flowIds,
86
+ }
87
+ : {},
88
+ });
89
+ old?.(vnode, commitQueue);
90
+ profileEnd();
91
+ });
22
92
  }
23
- oldDiffed?.(vnode);
24
- };
93
+ }
25
94
  // Profile the user-provided `render`.
26
- const oldRender = options[RENDER];
27
- options[RENDER] = function (vnode) {
28
- const displayName = getDisplayName(vnode.type);
95
+ hook(options, RENDER, (old, vnode) => {
29
96
  // eslint-disable-next-line @typescript-eslint/unbound-method
30
97
  const originalRender = vnode[COMPONENT].render;
31
98
  vnode[COMPONENT].render = function render(props, state, context) {
32
- // This __PROFILE__ is used for DCE testing
33
- if (__PROFILE__) {
34
- console.profile(`render::${displayName}`);
35
- }
99
+ profileStart(`ReactLynx::render::${ /* #__INLINE__ */getDisplayName(vnode.type)}`);
36
100
  try {
37
101
  return originalRender.call(this, props, state, context);
38
102
  }
39
103
  finally {
40
- // This __PROFILE__ is used for DCE testing
41
- if (__PROFILE__) {
42
- console.profileEnd();
43
- }
104
+ profileEnd();
44
105
  vnode[COMPONENT].render = originalRender;
45
106
  }
46
107
  };
47
- oldRender?.(vnode);
48
- };
108
+ old?.(vnode);
109
+ });
110
+ if (__BACKGROUND__) {
111
+ const sPatchLength = Symbol('PATCH_LENGTH');
112
+ hook(options, DIFF, (old, vnode) => {
113
+ if (typeof vnode.type === 'function' && __globalSnapshotPatch) {
114
+ vnode[sPatchLength] = __globalSnapshotPatch.length;
115
+ }
116
+ old?.(vnode);
117
+ });
118
+ hook(options, DIFFED, (old, vnode) => {
119
+ if (typeof vnode.type === 'function' && __globalSnapshotPatch) {
120
+ if (vnode[sPatchLength] === __globalSnapshotPatch.length) {
121
+ // "NoPatch" is a conventional name in Lynx
122
+ profileMark('ReactLynx::diffFinishNoPatch', {
123
+ args: {
124
+ componentName: /* #__INLINE__ */ getDisplayName(vnode.type),
125
+ },
126
+ });
127
+ }
128
+ delete vnode[sPatchLength];
129
+ }
130
+ old?.(vnode);
131
+ });
132
+ }
49
133
  }
50
134
  //# sourceMappingURL=profile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/debug/profile.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGjC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,UAAU,eAAe;IAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,CAAC,IAAI,CAAC,GAAG,UAAS,KAAY;QACnC,2CAA2C;QAC3C,IAAI,WAAW,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACpD,4CAA4C;YAC5C,OAAO,CAAC,OAAO,CAAC,SAAS,cAAc,CAAC,KAAK,CAAC,IAAsB,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,MAAM,CAAC,GAAG,UAAS,KAAK;QAC9B,2CAA2C;QAC3C,IAAI,WAAW,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACpD,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,oBAAoB;QAC5C,CAAC;QACD,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC,CAAC;IAEF,sCAAsC;IACtC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,MAAM,CAAC,GAAG,UAAS,KAAyC;QAClE,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,IAAsB,CAAC,CAAC;QACjE,6DAA6D;QAC7D,MAAM,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;QAC/C,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,SAAS,MAAM,CAAO,KAAK,EAAE,KAAK,EAAE,OAAO;YACnE,2CAA2C;YAC3C,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CAAC,OAAO,CAAC,WAAW,WAAW,EAAE,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,CAAC;gBACH,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAC1D,CAAC;oBAAS,CAAC;gBACT,2CAA2C;gBAC3C,IAAI,WAAW,EAAE,CAAC;oBAChB,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,CAAC;gBACD,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,cAAc,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC;QACF,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/debug/profile.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import './lynx.js';
2
2
  import './lynx/component.js';
3
- import { Children, Fragment, Suspense, cloneElement, createElement, createRef, forwardRef, isValidElement, memo, useSyncExternalStore } from 'preact/compat';
3
+ import { Children, Fragment, cloneElement, createElement, createRef, forwardRef, isValidElement, memo, useSyncExternalStore } from 'preact/compat';
4
+ import { Suspense } from './lynx/suspense.js';
4
5
  export { Component, createContext } from 'preact';
5
6
  export { PureComponent } from 'preact/compat';
6
7
  export * from './hooks/react.js';
@@ -3,9 +3,10 @@
3
3
  // LICENSE file in the root directory of this source tree.
4
4
  import './lynx.js';
5
5
  import './lynx/component.js';
6
- import { Children, Component, Fragment, PureComponent, Suspense, cloneElement, createContext, createElement, createRef, forwardRef, isValidElement, memo, lazy as preactLazy, useSyncExternalStore, } from 'preact/compat';
6
+ import { Children, Component, Fragment, PureComponent, cloneElement, createContext, createElement, createRef, forwardRef, isValidElement, memo, lazy as preactLazy, useSyncExternalStore, } from 'preact/compat';
7
7
  import { useCallback, useContext, useDebugValue, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState, } from './hooks/react.js';
8
8
  import { loadLazyBundle } from './lynx/lazy-bundle.js';
9
+ import { Suspense } from './lynx/suspense.js';
9
10
  export { Component, createContext } from 'preact';
10
11
  export { PureComponent } from 'preact/compat';
11
12
  export * from './hooks/react.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,OAAO,WAAW,CAAC;AACnB,OAAO,qBAAqB,CAAC;AAC7B,OAAO,EACL,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,aAAa,EACb,SAAS,EACT,UAAU,EACV,cAAc,EACd,IAAI,EACJ,IAAI,IAAI,UAAU,EAClB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,WAAW,EACX,UAAU,EACV,aAAa,EACb,SAAS,EACT,mBAAmB,EACnB,eAAe,EACf,OAAO,EACP,UAAU,EACV,MAAM,EACN,QAAQ,GACT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,cAAc,kBAAkB,CAAC;AAEjC,MAAM,IAAI,GAAwC,aAAa,CAAC,CAAC,GAAG,EAAE;IACpE,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACrC,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC,EAAE,CAAC;AAEL;;GAEG;AACH,eAAe;IACb,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,SAAS;IACT,eAAe;IACf,MAAM;IACN,mBAAmB;IACnB,OAAO;IACP,WAAW;IACX,UAAU;IACV,aAAa;IACb,oBAAoB;IAEpB,aAAa;IACb,SAAS;IACT,QAAQ;IACR,cAAc;IACd,QAAQ;IACR,SAAS;IACT,aAAa;IACb,IAAI;IACJ,UAAU;IACV,QAAQ;IACR,IAAI;IACJ,aAAa;CACd,CAAC;AAEF,OAAO,EACL,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,cAAc,EACd,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,IAAI,EACJ,aAAa,EACb,YAAY,EACZ,oBAAoB,GACrB,CAAC;AAEF,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,OAAO,WAAW,CAAC;AACnB,OAAO,qBAAqB,CAAC;AAC7B,OAAO,EACL,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,aAAa,EACb,aAAa,EACb,SAAS,EACT,UAAU,EACV,cAAc,EACd,IAAI,EACJ,IAAI,IAAI,UAAU,EAClB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,WAAW,EACX,UAAU,EACV,aAAa,EACb,SAAS,EACT,mBAAmB,EACnB,eAAe,EACf,OAAO,EACP,UAAU,EACV,MAAM,EACN,QAAQ,GACT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,cAAc,kBAAkB,CAAC;AAEjC,MAAM,IAAI,GAAwC,aAAa,CAAC,CAAC,GAAG,EAAE;IACpE,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACrC,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC,EAAE,CAAC;AAEL;;GAEG;AACH,eAAe;IACb,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,SAAS;IACT,eAAe;IACf,MAAM;IACN,mBAAmB;IACnB,OAAO;IACP,WAAW;IACX,UAAU;IACV,aAAa;IACb,oBAAoB;IAEpB,aAAa;IACb,SAAS;IACT,QAAQ;IACR,cAAc;IACd,QAAQ;IACR,SAAS;IACT,aAAa;IACb,IAAI;IACJ,UAAU;IACV,QAAQ;IACR,IAAI;IACJ,aAAa;CACd,CAAC;AAEF,OAAO,EACL,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,cAAc,EACd,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,IAAI,EACJ,aAAa,EACb,YAAY,EACZ,oBAAoB,GACrB,CAAC;AAEF,cAAc,eAAe,CAAC"}
@@ -24,7 +24,13 @@ interface PatchOptions {
24
24
  pipelineOptions?: PipelineOptions;
25
25
  reloadVersion: number;
26
26
  isHydration?: boolean;
27
+ flowIds?: number[];
27
28
  }
29
+ /**
30
+ * Allow to pass options to the patch operation
31
+ */
32
+ export type GlobalPatchOptions = Omit<PatchOptions, 'reloadVersion'>;
33
+ export declare let globalPatchOptions: GlobalPatchOptions;
28
34
  /**
29
35
  * Replaces Preact's default commit hook with our custom implementation
30
36
  */
@@ -32,7 +38,7 @@ declare function replaceCommitHook(): void;
32
38
  /**
33
39
  * Prepares the patch update for transmission to the native layer
34
40
  */
35
- declare function commitPatchUpdate(patchList: PatchList, patchOptions: Omit<PatchOptions, 'reloadVersion'>): {
41
+ declare function commitPatchUpdate(patchList: PatchList, patchOptions: GlobalPatchOptions): {
36
42
  data: string;
37
43
  patchOptions: PatchOptions;
38
44
  };
@@ -1,27 +1,52 @@
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
+ /**
5
+ * Implements the commit phase of the rendering lifecycle.
6
+ * This module patches Preact's commit phase to integrate with the snapshot system,
7
+ * handling the collection and transmission of patches between threads.
8
+ *
9
+ * The commit phase is responsible for:
10
+ * - Collecting patches from the snapshot system
11
+ * - Managing commit tasks and their execution
12
+ * - Coordinating with the native layer for updates
13
+ * - Handling performance timing and pipeline options
14
+ */
15
+ /**
16
+ * This module patches Preact's commit phase by hacking into the internal of
17
+ * its [options](https://preactjs.com/guide/v10/options/) API
18
+ */
4
19
  import { options } from 'preact';
5
20
  import { LifecycleConstant } from '../../lifecycleConstant.js';
6
21
  import { globalPipelineOptions, markTiming, markTimingLegacy, setPipeline } from '../../lynx/performance.js';
7
22
  import { COMMIT } from '../../renderToOpcodes/constants.js';
8
23
  import { applyQueuedRefs } from '../../snapshot/ref.js';
9
24
  import { backgroundSnapshotInstanceManager } from '../../snapshot.js';
10
- import { isEmptyObject } from '../../utils.js';
25
+ import { hook, isEmptyObject } from '../../utils.js';
11
26
  import { takeWorkletRefInitValuePatch } from '../../worklet/workletRefPool.js';
12
27
  import { getReloadVersion } from '../pass.js';
13
28
  import { takeGlobalSnapshotPatch } from './snapshotPatch.js';
14
29
  let globalFlushOptions = {};
30
+ function takeGlobalFlushOptions() {
31
+ const res = globalFlushOptions;
32
+ globalFlushOptions = {};
33
+ return res;
34
+ }
15
35
  const globalCommitTaskMap = /*@__PURE__*/ new Map();
16
36
  let nextCommitTaskId = 1;
17
37
  let globalBackgroundSnapshotInstancesToRemove = [];
38
+ export let globalPatchOptions = {};
39
+ function takeGlobalPatchOptions() {
40
+ const res = globalPatchOptions;
41
+ globalPatchOptions = {};
42
+ return res;
43
+ }
18
44
  /**
19
45
  * Replaces Preact's default commit hook with our custom implementation
20
46
  */
21
47
  function replaceCommitHook() {
22
- // This is actually not used since Preact use `hooks._commit` for callbacks of `useLayoutEffect`.
23
- const originalPreactCommit = options[COMMIT];
24
- const commit = async (vnode, commitQueue) => {
48
+ hook(options, COMMIT, (originalPreactCommit, // This is actually not used since Preact use `hooks._commit` for callbacks of `useLayoutEffect`.
49
+ vnode, commitQueue) => {
25
50
  // Skip commit phase for MT runtime
26
51
  if (__MAIN_THREAD__) {
27
52
  // for testing only
@@ -46,9 +71,9 @@ function replaceCommitHook() {
46
71
  });
47
72
  // Collect patches for this update
48
73
  const snapshotPatch = takeGlobalSnapshotPatch();
49
- const flushOptions = globalFlushOptions;
74
+ const flushOptions = takeGlobalFlushOptions();
75
+ const patchOptions = takeGlobalPatchOptions();
50
76
  const workletRefInitValuePatch = takeWorkletRefInitValuePatch();
51
- globalFlushOptions = {};
52
77
  if (!snapshotPatch && workletRefInitValuePatch.length === 0) {
53
78
  // before hydration, skip patch
54
79
  applyQueuedRefs();
@@ -71,7 +96,7 @@ function replaceCommitHook() {
71
96
  if (!isEmptyObject(flushOptions)) {
72
97
  patchList.flushOptions = flushOptions;
73
98
  }
74
- const obj = commitPatchUpdate(patchList, {});
99
+ const obj = commitPatchUpdate(patchList, patchOptions);
75
100
  // Send the update to the native layer
76
101
  lynx.getNativeApp().callLepusMethod(LifecycleConstant.patchUpdate, obj, () => {
77
102
  const commitTask = globalCommitTaskMap.get(commitTaskId);
@@ -82,8 +107,7 @@ function replaceCommitHook() {
82
107
  });
83
108
  applyQueuedRefs();
84
109
  originalPreactCommit?.(vnode, commitQueue);
85
- };
86
- options[COMMIT] = commit;
110
+ });
87
111
  }
88
112
  /**
89
113
  * Prepares the patch update for transmission to the native layer
@@ -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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"}
@@ -14,6 +14,14 @@ function updateMainThread({ data, patchOptions }) {
14
14
  if ((patchOptions.reloadVersion) < getReloadVersion()) {
15
15
  return;
16
16
  }
17
+ const flowIds = patchOptions.flowIds;
18
+ if (flowIds) {
19
+ lynx.performance.profileStart('ReactLynx::patch', {
20
+ flowId: flowIds[0],
21
+ // @ts-expect-error flowIds is not defined in the type, for now
22
+ flowIds,
23
+ });
24
+ }
17
25
  setPipeline(patchOptions.pipelineOptions);
18
26
  markTiming('mtsRenderStart');
19
27
  markTiming('parseChangesStart');
@@ -47,6 +55,9 @@ function updateMainThread({ data, patchOptions }) {
47
55
  flushOptions.pipelineOptions = patchOptions.pipelineOptions;
48
56
  }
49
57
  __FlushElementTree(__page, flushOptions);
58
+ if (flowIds) {
59
+ lynx.performance.profileEnd();
60
+ }
50
61
  }
51
62
  function injectUpdateMainThread() {
52
63
  Object.assign(globalThis, { [LifecycleConstant.patchUpdate]: updateMainThread });