Skip to content

Commit 90c9589

Browse files
committed
[RN] Use microtasks when using bridgeless mode in React Native Fabric renderer (OSS version)
1 parent dfaed55 commit 90c9589

13 files changed

+11
-15
lines changed

.eslintrc.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -427,6 +427,7 @@ module.exports = {
427427
files: ['packages/react-native-renderer/**/*.js'],
428428
globals: {
429429
nativeFabricUIManager: 'readonly',
430+
RN$enableMicrotasksInReact: 'readonly',
430431
},
431432
},
432433
{

packages/react-native-renderer/src/ReactFiberConfigFabric.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,7 @@ const {
4747
unstable_getCurrentEventPriority: fabricGetCurrentEventPriority,
4848
} = nativeFabricUIManager;
4949

50-
import {
51-
useMicrotasksForSchedulingInFabric,
52-
passChildrenWhenCloningPersistedNodes,
53-
} from 'shared/ReactFeatureFlags';
50+
import {passChildrenWhenCloningPersistedNodes} from 'shared/ReactFeatureFlags';
5451

5552
const {get: getViewConfigForType} = ReactNativeViewConfigRegistry;
5653

@@ -507,6 +504,10 @@ export const NotPendingTransition: TransitionStatus = null;
507504
// -------------------
508505
// Microtasks
509506
// -------------------
510-
export const supportsMicrotasks = useMicrotasksForSchedulingInFabric;
507+
508+
export const supportsMicrotasks: boolean =
509+
typeof RN$enableMicrotasksInReact !== 'undefined' &&
510+
!!RN$enableMicrotasksInReact;
511+
511512
export const scheduleMicrotask: any =
512513
typeof queueMicrotask === 'function' ? queueMicrotask : scheduleTimeout;

packages/shared/ReactFeatureFlags.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,6 @@ export const enableFizzExternalRuntime = true;
115115

116116
export const alwaysThrottleRetries = true;
117117

118-
export const useMicrotasksForSchedulingInFabric = false;
119-
120118
export const passChildrenWhenCloningPersistedNodes = false;
121119

122120
export const enableUseDeferredValueInitialArg = __EXPERIMENTAL__;

packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ export const enableRenderableContext = __VARIANT__;
3030
export const enableUnifiedSyncLane = __VARIANT__;
3131
export const enableUseRefAccessWarning = __VARIANT__;
3232
export const passChildrenWhenCloningPersistedNodes = __VARIANT__;
33-
export const useMicrotasksForSchedulingInFabric = __VARIANT__;
3433
export const useModernStrictMode = __VARIANT__;
3534

3635
// Flow magic to verify the exports of this file match the original version.

packages/shared/forks/ReactFeatureFlags.native-fb.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ export const {
2828
enableUnifiedSyncLane,
2929
enableUseRefAccessWarning,
3030
passChildrenWhenCloningPersistedNodes,
31-
useMicrotasksForSchedulingInFabric,
3231
useModernStrictMode,
3332
} = dynamicFlags;
3433

packages/shared/forks/ReactFeatureFlags.native-oss.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@ export const enableAsyncActions = false;
8282

8383
export const alwaysThrottleRetries = false;
8484

85-
export const useMicrotasksForSchedulingInFabric = false;
8685
export const passChildrenWhenCloningPersistedNodes = false;
8786
export const enableUseDeferredValueInitialArg = __EXPERIMENTAL__;
8887
export const disableClientCache = true;

packages/shared/forks/ReactFeatureFlags.test-renderer.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ export const enableAsyncActions = true;
8181

8282
export const alwaysThrottleRetries = true;
8383

84-
export const useMicrotasksForSchedulingInFabric = false;
8584
export const passChildrenWhenCloningPersistedNodes = false;
8685
export const enableUseDeferredValueInitialArg = __EXPERIMENTAL__;
8786
export const disableClientCache = true;

packages/shared/forks/ReactFeatureFlags.test-renderer.native.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ export const enableAsyncActions = true;
8080

8181
export const alwaysThrottleRetries = true;
8282

83-
export const useMicrotasksForSchedulingInFabric = false;
8483
export const passChildrenWhenCloningPersistedNodes = false;
8584
export const enableUseDeferredValueInitialArg = __EXPERIMENTAL__;
8685
export const disableClientCache = true;

packages/shared/forks/ReactFeatureFlags.test-renderer.www.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ export const enableAsyncActions = true;
8181

8282
export const alwaysThrottleRetries = true;
8383

84-
export const useMicrotasksForSchedulingInFabric = false;
8584
export const passChildrenWhenCloningPersistedNodes = false;
8685
export const enableUseDeferredValueInitialArg = true;
8786
export const disableClientCache = true;

packages/shared/forks/ReactFeatureFlags.www.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,6 @@ export const enableFizzExternalRuntime = true;
109109

110110
export const forceConcurrentByDefaultForTesting = false;
111111

112-
export const useMicrotasksForSchedulingInFabric = false;
113112
export const passChildrenWhenCloningPersistedNodes = false;
114113

115114
export const enableAsyncDebugInfo = false;

scripts/flow/react-native-host-hooks.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,8 @@ declare module 'react-native/Libraries/ReactPrivate/ReactNativePrivateInterface'
167167
declare module 'react-native/Libraries/ReactPrivate/ReactNativePrivateInitializeCore' {
168168
}
169169

170+
declare const RN$enableMicrotasksInReact: boolean;
171+
170172
// This is needed for a short term solution.
171173
// See https://github.com/facebook/react/pull/15490 for more info
172174
declare var nativeFabricUIManager: {

scripts/flow/xplat.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,5 @@ declare module 'ReactNativeInternalFeatureFlags' {
1818
declare export var enableUnifiedSyncLane: boolean;
1919
declare export var enableUseRefAccessWarning: boolean;
2020
declare export var passChildrenWhenCloningPersistedNodes: boolean;
21-
declare export var useMicrotasksForSchedulingInFabric: boolean;
2221
declare export var useModernStrictMode: boolean;
2322
}

scripts/rollup/validate/eslintrc.rn.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ module.exports = {
4242
// Fabric. See https://github.com/facebook/react/pull/15490
4343
// for more information
4444
nativeFabricUIManager: 'readonly',
45+
// RN flag to enable microtasks
46+
RN$enableMicrotasksInReact: 'readonly',
4547
// Trusted Types
4648
trustedTypes: 'readonly',
4749
// RN supports this

0 commit comments

Comments
 (0)