react-native 0.0.0-16bb2ae4f → 0.0.0-18697adec

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 (616) hide show
  1. package/Libraries/ActionSheetIOS/ActionSheetIOS.js +14 -1
  2. package/Libraries/ActionSheetIOS/NativeActionSheetManager.js +2 -0
  3. package/Libraries/Animated/AnimatedEvent.js +23 -4
  4. package/Libraries/Animated/NativeAnimatedHelper.js +3 -3
  5. package/Libraries/BatchedBridge/MessageQueue.js +10 -10
  6. package/Libraries/Blob/FileReader.js +1 -1
  7. package/Libraries/Blob/React-RCTBlob.podspec +1 -1
  8. package/Libraries/Blob/URL.js +1 -1
  9. package/Libraries/Components/Button.js +3 -0
  10. package/Libraries/Components/DatePicker/DatePickerIOS.ios.js +3 -6
  11. package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.android.js +4 -7
  12. package/Libraries/Components/ScrollView/ScrollView.js +14 -5
  13. package/Libraries/Components/ScrollView/ScrollViewNativeComponentType.js +1 -0
  14. package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +268 -252
  15. package/Libraries/Components/ScrollView/ScrollViewViewConfig.js +1 -0
  16. package/Libraries/Components/StatusBar/StatusBar.js +6 -14
  17. package/Libraries/Components/TextInput/AndroidTextInputNativeComponent.js +2 -3
  18. package/Libraries/Components/TextInput/AndroidTextInputViewConfig.js +1 -0
  19. package/Libraries/Components/TextInput/TextInput.js +27 -1
  20. package/Libraries/Components/TextInput/TextInputState.js +1 -1
  21. package/Libraries/Components/View/ViewAccessibility.js +1 -0
  22. package/Libraries/Core/ExceptionsManager.js +3 -1
  23. package/Libraries/Core/ReactNativeVersion.js +1 -1
  24. package/Libraries/Core/Timers/JSTimers.js +37 -28
  25. package/Libraries/Core/Timers/immediateShim.js +67 -0
  26. package/Libraries/Core/Timers/queueMicrotask.js +41 -0
  27. package/Libraries/Core/polyfillPromise.js +1 -1
  28. package/Libraries/Core/setUpBatchedBridge.js +1 -1
  29. package/Libraries/Core/setUpGlobals.js +2 -0
  30. package/Libraries/Core/setUpRegeneratorRuntime.js +25 -8
  31. package/Libraries/Core/setUpTimers.js +65 -6
  32. package/Libraries/DeprecatedPropTypes/DeprecatedTextInputPropTypes.js +1 -1
  33. package/Libraries/Image/Image.ios.js +6 -0
  34. package/Libraries/Image/ImageBackground.js +10 -8
  35. package/Libraries/Image/ImageProps.js +28 -0
  36. package/Libraries/Image/ImageSource.js +1 -1
  37. package/Libraries/Image/React-RCTImage.podspec +1 -1
  38. package/Libraries/LinkingIOS/React-RCTLinking.podspec +1 -1
  39. package/Libraries/Lists/FlatList.js +43 -26
  40. package/Libraries/Lists/VirtualizedList.js +3 -1
  41. package/Libraries/Lists/__flowtests__/SectionList-flowtest.js +4 -4
  42. package/Libraries/LogBox/Data/LogBoxData.js +18 -18
  43. package/Libraries/LogBox/UI/LogBoxImages/alert-triangle.png +0 -0
  44. package/Libraries/LogBox/UI/LogBoxImages/chevron-left.png +0 -0
  45. package/Libraries/LogBox/UI/LogBoxImages/chevron-right.png +0 -0
  46. package/Libraries/LogBox/UI/LogBoxImages/close.png +0 -0
  47. package/Libraries/LogBox/UI/LogBoxImages/loader.png +0 -0
  48. package/Libraries/NativeAnimation/Nodes/RCTPropsAnimatedNode.m +0 -3
  49. package/Libraries/NativeAnimation/RCTNativeAnimatedModule.mm +6 -3
  50. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.h +1 -2
  51. package/Libraries/NativeAnimation/RCTNativeAnimatedTurboModule.mm +17 -11
  52. package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -1
  53. package/Libraries/Network/React-RCTNetwork.podspec +1 -1
  54. package/Libraries/Network/XMLHttpRequest.js +3 -1
  55. package/Libraries/NewAppScreen/components/logo.png +0 -0
  56. package/Libraries/Performance/QuickPerformanceLogger.js +2 -1
  57. package/Libraries/PermissionsAndroid/NativePermissionsAndroid.js +2 -1
  58. package/Libraries/PermissionsAndroid/PermissionsAndroid.js +2 -0
  59. package/Libraries/Pressability/Pressability.js +1 -0
  60. package/Libraries/Pressability/PressabilityPerformanceEventEmitter.js +1 -0
  61. package/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm +0 -1
  62. package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +1 -1
  63. package/Libraries/ReactNative/AppRegistry.js +1 -1
  64. package/Libraries/ReactNative/PaperUIManager.js +1 -0
  65. package/Libraries/ReactNative/renderApplication.js +1 -1
  66. package/Libraries/ReactPrivate/ReactNativePrivateInterface.js +1 -2
  67. package/Libraries/Reliability/UserFlow.js +7 -0
  68. package/Libraries/Renderer/REVISION +1 -1
  69. package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +4485 -3842
  70. package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +2060 -1709
  71. package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +2148 -1796
  72. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +4264 -3695
  73. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +1303 -1063
  74. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +1374 -1139
  75. package/Libraries/Renderer/shims/ReactFabric.js +3 -1
  76. package/Libraries/Renderer/shims/ReactFeatureFlags.js +3 -1
  77. package/Libraries/Renderer/shims/ReactNative.js +3 -1
  78. package/Libraries/Renderer/shims/ReactNativeTypes.js +3 -1
  79. package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +3 -1
  80. package/Libraries/Renderer/shims/createReactNativeComponentClass.js +3 -1
  81. package/Libraries/Settings/React-RCTSettings.podspec +1 -1
  82. package/Libraries/StyleSheet/normalizeColor.js +2 -2
  83. package/Libraries/Text/Text.js +11 -0
  84. package/Libraries/Text/TextInput/RCTBaseTextInputView.m +2 -12
  85. package/Libraries/Text/TextInput/RCTInputAccessoryViewContent.m +4 -11
  86. package/Libraries/Text/TextProps.js +1 -7
  87. package/Libraries/TurboModule/TurboModuleRegistry.js +1 -1
  88. package/Libraries/TypeSafety/RCTTypeSafety.podspec +1 -1
  89. package/Libraries/UTFSequence.js +1 -1
  90. package/Libraries/Utilities/Dimensions.js +9 -14
  91. package/Libraries/Utilities/FeatureDetection.js +31 -0
  92. package/Libraries/Utilities/HMRClient.js +10 -6
  93. package/Libraries/Utilities/MatrixMath.js +1 -1
  94. package/Libraries/Utilities/NativeDeviceInfo.js +1 -1
  95. package/Libraries/Utilities/deprecatedPropType.js +2 -2
  96. package/Libraries/Utilities/useWindowDimensions.js +7 -2
  97. package/Libraries/Vibration/React-RCTVibration.podspec +1 -1
  98. package/Libraries/vendor/emitter/_EventSubscriptionVendor.js +1 -1
  99. package/React/Base/RCTBridge+Private.h +8 -0
  100. package/React/Base/RCTBridge.h +13 -0
  101. package/React/Base/RCTBridge.m +30 -7
  102. package/React/Base/RCTBridgeModule.h +3 -12
  103. package/React/Base/RCTBundleURLProvider.h +26 -1
  104. package/React/Base/RCTBundleURLProvider.mm +79 -15
  105. package/React/Base/RCTConstants.h +6 -7
  106. package/React/Base/RCTConstants.m +12 -12
  107. package/React/Base/RCTConvert.h +1 -1
  108. package/React/Base/RCTConvert.m +1 -1
  109. package/React/Base/RCTCxxConvert.h +1 -1
  110. package/React/Base/RCTDefines.h +12 -3
  111. package/React/Base/RCTEventDispatcherProtocol.h +2 -0
  112. package/React/Base/RCTJSThread.h +29 -0
  113. package/React/Base/RCTJSThread.m +19 -0
  114. package/React/Base/RCTMultipartStreamReader.m +0 -2
  115. package/React/Base/RCTRootView.h +15 -0
  116. package/React/Base/RCTRootView.m +15 -0
  117. package/React/Base/RCTTouchHandler.m +4 -9
  118. package/React/Base/RCTUtils.h +3 -0
  119. package/React/Base/RCTUtils.m +14 -7
  120. package/React/Base/RCTVersion.m +1 -1
  121. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h +11 -0
  122. package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +35 -1
  123. package/React/CoreModules/BUCK +3 -3
  124. package/React/CoreModules/RCTAccessibilityManager.mm +1 -1
  125. package/React/CoreModules/RCTActionSheetManager.mm +14 -5
  126. package/React/CoreModules/RCTAsyncLocalStorage.mm +4 -0
  127. package/React/CoreModules/RCTDevLoadingView.mm +5 -10
  128. package/React/CoreModules/RCTDevSettings.mm +12 -10
  129. package/React/CoreModules/RCTDevSplitBundleLoader.mm +1 -1
  130. package/React/CoreModules/RCTDeviceInfo.mm +4 -4
  131. package/React/CoreModules/RCTEventDispatcher.mm +5 -0
  132. package/React/CoreModules/RCTLogBox.mm +14 -10
  133. package/React/CoreModules/RCTPerfMonitor.mm +9 -4
  134. package/React/CoreModules/RCTRedBox.mm +1 -5
  135. package/React/CoreModules/React-CoreModules.podspec +1 -1
  136. package/React/CxxBridge/RCTCxxBridge.mm +18 -1
  137. package/React/DevSupport/RCTPackagerConnection.h +3 -0
  138. package/React/DevSupport/RCTPackagerConnection.mm +19 -8
  139. package/React/FBReactNativeSpec/FBReactNativeSpec.podspec +12 -4
  140. package/React/Fabric/Mounting/ComponentViews/Modal/RCTModalHostViewComponentView.mm +1 -2
  141. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +64 -62
  142. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +31 -11
  143. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.h +6 -0
  144. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +108 -4
  145. package/React/Fabric/Mounting/RCTComponentViewFactory.mm +1 -0
  146. package/React/Fabric/Mounting/RCTMountingManager.h +3 -0
  147. package/React/Fabric/Mounting/RCTMountingManager.mm +22 -3
  148. package/React/Fabric/Mounting/UIView+ComponentViewProtocol.h +2 -0
  149. package/React/Fabric/Mounting/UIView+ComponentViewProtocol.mm +12 -0
  150. package/React/Fabric/RCTConversions.h +3 -0
  151. package/React/Fabric/RCTScheduler.mm +12 -5
  152. package/React/Fabric/RCTSurfacePresenter.mm +6 -7
  153. package/React/Fabric/RCTSurfacePresenterBridgeAdapter.h +1 -1
  154. package/React/Fabric/RCTSurfaceRegistry.h +1 -1
  155. package/React/Fabric/RCTSurfaceTouchHandler.mm +6 -20
  156. package/React/Fabric/Surface/RCTFabricSurface.mm +3 -0
  157. package/React/Modules/RCTI18nUtil.h +14 -6
  158. package/React/Modules/RCTI18nUtil.m +1 -47
  159. package/React/Profiler/RCTProfileTrampoline-arm.S +1 -1
  160. package/React/Profiler/RCTProfileTrampoline-arm64.S +2 -2
  161. package/React/React-RCTFabric.podspec +1 -1
  162. package/React/Views/RCTFont.mm +54 -38
  163. package/React/Views/RCTModalHostView.h +1 -1
  164. package/React/Views/RCTModalHostView.m +16 -0
  165. package/React/Views/RCTModalHostViewManager.m +1 -0
  166. package/React/Views/RCTView.m +2 -7
  167. package/React/Views/RCTViewManager.m +4 -2
  168. package/React/Views/SafeAreaView/RCTSafeAreaView.m +1 -5
  169. package/React/Views/ScrollView/RCTScrollView.h +1 -0
  170. package/React/Views/ScrollView/RCTScrollView.m +111 -36
  171. package/React/Views/ScrollView/RCTScrollViewManager.m +1 -7
  172. package/React/Views/UIView+React.m +2 -11
  173. package/React-Core.podspec +1 -1
  174. package/ReactAndroid/Android-prebuilt.mk +8 -0
  175. package/ReactAndroid/README.md +1 -1
  176. package/ReactAndroid/build.gradle +12 -5
  177. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/BUCK +1 -1
  178. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/ReactAppInstrumentationTestCase.java +1 -1
  179. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/idledetection/BUCK +1 -1
  180. package/ReactAndroid/src/androidTest/java/com/facebook/react/testing/rule/BUCK +5 -5
  181. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/BUCK +0 -1
  182. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/core/BUCK +5 -5
  183. package/ReactAndroid/src/androidTest/js/BUCK +26 -0
  184. package/ReactAndroid/src/androidTest/js/TestBundle.js +0 -7
  185. package/ReactAndroid/src/main/java/com/facebook/hermes/instrumentation/Android.mk +2 -2
  186. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/Android.mk +4 -4
  187. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/HermesExecutorFactory.java +1 -1
  188. package/ReactAndroid/src/main/java/com/facebook/hermes/reactexecutor/RuntimeConfig.java +0 -6
  189. package/ReactAndroid/src/main/java/com/facebook/react/BUCK +1 -1
  190. package/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +1 -0
  191. package/ReactAndroid/src/main/java/com/facebook/react/ReactAndroidHWInputDeviceHelper.java +2 -0
  192. package/ReactAndroid/src/main/java/com/facebook/react/ReactFragment.java +6 -2
  193. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +89 -44
  194. package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManagerBuilder.java +28 -0
  195. package/ReactAndroid/src/main/java/com/facebook/react/ReactNativeHost.java +13 -0
  196. package/ReactAndroid/src/main/java/com/facebook/react/ReactRootView.java +5 -4
  197. package/ReactAndroid/src/main/java/com/facebook/react/animated/BUCK +1 -1
  198. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedModule.java +2 -2
  199. package/ReactAndroid/src/main/java/com/facebook/react/animated/NativeAnimatedNodesManager.java +4 -4
  200. package/ReactAndroid/src/main/java/com/facebook/react/bridge/BackgroundExecutor.java +3 -2
  201. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.java +4 -0
  202. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +11 -0
  203. package/ReactAndroid/src/main/java/com/facebook/react/bridge/JavaModuleWrapper.java +37 -0
  204. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.java +22 -0
  205. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +3 -6
  206. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContextBaseJavaModule.java +1 -1
  207. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactCxxErrorHandler.java +39 -0
  208. package/ReactAndroid/src/main/java/com/facebook/react/bridge/{ReactSoftException.java → ReactSoftExceptionLogger.java} +8 -3
  209. package/ReactAndroid/src/main/java/com/facebook/react/bridge/RuntimeScheduler.java +21 -0
  210. package/ReactAndroid/src/main/java/com/facebook/react/bridge/SoftAssertions.java +8 -7
  211. package/ReactAndroid/src/main/java/com/facebook/react/bridge/UIManager.java +10 -0
  212. package/ReactAndroid/src/main/java/com/facebook/react/common/BUCK +2 -2
  213. package/ReactAndroid/src/main/java/com/facebook/react/common/mapbuffer/jni/BUCK +1 -1
  214. package/ReactAndroid/src/main/java/com/facebook/react/config/ReactFeatureFlags.java +32 -4
  215. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BUCK +1 -1
  216. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DefaultDevSupportManagerFactory.java +97 -0
  217. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java +9 -58
  218. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +14 -9
  219. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerFactory.java +3 -72
  220. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/PackagerStatusCheck.java +100 -0
  221. package/ReactAndroid/src/main/java/com/facebook/react/fabric/Binding.java +10 -0
  222. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricComponents.java +4 -3
  223. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricJSIModuleProvider.java +1 -0
  224. package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +64 -31
  225. package/ReactAndroid/src/main/java/com/facebook/react/fabric/events/EventEmitterWrapper.java +3 -3
  226. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Android.mk +2 -1
  227. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/BUCK +1 -1
  228. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp +54 -10
  229. package/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.h +7 -1
  230. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountItemDispatcher.java +14 -6
  231. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/MountingManager.java +4 -4
  232. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +40 -11
  233. package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/SendAccessibilityEvent.java +2 -2
  234. package/ReactAndroid/src/main/java/com/facebook/react/jscexecutor/Android.mk +2 -2
  235. package/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java +2 -2
  236. package/ReactAndroid/src/main/java/com/facebook/react/modules/accessibilityinfo/BUCK +1 -1
  237. package/ReactAndroid/src/main/java/com/facebook/react/modules/appearance/BUCK +1 -1
  238. package/ReactAndroid/src/main/java/com/facebook/react/modules/appstate/BUCK +1 -1
  239. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BUCK +1 -1
  240. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/jni/Android.mk +2 -2
  241. package/ReactAndroid/src/main/java/com/facebook/react/modules/bundleloader/BUCK +1 -1
  242. package/ReactAndroid/src/main/java/com/facebook/react/modules/camera/BUCK +1 -1
  243. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/BUCK +1 -1
  244. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/{JavaScriptTimerManager.java → JavaScriptTimerExecutor.java} +1 -1
  245. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/JavaTimerManager.java +7 -7
  246. package/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java +2 -2
  247. package/ReactAndroid/src/main/java/com/facebook/react/modules/debug/BUCK +1 -1
  248. package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/BUCK +1 -1
  249. package/ReactAndroid/src/main/java/com/facebook/react/modules/deviceinfo/DeviceInfoModule.java +10 -6
  250. package/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK +1 -1
  251. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/BUCK +1 -1
  252. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nManagerModule.java +7 -1
  253. package/ReactAndroid/src/main/java/com/facebook/react/modules/image/BUCK +1 -1
  254. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/BUCK +1 -1
  255. package/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java +23 -19
  256. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/BUCK +1 -1
  257. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/ForwardingCookieHandler.java +1 -4
  258. package/ReactAndroid/src/main/java/com/facebook/react/modules/permissions/BUCK +1 -1
  259. package/ReactAndroid/src/main/java/com/facebook/react/modules/share/BUCK +1 -1
  260. package/ReactAndroid/src/main/java/com/facebook/react/modules/sound/BUCK +1 -1
  261. package/ReactAndroid/src/main/java/com/facebook/react/modules/statusbar/BUCK +1 -1
  262. package/ReactAndroid/src/main/java/com/facebook/react/modules/storage/BUCK +1 -1
  263. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/BUCK +2 -2
  264. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
  265. package/ReactAndroid/src/main/java/com/facebook/react/modules/toast/BUCK +1 -1
  266. package/ReactAndroid/src/main/java/com/facebook/react/modules/vibration/BUCK +1 -1
  267. package/ReactAndroid/src/main/java/com/facebook/react/modules/websocket/BUCK +1 -1
  268. package/ReactAndroid/src/main/java/com/facebook/react/packagerconnection/ReconnectingWebSocket.java +11 -9
  269. package/ReactAndroid/src/main/java/com/facebook/react/shell/BUCK +0 -1
  270. package/ReactAndroid/src/main/java/com/facebook/react/shell/MainReactPackage.java +0 -5
  271. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/TurboModuleManager.java +4 -2
  272. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.cpp +39 -11
  273. package/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni/ReactCommon/TurboModuleManager.h +9 -2
  274. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/DisplayMetricsHolder.java +7 -28
  275. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/PixelUtil.java +1 -6
  276. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactAccessibilityDelegate.java +2 -2
  277. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactOverflowView.java +25 -0
  278. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/TouchTargetHelper.java +162 -66
  279. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.java +9 -9
  280. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerModule.java +1 -0
  281. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIViewOperationQueue.java +6 -5
  282. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java +16 -1
  283. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.java +12 -20
  284. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/LockFreeEventDispatcherImpl.java +2 -2
  285. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/ReactEventEmitter.java +14 -13
  286. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchEvent.java +21 -5
  287. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/TouchesHelper.java +1 -1
  288. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/jni/BUCK +1 -1
  289. package/ReactAndroid/src/main/java/com/facebook/react/views/drawer/BUCK +1 -1
  290. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/BUCK +1 -1
  291. package/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostView.java +7 -11
  292. package/ReactAndroid/src/main/java/com/facebook/react/views/progressbar/BUCK +1 -1
  293. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/BUCK +1 -0
  294. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +9 -1
  295. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +24 -1
  296. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ScrollEvent.java +2 -2
  297. package/ReactAndroid/src/main/java/com/facebook/react/views/slider/BUCK +1 -1
  298. package/ReactAndroid/src/main/java/com/facebook/react/views/slider/ReactSliderManager.java +4 -7
  299. package/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/BUCK +1 -1
  300. package/ReactAndroid/src/main/java/com/facebook/react/views/switchview/BUCK +1 -1
  301. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextAnchorViewManager.java +0 -4
  302. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java +23 -2
  303. package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java +8 -0
  304. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextAttributeProps.java +20 -1
  305. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManager.java +31 -12
  306. package/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java +31 -11
  307. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/BUCK +1 -0
  308. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +14 -4
  309. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditTextInputConnectionWrapper.java +3 -0
  310. package/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +114 -62
  311. package/ReactAndroid/src/main/java/com/facebook/react/views/view/CanvasUtil.java +92 -0
  312. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewBackgroundDrawable.java +39 -8
  313. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +24 -3
  314. package/ReactAndroid/src/main/jni/react/jni/Android.mk +5 -3
  315. package/ReactAndroid/src/main/jni/react/jni/BUCK +5 -2
  316. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +61 -0
  317. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +8 -0
  318. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.cpp +18 -0
  319. package/ReactAndroid/src/main/jni/react/jni/JReactCxxErrorHandler.h +25 -0
  320. package/ReactAndroid/src/main/jni/react/jni/JReactSoftExceptionLogger.cpp +21 -0
  321. package/ReactAndroid/src/main/jni/react/jni/JReactSoftExceptionLogger.h +28 -0
  322. package/{ReactCommon/react/renderer/core/Constants.cpp → ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.cpp} +6 -8
  323. package/ReactAndroid/src/main/jni/react/jni/JRuntimeScheduler.h +30 -0
  324. package/ReactAndroid/src/main/jni/react/jni/JSLoader.cpp +1 -1
  325. package/ReactAndroid/src/main/jni/third-party/libevent/Android.mk +0 -1
  326. package/ReactAndroid/src/main/third-party/android/androidx/BUCK +63 -2
  327. package/ReactAndroid/src/main/third-party/java/testing-support-lib/BUCK +0 -31
  328. package/ReactAndroid/src/test/java/com/facebook/react/bridge/ReactTestHelper.java +1 -0
  329. package/ReactAndroid/src/test/java/com/facebook/react/modules/BUCK +1 -0
  330. package/ReactAndroid/src/test/java/com/facebook/react/modules/deviceinfo/DeviceInfoModuleTest.java +168 -0
  331. package/ReactCommon/React-Fabric.podspec +10 -1
  332. package/ReactCommon/ReactCommon.podspec +2 -1
  333. package/ReactCommon/callinvoker/BUCK +2 -2
  334. package/ReactCommon/callinvoker/React-callinvoker.podspec +1 -1
  335. package/ReactCommon/cxxreact/Android.mk +2 -1
  336. package/ReactCommon/cxxreact/BUCK +1 -0
  337. package/ReactCommon/cxxreact/CxxNativeModule.cpp +28 -0
  338. package/ReactCommon/cxxreact/CxxNativeModule.h +9 -0
  339. package/ReactCommon/cxxreact/React-cxxreact.podspec +2 -1
  340. package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
  341. package/ReactCommon/hermes/React-hermes.podspec +1 -1
  342. package/ReactCommon/hermes/executor/Android.mk +4 -4
  343. package/ReactCommon/hermes/inspector/Android.mk +1 -2
  344. package/ReactCommon/hermes/inspector/tools/msggen/package.json +7 -4
  345. package/ReactCommon/hermes/inspector/tools/msggen/yarn.lock +13 -10
  346. package/ReactCommon/jsi/Android.mk +1 -1
  347. package/ReactCommon/jsi/BUCK +0 -2
  348. package/ReactCommon/jsi/React-jsi.podspec +1 -1
  349. package/ReactCommon/jsiexecutor/Android.mk +2 -2
  350. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +1 -1
  351. package/ReactCommon/logger/Android.mk +23 -0
  352. package/ReactCommon/logger/BUCK +43 -0
  353. package/ReactCommon/logger/React-logger.podspec +40 -0
  354. package/ReactCommon/logger/react_native_log.cpp +52 -0
  355. package/ReactCommon/logger/react_native_log.h +33 -0
  356. package/ReactCommon/react/nativemodule/core/Android.mk +2 -2
  357. package/ReactCommon/react/nativemodule/core/ReactCommon/LongLivedObject.cpp +1 -0
  358. package/ReactCommon/react/nativemodule/core/ReactCommon/LongLivedObject.h +3 -2
  359. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp +46 -1
  360. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.h +10 -0
  361. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleUtils.h +37 -1
  362. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.cpp +24 -22
  363. package/ReactCommon/react/nativemodule/core/platform/android/ReactCommon/JavaTurboModule.h +11 -8
  364. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModule.h +7 -5
  365. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModule.mm +51 -29
  366. package/ReactCommon/react/nativemodule/core/platform/ios/RCTTurboModuleManager.mm +45 -34
  367. package/ReactCommon/react/nativemodule/samples/BUCK +2 -2
  368. package/ReactCommon/react/nativemodule/samples/platform/android/Android.mk +1 -1
  369. package/ReactCommon/react/renderer/animations/BUCK +1 -0
  370. package/ReactCommon/react/renderer/animations/LayoutAnimationCallbackWrapper.h +34 -0
  371. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.cpp +5 -27
  372. package/ReactCommon/react/renderer/animations/LayoutAnimationDriver.h +8 -14
  373. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.cpp +920 -1136
  374. package/ReactCommon/react/renderer/animations/LayoutAnimationKeyFrameManager.h +80 -245
  375. package/ReactCommon/react/renderer/animations/conversions.h +212 -0
  376. package/ReactCommon/react/renderer/animations/primitives.h +104 -0
  377. package/ReactCommon/react/renderer/animations/tests/LayoutAnimationTest.cpp +9 -6
  378. package/ReactCommon/react/renderer/animations/utils.cpp +71 -0
  379. package/ReactCommon/react/renderer/animations/utils.h +80 -0
  380. package/ReactCommon/react/renderer/attributedstring/AttributedString.h +0 -1
  381. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.cpp +7 -3
  382. package/ReactCommon/react/renderer/attributedstring/ParagraphAttributes.h +12 -2
  383. package/ReactCommon/react/renderer/attributedstring/TextAttributes.cpp +7 -2
  384. package/ReactCommon/react/renderer/attributedstring/TextAttributes.h +3 -1
  385. package/ReactCommon/react/renderer/attributedstring/conversions.h +162 -11
  386. package/ReactCommon/react/renderer/attributedstring/primitives.h +34 -1
  387. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorProviderRegistry.cpp +2 -2
  388. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h +1 -0
  389. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +10 -4
  390. package/ReactCommon/react/renderer/componentregistry/ComponentDescriptorRegistry.h +4 -1
  391. package/ReactCommon/react/renderer/componentregistry/componentNameByReactViewName.cpp +2 -1
  392. package/ReactCommon/react/renderer/components/image/Android.mk +1 -1
  393. package/ReactCommon/react/renderer/components/image/ImageProps.cpp +28 -9
  394. package/ReactCommon/react/renderer/components/image/ImageProps.h +5 -1
  395. package/ReactCommon/react/renderer/components/image/conversions.h +9 -2
  396. package/ReactCommon/react/renderer/components/inputaccessory/BUCK +1 -1
  397. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/BUCK +1 -1
  398. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm +0 -1
  399. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.cpp +2 -1
  400. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropViewProps.h +2 -0
  401. package/ReactCommon/react/renderer/components/root/RootProps.cpp +12 -2
  402. package/ReactCommon/react/renderer/components/root/RootProps.h +6 -1
  403. package/ReactCommon/react/renderer/components/root/RootShadowNode.cpp +2 -1
  404. package/ReactCommon/react/renderer/components/root/RootShadowNode.h +2 -0
  405. package/ReactCommon/react/renderer/components/root/tests/RootShadowNodeTest.cpp +8 -4
  406. package/ReactCommon/react/renderer/components/safeareaview/BUCK +1 -1
  407. package/ReactCommon/react/renderer/components/scrollview/Android.mk +1 -1
  408. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.cpp +45 -4
  409. package/ReactCommon/react/renderer/components/scrollview/ScrollViewProps.h +5 -1
  410. package/ReactCommon/react/renderer/components/scrollview/conversions.h +5 -0
  411. package/ReactCommon/react/renderer/components/text/Android.mk +1 -1
  412. package/ReactCommon/react/renderer/components/text/BaseTextProps.cpp +32 -0
  413. package/ReactCommon/react/renderer/components/text/BaseTextProps.h +5 -1
  414. package/ReactCommon/react/renderer/components/text/ParagraphComponentDescriptor.h +1 -16
  415. package/ReactCommon/react/renderer/components/text/ParagraphProps.cpp +10 -4
  416. package/ReactCommon/react/renderer/components/text/ParagraphProps.h +5 -1
  417. package/ReactCommon/react/renderer/components/text/RawTextProps.cpp +3 -2
  418. package/ReactCommon/react/renderer/components/text/RawTextProps.h +5 -1
  419. package/ReactCommon/react/renderer/components/text/RawTextShadowNode.h +0 -6
  420. package/ReactCommon/react/renderer/components/text/TextProps.cpp +6 -3
  421. package/ReactCommon/react/renderer/components/text/TextProps.h +5 -1
  422. package/ReactCommon/react/renderer/components/text/TextShadowNode.h +0 -6
  423. package/ReactCommon/react/renderer/components/textinput/Android.mk +1 -1
  424. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.cpp +58 -91
  425. package/ReactCommon/react/renderer/components/textinput/androidtextinput/react/renderer/components/androidtextinput/AndroidTextInputProps.h +10 -6
  426. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputProps.cpp +46 -22
  427. package/ReactCommon/react/renderer/components/textinput/iostextinput/TextInputProps.h +6 -5
  428. package/ReactCommon/react/renderer/components/textinput/iostextinput/conversions.h +15 -3
  429. package/ReactCommon/react/renderer/components/textinput/iostextinput/primitives.h +6 -0
  430. package/ReactCommon/react/renderer/components/textinput/iostextinput/propsConversions.h +63 -2
  431. package/ReactCommon/react/renderer/components/unimplementedview/Android.mk +1 -1
  432. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.cpp +4 -2
  433. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewComponentDescriptor.h +5 -2
  434. package/ReactCommon/react/renderer/components/unimplementedview/UnimplementedViewProps.h +1 -0
  435. package/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h +21 -0
  436. package/ReactCommon/react/renderer/components/view/AccessibilityProps.cpp +24 -1
  437. package/ReactCommon/react/renderer/components/view/AccessibilityProps.h +3 -0
  438. package/ReactCommon/react/renderer/components/view/Android.mk +3 -2
  439. package/ReactCommon/react/renderer/components/view/BUCK +1 -0
  440. package/ReactCommon/react/renderer/components/view/Touch.h +1 -32
  441. package/ReactCommon/react/renderer/components/view/ViewComponentDescriptor.h +0 -22
  442. package/ReactCommon/react/renderer/components/view/ViewProps.cpp +62 -14
  443. package/ReactCommon/react/renderer/components/view/ViewProps.h +7 -1
  444. package/ReactCommon/react/renderer/components/view/ViewPropsInterpolation.h +2 -10
  445. package/ReactCommon/react/renderer/components/view/ViewShadowNode.cpp +5 -4
  446. package/ReactCommon/react/renderer/components/view/ViewShadowNode.h +1 -1
  447. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.cpp +58 -33
  448. package/ReactCommon/react/renderer/components/view/YogaLayoutableShadowNode.h +2 -8
  449. package/ReactCommon/react/renderer/components/view/YogaStylableProps.cpp +3 -2
  450. package/ReactCommon/react/renderer/components/view/YogaStylableProps.h +2 -0
  451. package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +62 -8
  452. package/ReactCommon/react/renderer/components/view/conversions.h +57 -14
  453. package/ReactCommon/react/renderer/components/view/propsConversions.h +163 -28
  454. package/ReactCommon/react/renderer/components/view/tests/ViewTest.cpp +7 -2
  455. package/ReactCommon/react/renderer/core/Android.mk +1 -1
  456. package/ReactCommon/react/renderer/core/ComponentDescriptor.h +5 -2
  457. package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +19 -21
  458. package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +4 -0
  459. package/ReactCommon/react/renderer/core/EventDispatcher.cpp +12 -31
  460. package/ReactCommon/react/renderer/core/EventDispatcher.h +1 -4
  461. package/ReactCommon/react/renderer/core/LayoutableShadowNode.h +0 -6
  462. package/ReactCommon/react/renderer/core/Props.cpp +10 -2
  463. package/ReactCommon/react/renderer/core/Props.h +6 -1
  464. package/ReactCommon/react/renderer/core/PropsParserContext.h +29 -0
  465. package/ReactCommon/react/renderer/core/RawProps.cpp +2 -1
  466. package/ReactCommon/react/renderer/core/RawProps.h +3 -1
  467. package/ReactCommon/react/renderer/core/RawPropsKey.cpp +10 -2
  468. package/ReactCommon/react/renderer/core/RawPropsParser.h +11 -2
  469. package/ReactCommon/react/renderer/core/ReactPrimitives.h +0 -2
  470. package/ReactCommon/react/renderer/core/ShadowNode.cpp +7 -10
  471. package/ReactCommon/react/renderer/core/ShadowNode.h +4 -0
  472. package/ReactCommon/react/renderer/core/ShadowNodeFamily.h +1 -0
  473. package/ReactCommon/react/renderer/core/ShadowNodeTraits.h +11 -1
  474. package/ReactCommon/react/renderer/core/propsConversions.h +18 -8
  475. package/ReactCommon/react/renderer/core/tests/ComponentDescriptorTest.cpp +16 -4
  476. package/ReactCommon/react/renderer/core/tests/RawPropsTest.cpp +85 -20
  477. package/ReactCommon/react/renderer/core/tests/TestComponent.h +6 -2
  478. package/ReactCommon/react/renderer/graphics/Android.mk +5 -2
  479. package/ReactCommon/react/renderer/graphics/BUCK +12 -1
  480. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +2 -1
  481. package/ReactCommon/react/renderer/graphics/Transform.cpp +1 -1
  482. package/ReactCommon/react/renderer/graphics/Transform.h +1 -1
  483. package/ReactCommon/react/renderer/graphics/conversions.h +34 -19
  484. package/ReactCommon/react/renderer/graphics/platform/android/react/renderer/graphics/PlatformColorParser.h +67 -0
  485. package/ReactCommon/react/renderer/graphics/platform/cxx/react/renderer/graphics/PlatformColorParser.h +29 -0
  486. package/ReactCommon/react/renderer/graphics/platform/ios/Color.h +42 -1
  487. package/ReactCommon/react/renderer/graphics/platform/ios/PlatformColorParser.h +34 -0
  488. package/ReactCommon/react/renderer/graphics/platform/ios/RCTPlatformColorUtils.h +12 -0
  489. package/ReactCommon/react/renderer/graphics/platform/ios/RCTPlatformColorUtils.mm +206 -0
  490. package/ReactCommon/react/renderer/imagemanager/BUCK +1 -1
  491. package/ReactCommon/react/renderer/imagemanager/platform/ios/RCTSyncImageManager.mm +1 -1
  492. package/ReactCommon/react/renderer/mapbuffer/BUCK +2 -2
  493. package/ReactCommon/react/renderer/mounting/Android.mk +2 -1
  494. package/ReactCommon/react/renderer/mounting/MountingOverrideDelegate.h +1 -1
  495. package/ReactCommon/react/renderer/mounting/ShadowTree.cpp +6 -2
  496. package/ReactCommon/react/renderer/mounting/ShadowTree.h +3 -1
  497. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.cpp +12 -0
  498. package/ReactCommon/react/renderer/mounting/ShadowViewMutation.h +10 -1
  499. package/ReactCommon/react/renderer/mounting/tests/MountingTest.cpp +12 -1
  500. package/ReactCommon/react/renderer/mounting/tests/ShadowTreeLifeCycleTest.cpp +8 -1
  501. package/ReactCommon/react/renderer/mounting/tests/StateReconciliationTest.cpp +10 -3
  502. package/ReactCommon/react/renderer/runtimescheduler/Android.mk +2 -1
  503. package/ReactCommon/react/renderer/runtimescheduler/BUCK +1 -0
  504. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.cpp +10 -4
  505. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler.h +9 -2
  506. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.cpp +4 -2
  507. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerBinding.h +4 -2
  508. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.cpp +30 -0
  509. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h +34 -0
  510. package/ReactCommon/react/renderer/runtimescheduler/RuntimeSchedulerClock.h +4 -2
  511. package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriority.h +4 -2
  512. package/ReactCommon/react/renderer/runtimescheduler/Task.cpp +11 -5
  513. package/ReactCommon/react/renderer/runtimescheduler/Task.h +5 -3
  514. package/ReactCommon/react/renderer/runtimescheduler/primitives.h +4 -2
  515. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +34 -0
  516. package/ReactCommon/react/renderer/{core/Constants.h → scheduler/InspectorData.h} +9 -8
  517. package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +44 -29
  518. package/ReactCommon/react/renderer/scheduler/Scheduler.h +14 -0
  519. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +49 -29
  520. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +12 -4
  521. package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +1 -0
  522. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.h +2 -0
  523. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/RCTAttributedTextUtils.mm +22 -0
  524. package/ReactCommon/react/renderer/timeline/BUCK +6 -6
  525. package/ReactCommon/react/renderer/uimanager/UIManager.cpp +34 -30
  526. package/ReactCommon/react/renderer/uimanager/UIManager.h +6 -3
  527. package/ReactCommon/react/renderer/uimanager/UIManagerAnimationDelegate.h +1 -1
  528. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +101 -108
  529. package/ReactCommon/react/renderer/uimanager/UIManagerBinding.h +4 -7
  530. package/ReactCommon/react/test_utils/BUCK +3 -0
  531. package/ReactCommon/react/test_utils/MockSurfaceHandler.h +25 -0
  532. package/ReactCommon/react/test_utils/shadowTreeGeneration.h +18 -4
  533. package/ReactCommon/react/utils/Android.mk +3 -1
  534. package/ReactCommon/react/utils/BUCK +1 -0
  535. package/ReactCommon/react/utils/ContextContainer.h +0 -27
  536. package/ReactCommon/reactperflogger/React-perflogger.podspec +1 -1
  537. package/ReactCommon/runtimeexecutor/React-runtimeexecutor.podspec +1 -1
  538. package/ReactCommon/runtimeexecutor/ReactCommon/RuntimeExecutor.h +12 -0
  539. package/android/com/facebook/react/react-native/{0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar → 0.0.0-18697adec/react-native-0.0.0-18697adec.aar} +0 -0
  540. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.md5 +1 -0
  541. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.sha1 +1 -0
  542. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.sha256 +1 -0
  543. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.aar.sha512 +1 -0
  544. package/android/com/facebook/react/react-native/{0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module → 0.0.0-18697adec/react-native-0.0.0-18697adec.module} +30 -17
  545. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.md5 +1 -0
  546. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.sha1 +1 -0
  547. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.sha256 +1 -0
  548. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.module.sha512 +1 -0
  549. package/android/com/facebook/react/react-native/{0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom → 0.0.0-18697adec/react-native-0.0.0-18697adec.pom} +8 -2
  550. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.md5 +1 -0
  551. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.sha1 +1 -0
  552. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.sha256 +1 -0
  553. package/android/com/facebook/react/react-native/0.0.0-18697adec/react-native-0.0.0-18697adec.pom.sha512 +1 -0
  554. package/android/com/facebook/react/react-native/maven-metadata.xml +4 -4
  555. package/android/com/facebook/react/react-native/maven-metadata.xml.md5 +1 -1
  556. package/android/com/facebook/react/react-native/maven-metadata.xml.sha1 +1 -1
  557. package/android/com/facebook/react/react-native/maven-metadata.xml.sha256 +1 -1
  558. package/android/com/facebook/react/react-native/maven-metadata.xml.sha512 +1 -1
  559. package/flow/HermesInternalType.js +114 -0
  560. package/flow/global.js +68 -0
  561. package/index.js +37 -24
  562. package/jest/renderer.js +3 -7
  563. package/jest/setup.js +2 -1
  564. package/package.json +55 -16
  565. package/react.gradle +19 -13
  566. package/scripts/generate-specs-cli.js +20 -2
  567. package/scripts/ios-configure-glog.sh +4 -0
  568. package/scripts/react-native-xcode.sh +1 -1
  569. package/scripts/react_native_pods.rb +195 -38
  570. package/template/_flowconfig +1 -1
  571. package/template/android/app/build.gradle +2 -2
  572. package/template/android/build.gradle +1 -2
  573. package/template/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  574. package/template/android/gradle.properties +1 -1
  575. package/template/ios/HelloWorld.xcodeproj/project.pbxproj +2 -0
  576. package/template/ios/Podfile +1 -0
  577. package/template/package.json +3 -4
  578. package/third-party-podspecs/RCT-Folly.podspec +6 -3
  579. package/Libraries/BUCK +0 -26
  580. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.android.js +0 -87
  581. package/Libraries/Components/DatePickerAndroid/DatePickerAndroid.ios.js +0 -30
  582. package/Libraries/Components/DatePickerAndroid/DatePickerAndroidTypes.js +0 -30
  583. package/Libraries/Components/StaticContainer.react.js +0 -51
  584. package/Libraries/Components/StatusBar/StatusBarIOS.js +0 -38
  585. package/Libraries/Components/Touchable/ensurePositiveDelayProps.js +0 -25
  586. package/Libraries/Interaction/InteractionMixin.js +0 -54
  587. package/Libraries/ReactNative/queryLayoutByID.js +0 -58
  588. package/ReactAndroid/src/androidTest/java/com/facebook/react/tests/DatePickerDialogTestCase.java +0 -172
  589. package/ReactAndroid/src/androidTest/js/DatePickerDialogTestModule.js +0 -45
  590. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/BUCK +0 -27
  591. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogFragment.java +0 -137
  592. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java +0 -153
  593. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerMode.java +0 -15
  594. package/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DismissableDatePickerDialog.java +0 -117
  595. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/BUCK +0 -20
  596. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/RuntimeSchedulerManager.java +0 -39
  597. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/Android.mk +0 -34
  598. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/BUCK +0 -35
  599. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/OnLoad.cpp +0 -15
  600. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.cpp +0 -46
  601. package/ReactAndroid/src/main/java/com/facebook/react/runtimescheduler/jni/RuntimeSchedulerManager.h +0 -40
  602. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.md5 +0 -1
  603. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.sha1 +0 -1
  604. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.sha256 +0 -1
  605. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.aar.sha512 +0 -1
  606. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.md5 +0 -1
  607. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.sha1 +0 -1
  608. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.sha256 +0 -1
  609. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.module.sha512 +0 -1
  610. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.md5 +0 -1
  611. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.sha1 +0 -1
  612. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.sha256 +0 -1
  613. package/android/com/facebook/react/react-native/0.0.0-16bb2ae4f/react-native-0.0.0-16bb2ae4f.pom.sha512 +0 -1
  614. package/scripts/generate-specs.sh +0 -100
  615. package/template/_editorconfig +0 -3
  616. package/template/_gitattributes +0 -3
