Skip to content

Commit 184a83d

Browse files
Convert RCTTiming to TurboModule (#57037)
Summary: Wires `RCTTiming` (iOS CoreModule for `setTimeout`/`setInterval`/idle callbacks) to the existing TurboModule spec at `packages/react-native/src/private/specs_DEPRECATED/modules/NativeTiming.js`. `RCTTiming` was the only remaining `legacy = True` entry in `React/CoreModules/BUCK`. The existing `RCT_EXPORT_METHOD` signatures already match the spec exactly, so this is a registration/wiring change only. Changes: - `RCTTiming.mm`: declare `<NativeTimingSpec>` conformance in a private interface and add `getTurboModule:` returning `NativeTimingSpecJSI`, mirroring the pattern used by `RCTAppState`. - `React/CoreModules/BUCK`: drop `legacy = True` from the `Timing` entry of `react_module_plugin_providers`. No public header changes — the bridgeless path (`ObjCTimerRegistry`) continues to instantiate `RCTTiming` via `initWithDelegate:` and the `RCTTimingDelegate` protocol. No CocoaPods / Swift Package changes are needed: `React-CoreModules.podspec` globs all `CoreModules/*.mm` and `FBReactNativeSpec` codegens `NativeTimingSpecJSI` from the existing JS spec. ## Changelog: [IOS][Fixed]Convert RCTTiming to TurboModule Differential Revision: D107201906
1 parent 1a4a139 commit 184a83d

1 file changed

Lines changed: 9 additions & 0 deletions

File tree

packages/react-native/React/CoreModules/RCTTiming.mm

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,9 @@ - (void)timerDidFire
9595

9696
@end
9797

98+
@interface RCTTiming () <NativeTimingSpec>
99+
@end
100+
98101
@implementation RCTTiming {
99102
NSMutableDictionary<NSNumber *, _RCTTimer *> *_timers;
100103
NSTimer *_sleepTimer;
@@ -427,6 +430,12 @@ - (void)createTimerForNextFrame:(nonnull NSNumber *)callbackID
427430
}
428431
}
429432

433+
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
434+
(const facebook::react::ObjCTurboModule::InitParams &)params
435+
{
436+
return std::make_shared<facebook::react::NativeTimingSpecJSI>(params);
437+
}
438+
430439
@end
431440

432441
Class RCTTimingCls(void)

0 commit comments

Comments
 (0)