@@ -9,6 +9,7 @@
9
9
 
10
10
  #include <react/renderer/core/EventDispatcher.h>
11
11
  #include <react/renderer/core/Props.h>
12
+ #include <react/renderer/core/PropsParserContext.h>
12
13
  #include <react/renderer/core/RawPropsParser.h>
13
14
  #include <react/renderer/core/ShadowNode.h>
14
15
  #include <react/renderer/core/State.h>
@@ -40,8 +41,8 @@ class ComponentDescriptor {
40
41
  * and `ComponentHandle` (the particular custom implementation might use
41
42
  * stored `flavor` to return different values from those virtual methods).
42
43
  * Since it's a very niche requirement (e.g. we plan to use it for
43
- * an interoperability layer with Paper), we are thinking about removing this
44
- * feature completely after it's no longer needed.
44
+ * an interoperability layer with old renderer), we are thinking about
45
+ * removing this feature completely after it's no longer needed.
45
46
  */
46
47
  using Flavor = std::shared_ptr<void const>;
47
48
 
@@ -101,6 +102,7 @@ class ComponentDescriptor {
101
102
  * Must return an object which is NOT pointer equal to `props`.
102
103
  */
103
104
  virtual SharedProps cloneProps(
105
+ const PropsParserContext &context,
104
106
  const SharedProps &props,
105
107
  const RawProps &rawProps) const = 0;
106
108
 
@@ -109,6 +111,7 @@ class ComponentDescriptor {
109
111
  * between `props` and `newProps`.
110
112
  */
111
113
  virtual SharedProps interpolateProps(
114
+ const PropsParserContext &context,
112
115
  float animationProgress,
113
116
  const SharedProps &props,
114
117
  const SharedProps &newProps) const = 0;
@@ -11,9 +11,11 @@
11
11
  #include <memory>
12
12
 
13
13
  #include <react/debug/react_native_assert.h>
14
+ #include <react/renderer/components/view/ViewPropsInterpolation.h>
14
15
  #include <react/renderer/core/ComponentDescriptor.h>
15
16
  #include <react/renderer/core/EventDispatcher.h>
16
17
  #include <react/renderer/core/Props.h>
18
+ #include <react/renderer/core/PropsParserContext.h>
17
19
  #include <react/renderer/core/ShadowNode.h>
18
20
  #include <react/renderer/core/ShadowNodeFragment.h>
19
21
  #include <react/renderer/core/State.h>
@@ -78,10 +80,6 @@ class ConcreteComponentDescriptor : public ComponentDescriptor {
78
80
  ShadowNode::Unshared cloneShadowNode(
79
81
  const ShadowNode &sourceShadowNode,
80
82
  const ShadowNodeFragment &fragment) const override {
81
- react_native_assert(
82
- dynamic_cast<ConcreteShadowNode const *>(&sourceShadowNode) &&
83
- "Provided `sourceShadowNode` has an incompatible type.");
84
-
85
83
  auto shadowNode = std::make_shared<ShadowNodeT>(sourceShadowNode, fragment);
86
84
 
87
85
  adopt(shadowNode);
@@ -91,10 +89,6 @@ class ConcreteComponentDescriptor : public ComponentDescriptor {
91
89
  void appendChild(
92
90
  const ShadowNode::Shared &parentShadowNode,
93
91
  const ShadowNode::Shared &childShadowNode) const override {
94
- react_native_assert(
95
- dynamic_cast<ConcreteShadowNode const *>(parentShadowNode.get()) &&
96
- "Provided `parentShadowNode` has an incompatible type.");
97
-
98
92
  auto concreteParentShadowNode =
99
93
  std::static_pointer_cast<const ShadowNodeT>(parentShadowNode);
100
94
  auto concreteNonConstParentShadowNode =
@@ -103,13 +97,9 @@ class ConcreteComponentDescriptor : public ComponentDescriptor {
103
97
  }
104
98
 
105
99
  virtual SharedProps cloneProps(
100
+ const PropsParserContext &context,
106
101
  const SharedProps &props,
107
102
  const RawProps &rawProps) const override {
108
- react_native_assert(
109
- !props ||
110
- dynamic_cast<ConcreteProps const *>(props.get()) &&
111
- "Provided `props` has an incompatible type.");
112
-
113
103
  // Optimization:
114
104
  // Quite often nodes are constructed with default/empty props: the base
115
105
  // `props` object is `null` (there no base because it's not cloning) and the
@@ -119,25 +109,33 @@ class ConcreteComponentDescriptor : public ComponentDescriptor {
119
109
  return ShadowNodeT::defaultSharedProps();
120
110
  }
121
111
 
122
- rawProps.parse(rawPropsParser_);
112
+ rawProps.parse(rawPropsParser_, context);
123
113
 
124
- return ShadowNodeT::Props(rawProps, props);
114
+ return ShadowNodeT::Props(context, rawProps, props);
125
115
  };
126
116
 
127
- virtual SharedProps interpolateProps(
117
+ SharedProps interpolateProps(
118
+ const PropsParserContext &context,
128
119
  float animationProgress,
129
120
  const SharedProps &props,
130
121
  const SharedProps &newProps) const override {
131
- // By default, this does nothing.
132
122
  #ifdef ANDROID
133
123
  // On Android only, the merged props should have the same RawProps as the
134
124
  // final props struct
135
- if (newProps != nullptr) {
136
- return cloneProps(newProps, newProps->rawProps);
137
- }
125
+ SharedProps interpolatedPropsShared =
126
+ (newProps != nullptr ? cloneProps(context, newProps, newProps->rawProps)
127
+ : cloneProps(context, newProps, {}));
128
+ #else
129
+ SharedProps interpolatedPropsShared = cloneProps(context, newProps, {});
138
130
  #endif
139
131
 
140
- return cloneProps(newProps, {});
132
+ if (ConcreteShadowNode::BaseTraits().check(
133
+ ShadowNodeTraits::Trait::ViewKind)) {
134
+ interpolateViewProps(
135
+ animationProgress, props, newProps, interpolatedPropsShared);
136
+ }
137
+
138
+ return interpolatedPropsShared;
141
139
  };
142
140
 
143
141
  virtual State::Shared createInitialState(
@@ -10,6 +10,8 @@
10
10
  #include <react/debug/react_native_assert.h>
11
11
  #include <react/renderer/core/ConcreteState.h>
12
12
  #include <react/renderer/core/Props.h>
13
+ #include <react/renderer/core/PropsParserContext.h>
14
+ #include <react/renderer/core/RawProps.h>
13
15
  #include <react/renderer/core/ShadowNode.h>
14
16
  #include <react/renderer/core/StateData.h>
15
17
 
@@ -68,9 +70,11 @@ class ConcreteShadowNode : public BaseShadowNodeT {
68
70
  }
69
71
 
70
72
  static SharedConcreteProps Props(
73
+ const PropsParserContext &context,
71
74
  RawProps const &rawProps,
72
75
  SharedProps const &baseProps = nullptr) {
73
76
  return std::make_shared<PropsT const>(
77
+ context,
74
78
  baseProps ? static_cast<PropsT const &>(*baseProps) : PropsT(),
75
79
  rawProps);
76
80
  }
@@ -20,8 +20,7 @@ EventDispatcher::EventDispatcher(
20
20
  EventQueueProcessor eventProcessor,
21
21
  EventBeat::Factory const &synchonousEventBeatFactory,
22
22
  EventBeat::Factory const &asynchonousEventBeatFactory,
23
- EventBeat::SharedOwnerBox const &ownerBox,
24
- bool unbatchedQueuesOnly)
23
+ EventBeat::SharedOwnerBox const &ownerBox)
25
24
  : synchronousUnbatchedQueue_(std::make_unique<UnbatchedEventQueue>(
26
25
  eventProcessor,
27
26
  synchonousEventBeatFactory(ownerBox))),
@@ -33,8 +32,7 @@ EventDispatcher::EventDispatcher(
33
32
  asynchonousEventBeatFactory(ownerBox))),
34
33
  asynchronousBatchedQueue_(std::make_unique<BatchedEventQueue>(
35
34
  eventProcessor,
36
- asynchonousEventBeatFactory(ownerBox))),
37
- unbatchedQueuesOnly_(unbatchedQueuesOnly) {}
35
+ asynchonousEventBeatFactory(ownerBox))) {}
38
36
 
39
37
  void EventDispatcher::dispatchEvent(RawEvent &&rawEvent, EventPriority priority)
40
38
  const {
@@ -48,36 +46,19 @@ void EventDispatcher::dispatchStateUpdate(
48
46
  }
49
47
 
50
48
  void EventDispatcher::dispatchUniqueEvent(RawEvent &&rawEvent) const {
51
- if (unbatchedQueuesOnly_) {
52
- asynchronousUnbatchedQueue_->enqueueUniqueEvent(std::move(rawEvent));
53
- } else {
54
- asynchronousBatchedQueue_->enqueueUniqueEvent(std::move(rawEvent));
55
- }
49
+ asynchronousBatchedQueue_->enqueueUniqueEvent(std::move(rawEvent));
56
50
  }
57
51
 
58
52
  const EventQueue &EventDispatcher::getEventQueue(EventPriority priority) const {
59
- if (unbatchedQueuesOnly_) {
60
- switch (priority) {
61
- case EventPriority::SynchronousUnbatched:
62
- return *synchronousUnbatchedQueue_;
63
- case EventPriority::SynchronousBatched:
64
- return *synchronousUnbatchedQueue_;
65
- case EventPriority::AsynchronousUnbatched:
66
- return *asynchronousUnbatchedQueue_;
67
- case EventPriority::AsynchronousBatched:
68
- return *asynchronousUnbatchedQueue_;
69
- }
70
- } else {
71
- switch (priority) {
72
- case EventPriority::SynchronousUnbatched:
73
- return *synchronousUnbatchedQueue_;
74
- case EventPriority::SynchronousBatched:
75
- return *synchronousBatchedQueue_;
76
- case EventPriority::AsynchronousUnbatched:
77
- return *asynchronousUnbatchedQueue_;
78
- case EventPriority::AsynchronousBatched:
79
- return *asynchronousBatchedQueue_;
80
- }
53
+ switch (priority) {
54
+ case EventPriority::SynchronousUnbatched:
55
+ return *synchronousUnbatchedQueue_;
56
+ case EventPriority::SynchronousBatched:
57
+ return *synchronousBatchedQueue_;
58
+ case EventPriority::AsynchronousUnbatched:
59
+ return *asynchronousUnbatchedQueue_;
60
+ case EventPriority::AsynchronousBatched:
61
+ return *asynchronousBatchedQueue_;
81
62
  }
82
63
  }
83
64
 
@@ -32,8 +32,7 @@ class EventDispatcher {
32
32
  EventQueueProcessor eventProcessor,
33
33
  EventBeat::Factory const &synchonousEventBeatFactory,
34
34
  EventBeat::Factory const &asynchonousEventBeatFactory,
35
- EventBeat::SharedOwnerBox const &ownerBox,
36
- bool unbatchedQueuesOnly);
35
+ EventBeat::SharedOwnerBox const &ownerBox);
37
36
 
38
37
  /*
39
38
  * Dispatches a raw event with given priority using event-delivery pipe.
@@ -60,8 +59,6 @@ class EventDispatcher {
60
59
  std::unique_ptr<BatchedEventQueue> synchronousBatchedQueue_;
61
60
  std::unique_ptr<UnbatchedEventQueue> asynchronousUnbatchedQueue_;
62
61
  std::unique_ptr<BatchedEventQueue> asynchronousBatchedQueue_;
63
-
64
- bool const unbatchedQueuesOnly_;
65
62
  };
66
63
 
67
64
  } // namespace react
@@ -170,9 +170,6 @@ inline LayoutableShadowNode const &traitCast<LayoutableShadowNode const &>(
170
170
  ShadowNode const &shadowNode) {
171
171
  bool castable =
172
172
  shadowNode.getTraits().check(ShadowNodeTraits::Trait::LayoutableKind);
173
- react_native_assert(
174
- castable ==
175
- (dynamic_cast<LayoutableShadowNode const *>(&shadowNode) != nullptr));
176
173
  react_native_assert(castable);
177
174
  (void)castable;
178
175
  return static_cast<LayoutableShadowNode const &>(shadowNode);
@@ -186,9 +183,6 @@ inline LayoutableShadowNode const *traitCast<LayoutableShadowNode const *>(
186
183
  }
187
184
  bool castable =
188
185
  shadowNode->getTraits().check(ShadowNodeTraits::Trait::LayoutableKind);
189
- react_native_assert(
190
- castable ==
191
- (dynamic_cast<LayoutableShadowNode const *>(shadowNode) != nullptr));
192
186
  if (!castable) {
193
187
  return nullptr;
194
188
  }
@@ -13,8 +13,16 @@
13
13
  namespace facebook {
14
14
  namespace react {
15
15
 
16
- Props::Props(const Props &sourceProps, const RawProps &rawProps)
17
- : nativeId(convertRawProp(rawProps, "nativeID", sourceProps.nativeId, {})),
16
+ Props::Props(
17
+ const PropsParserContext &context,
18
+ const Props &sourceProps,
19
+ const RawProps &rawProps)
20
+ : nativeId(convertRawProp(
21
+ context,
22
+ rawProps,
23
+ "nativeID",
24
+ sourceProps.nativeId,
25
+ {})),
18
26
  revision(sourceProps.revision + 1)
19
27
  #ifdef ANDROID
20
28
  ,
@@ -9,6 +9,8 @@
9
9
 
10
10
  #include <folly/dynamic.h>
11
11
 
12
+ #include <react/renderer/core/PropsParserContext.h>
13
+ #include <react/renderer/core/RawProps.h>
12
14
  #include <react/renderer/core/ReactPrimitives.h>
13
15
  #include <react/renderer/core/Sealable.h>
14
16
  #include <react/renderer/debug/DebugStringConvertible.h>
@@ -28,7 +30,10 @@ class Props : public virtual Sealable, public virtual DebugStringConvertible {
28
30
  using Shared = std::shared_ptr<Props const>;
29
31
 
30
32
  Props() = default;
31
- Props(Props const &sourceProps, RawProps const &rawProps);
33
+ Props(
34
+ const PropsParserContext &context,
35
+ const Props &sourceProps,
36
+ RawProps const &rawProps);
32
37
  virtual ~Props() = default;
33
38
 
34
39
  std::string nativeId;
@@ -0,0 +1,29 @@
1
+ /*
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #pragma once
9
+
10
+ #include <react/renderer/core/ReactPrimitives.h>
11
+ #include <react/utils/ContextContainer.h>
12
+
13
+ namespace facebook {
14
+ namespace react {
15
+
16
+ // For props requiring some context to parse, this toolbox can be used.
17
+ // It should be used as infrequently as possible - most props can and should
18
+ // be parsed without any context.
19
+ struct PropsParserContext {
20
+ // Non-copyable
21
+ PropsParserContext(const PropsParserContext &) = delete;
22
+ PropsParserContext &operator=(const PropsParserContext &) = delete;
23
+
24
+ SurfaceId const surfaceId;
25
+ ContextContainer const &contextContainer;
26
+ };
27
+
28
+ } // namespace react
29
+ } // namespace facebook
@@ -47,7 +47,8 @@ RawProps::RawProps(folly::dynamic const &dynamic) noexcept {
47
47
  dynamic_ = dynamic;
48
48
  }
49
49
 
50
- void RawProps::parse(RawPropsParser const &parser) const noexcept {
50
+ void RawProps::parse(RawPropsParser const &parser, const PropsParserContext &)
51
+ const noexcept {
51
52
  react_native_assert(parser_ == nullptr && "A parser was already assigned.");
52
53
  parser_ = &parser;
53
54
  parser.preparse(*this);
@@ -16,6 +16,7 @@
16
16
  #include <folly/dynamic.h>
17
17
  #include <jsi/JSIDynamic.h>
18
18
  #include <jsi/jsi.h>
19
+ #include <react/renderer/core/PropsParserContext.h>
19
20
  #include <react/renderer/core/RawPropsKey.h>
20
21
  #include <react/renderer/core/RawPropsPrimitives.h>
21
22
  #include <react/renderer/core/RawValue.h>
@@ -74,7 +75,8 @@ class RawProps final {
74
75
  RawProps(RawProps const &other) noexcept = delete;
75
76
  RawProps &operator=(RawProps const &other) noexcept = delete;
76
77
 
77
- void parse(RawPropsParser const &parser) const noexcept;
78
+ void parse(RawPropsParser const &parser, const PropsParserContext &)
79
+ const noexcept;
78
80
 
79
81
  /*
80
82
  * Deprecated. Do not use.
@@ -51,10 +51,18 @@ RawPropsKey::operator std::string() const noexcept {
51
51
  return std::string{buffer, length};
52
52
  }
53
53
 
54
+ static bool areFieldsEqual(char const *lhs, char const *rhs) {
55
+ if (lhs == nullptr || rhs == nullptr) {
56
+ return lhs == rhs;
57
+ }
58
+ return std::string(lhs) == std::string(rhs);
59
+ }
60
+
54
61
  bool operator==(RawPropsKey const &lhs, RawPropsKey const &rhs) noexcept {
55
62
  // Note: We check the name first.
56
- return lhs.name == rhs.name && lhs.prefix == rhs.prefix &&
57
- lhs.suffix == rhs.suffix;
63
+ return areFieldsEqual(lhs.name, rhs.name) &&
64
+ areFieldsEqual(lhs.prefix, rhs.prefix) &&
65
+ areFieldsEqual(lhs.suffix, rhs.suffix);
58
66
  }
59
67
 
60
68
  bool operator!=(RawPropsKey const &lhs, RawPropsKey const &rhs) noexcept {
@@ -10,6 +10,7 @@
10
10
  #include <better/map.h>
11
11
  #include <better/small_vector.h>
12
12
  #include <react/renderer/core/Props.h>
13
+ #include <react/renderer/core/PropsParserContext.h>
13
14
  #include <react/renderer/core/RawProps.h>
14
15
  #include <react/renderer/core/RawPropsKey.h>
15
16
  #include <react/renderer/core/RawPropsKeyMap.h>
@@ -40,8 +41,16 @@ class RawPropsParser final {
40
41
  std::is_base_of<Props, PropsT>::value,
41
42
  "PropsT must be a descendant of Props");
42
43
  RawProps emptyRawProps{};
43
- emptyRawProps.parse(*this);
44
- PropsT({}, emptyRawProps);
44
+
45
+ // Create a stub parser context.
46
+ // Since this prepares the parser by passing in
47
+ // empty props, no prop parsers should actually reference the
48
+ // ContextContainer or SurfaceId here.
49
+ ContextContainer contextContainer{};
50
+ PropsParserContext parserContext{-1, contextContainer};
51
+
52
+ emptyRawProps.parse(*this, parserContext);
53
+ PropsT(parserContext, {}, emptyRawProps);
45
54
  postPrepare();
46
55
  }
47
56
 
@@ -8,8 +8,6 @@
8
8
  #pragma once
9
9
 
10
10
  #include <folly/dynamic.h>
11
- #include <react/renderer/core/RawProps.h>
12
- #include <react/renderer/core/RawValue.h>
13
11
  #include <memory>
14
12
  #include <string>
15
13
 
@@ -6,7 +6,6 @@
6
6
  */
7
7
 
8
8
  #include "ShadowNode.h"
9
- #include "Constants.h"
10
9
  #include "DynamicPropsUtilities.h"
11
10
  #include "ShadowNodeFragment.h"
12
11
 
@@ -39,15 +38,13 @@ SharedProps ShadowNode::propsForClonedShadowNode(
39
38
  ShadowNode const &sourceShadowNode,
40
39
  Props::Shared const &props) {
41
40
  #ifdef ANDROID
42
- if (Constants::getPropsForwardingEnabled()) {
43
- bool hasBeenMounted = sourceShadowNode.hasBeenMounted_;
44
- bool sourceNodeHasRawProps = !sourceShadowNode.getProps()->rawProps.empty();
45
- if (!hasBeenMounted && sourceNodeHasRawProps && props) {
46
- auto &castedProps = const_cast<Props &>(*props);
47
- castedProps.rawProps = mergeDynamicProps(
48
- sourceShadowNode.getProps()->rawProps, props->rawProps);
49
- return props;
50
- }
41
+ bool hasBeenMounted = sourceShadowNode.hasBeenMounted_;
42
+ bool sourceNodeHasRawProps = !sourceShadowNode.getProps()->rawProps.empty();
43
+ if (!hasBeenMounted && sourceNodeHasRawProps && props) {
44
+ auto &castedProps = const_cast<Props &>(*props);
45
+ castedProps.rawProps = mergeDynamicProps(
46
+ sourceShadowNode.getProps()->rawProps, props->rawProps);
47
+ return props;
51
48
  }
52
49
  #endif
53
50
  return props ? props : sourceShadowNode.getProps();
@@ -240,5 +240,9 @@ ShadowNodeReferenceT traitCast(ShadowNode const &shadowNode);
240
240
  template <typename ShadowNodePointerT>
241
241
  ShadowNodePointerT traitCast(ShadowNode const *shadowNode);
242
242
 
243
+ template <typename ShadowNodePointerT>
244
+ std::shared_ptr<ShadowNodePointerT const> traitCast(
245
+ std::shared_ptr<ShadowNode const> shadowNode);
246
+
243
247
  } // namespace react
244
248
  } // namespace facebook
@@ -10,6 +10,7 @@
10
10
  #include <memory>
11
11
 
12
12
  #include <better/mutex.h>
13
+ #include <better/small_vector.h>
13
14
 
14
15
  #include <react/renderer/core/EventEmitter.h>
15
16
  #include <react/renderer/core/ReactPrimitives.h>
@@ -21,7 +21,7 @@ class ShadowNodeTraits {
21
21
  public:
22
22
  /*
23
23
  * Underlying type for the traits.
24
- * The first 18 bits are reserved for Core.
24
+ * The first 23 bits are reserved for Core.
25
25
  */
26
26
  enum Trait : int32_t {
27
27
  None = 0,
@@ -88,6 +88,16 @@ class ShadowNodeTraits {
88
88
 
89
89
  // Inherits 'TextShadowNode'
90
90
  Text = 1 << 17,
91
+
92
+ // Reserved
93
+ ReservedTrait1 = 1 << 18,
94
+ ReservedTrait2 = 1 << 19,
95
+ ReservedTrait3 = 1 << 20,
96
+ ReservedTrait4 = 1 << 21,
97
+ ReservedTrait5 = 1 << 22,
98
+
99
+ // Unserved - alias these for local usage
100
+ UnreservedTrait1 = 1 << 23
91
101
  };
92
102
 
93
103
  /*
@@ -10,6 +10,7 @@
10
10
  #include <better/optional.h>
11
11
  #include <folly/Likely.h>
12
12
  #include <folly/dynamic.h>
13
+ #include <react/renderer/core/PropsParserContext.h>
13
14
  #include <react/renderer/core/RawProps.h>
14
15
  #include <react/renderer/graphics/Color.h>
15
16
  #include <react/renderer/graphics/Geometry.h>
@@ -19,12 +20,18 @@ namespace facebook {
19
20
  namespace react {
20
21
 
21
22
  template <typename T>
22
- void fromRawValue(RawValue const &rawValue, T &result) {
23
+ void fromRawValue(
24
+ const PropsParserContext &context,
25
+ RawValue const &rawValue,
26
+ T &result) {
23
27
  result = (T)rawValue;
24
28
  }
25
29
 
26
30
  template <typename T>
27
- void fromRawValue(RawValue const &rawValue, std::vector<T> &result) {
31
+ void fromRawValue(
32
+ const PropsParserContext &context,
33
+ RawValue const &rawValue,
34
+ std::vector<T> &result) {
28
35
  if (rawValue.hasType<std::vector<RawValue>>()) {
29
36
  auto items = (std::vector<RawValue>)rawValue;
30
37
  auto length = items.size();
@@ -32,7 +39,7 @@ void fromRawValue(RawValue const &rawValue, std::vector<T> &result) {
32
39
  result.reserve(length);
33
40
  for (size_t i = 0; i < length; i++) {
34
41
  T itemResult;
35
- fromRawValue(items.at(i), itemResult);
42
+ fromRawValue(context, items.at(i), itemResult);
36
43
  result.push_back(itemResult);
37
44
  }
38
45
  return;
@@ -42,12 +49,13 @@ void fromRawValue(RawValue const &rawValue, std::vector<T> &result) {
42
49
  result.clear();
43
50
  result.reserve(1);
44
51
  T itemResult;
45
- fromRawValue(rawValue, itemResult);
52
+ fromRawValue(context, rawValue, itemResult);
46
53
  result.push_back(itemResult);
47
54
  }
48
55
 
49
56
  template <typename T>
50
57
  void fromRawValue(
58
+ const PropsParserContext &context,
51
59
  RawValue const &rawValue,
52
60
  std::vector<std::vector<T>> &result) {
53
61
  if (rawValue.hasType<std::vector<std::vector<RawValue>>>()) {
@@ -57,7 +65,7 @@ void fromRawValue(
57
65
  result.reserve(length);
58
66
  for (int i = 0; i < length; i++) {
59
67
  T itemResult;
60
- fromRawValue(items.at(i), itemResult);
68
+ fromRawValue(context, items.at(i), itemResult);
61
69
  result.push_back(itemResult);
62
70
  }
63
71
  return;
@@ -67,12 +75,13 @@ void fromRawValue(
67
75
  result.clear();
68
76
  result.reserve(1);
69
77
  T itemResult;
70
- fromRawValue(rawValue, itemResult);
78
+ fromRawValue(context, rawValue, itemResult);
71
79
  result.push_back(itemResult);
72
80
  }
73
81
 
74
82
  template <typename T, typename U = T>
75
83
  T convertRawProp(
84
+ const PropsParserContext &context,
76
85
  RawProps const &rawProps,
77
86
  char const *name,
78
87
  T const &sourceValue,
@@ -92,12 +101,13 @@ T convertRawProp(
92
101
  }
93
102
 
94
103
  T result;
95
- fromRawValue(*rawValue, result);
104
+ fromRawValue(context, *rawValue, result);
96
105
  return result;
97
106
  }
98
107
 
99
108
  template <typename T>
100
109
  static better::optional<T> convertRawProp(
110
+ const PropsParserContext &context,
101
111
  RawProps const &rawProps,
102
112
  char const *name,
103
113
  better::optional<T> const &sourceValue,
@@ -117,7 +127,7 @@ static better::optional<T> convertRawProp(
117
127
  }
118
128
 
119
129
  T result;
120
- fromRawValue(*rawValue, result);
130
+ fromRawValue(context, *rawValue, result);
121
131
  return better::optional<T>{result};
122
132
  }
123
133
 
@@ -7,6 +7,8 @@
7
7
 
8
8
  #include <gtest/gtest.h>
9
9
 
10
+ #include <react/renderer/core/PropsParserContext.h>
11
+
10
12
  #include "TestComponent.h"
11
13
 
12
14
  using namespace facebook::react;
@@ -21,8 +23,11 @@ TEST(ComponentDescriptorTest, createShadowNode) {
21
23
  EXPECT_STREQ(descriptor->getComponentName(), TestShadowNode::Name());
22
24
  EXPECT_STREQ(descriptor->getComponentName(), "Test");
23
25
 
26
+ ContextContainer contextContainer{};
27
+ PropsParserContext parserContext{-1, contextContainer};
28
+
24
29
  const auto &raw = RawProps(folly::dynamic::object("nativeID", "abc"));
25
- SharedProps props = descriptor->cloneProps(nullptr, raw);
30
+ SharedProps props = descriptor->cloneProps(parserContext, nullptr, raw);
26
31
 
27
32
  auto family = descriptor->createFamily(
28
33
  ShadowNodeFamilyFragment{
@@ -52,8 +57,11 @@ TEST(ComponentDescriptorTest, cloneShadowNode) {
52
57
  std::make_shared<TestComponentDescriptor>(
53
58
  ComponentDescriptorParameters{eventDispatcher, nullptr, nullptr});
54
59
 
60
+ ContextContainer contextContainer{};
61
+ PropsParserContext parserContext{-1, contextContainer};
62
+
55
63
  const auto &raw = RawProps(folly::dynamic::object("nativeID", "abc"));
56
- SharedProps props = descriptor->cloneProps(nullptr, raw);
64
+ SharedProps props = descriptor->cloneProps(parserContext, nullptr, raw);
57
65
  auto family = descriptor->createFamily(
58
66
  ShadowNodeFamilyFragment{
59
67
  /* .tag = */ 9,
@@ -73,7 +81,8 @@ TEST(ComponentDescriptorTest, cloneShadowNode) {
73
81
  EXPECT_EQ(cloned->getSurfaceId(), 1);
74
82
  EXPECT_STREQ(cloned->getProps()->nativeId.c_str(), "abc");
75
83
 
76
- auto clonedButSameProps = descriptor->cloneProps(props, RawProps());
84
+ auto clonedButSameProps =
85
+ descriptor->cloneProps(parserContext, props, RawProps());
77
86
  EXPECT_NE(clonedButSameProps, props);
78
87
  }
79
88
 
@@ -83,8 +92,11 @@ TEST(ComponentDescriptorTest, appendChild) {
83
92
  std::make_shared<TestComponentDescriptor>(
84
93
  ComponentDescriptorParameters{eventDispatcher, nullptr, nullptr});
85
94
 
95
+ ContextContainer contextContainer{};
96
+ PropsParserContext parserContext{-1, contextContainer};
97
+
86
98
  const auto &raw = RawProps(folly::dynamic::object("nativeID", "abc"));
87
- SharedProps props = descriptor->cloneProps(nullptr, raw);
99
+ SharedProps props = descriptor->cloneProps(parserContext, nullptr, raw);
88
100
  auto family1 = descriptor->createFamily(
89
101
  ShadowNodeFamilyFragment{
90
102
  /* .tag = */ 1,