react-native 0.75.0-rc.4 → 0.75.0-rc.6

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 (107) hide show
  1. package/Libraries/AppDelegate/React-RCTAppDelegate.podspec +2 -2
  2. package/Libraries/Blob/React-RCTBlob.podspec +1 -1
  3. package/Libraries/Core/ReactNativeVersion.js +1 -1
  4. package/Libraries/Image/RCTImageLoader.mm +2 -6
  5. package/Libraries/Image/React-RCTImage.podspec +1 -1
  6. package/Libraries/LinkingIOS/React-RCTLinking.podspec +1 -1
  7. package/Libraries/NativeAnimation/React-RCTAnimation.podspec +1 -1
  8. package/Libraries/Network/RCTNetworkTask.mm +4 -3
  9. package/Libraries/Network/React-RCTNetwork.podspec +1 -1
  10. package/Libraries/PushNotificationIOS/React-RCTPushNotification.podspec +1 -1
  11. package/Libraries/Renderer/implementations/ReactFabric-dev.js +26149 -15434
  12. package/Libraries/Renderer/implementations/ReactFabric-prod.js +1630 -2675
  13. package/Libraries/Renderer/implementations/ReactFabric-profiling.js +1691 -2954
  14. package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +27069 -16192
  15. package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +1657 -2714
  16. package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +1733 -2980
  17. package/Libraries/Settings/React-RCTSettings.podspec +1 -1
  18. package/Libraries/Text/React-RCTText.podspec +1 -1
  19. package/Libraries/TypeSafety/RCTTypeSafety.podspec +1 -1
  20. package/Libraries/Utilities/Platform.android.js +1 -1
  21. package/Libraries/Utilities/Platform.d.ts +1 -1
  22. package/Libraries/Utilities/Platform.flow.js +2 -2
  23. package/Libraries/Utilities/Platform.ios.js +1 -1
  24. package/Libraries/Vibration/React-RCTVibration.podspec +1 -1
  25. package/React/Base/RCTVersion.m +1 -1
  26. package/React/CoreModules/RCTPlatform.mm +1 -3
  27. package/React/CoreModules/React-CoreModules.podspec +1 -1
  28. package/React/React-RCTFabric.podspec +1 -1
  29. package/React/Views/RCTComponentData.m +11 -3
  30. package/React-Core.podspec +1 -1
  31. package/ReactAndroid/api/ReactAndroid.api +2 -0
  32. package/ReactAndroid/build.gradle.kts +28 -0
  33. package/ReactAndroid/cmake-utils/ReactNative-application.cmake +5 -0
  34. package/ReactAndroid/gradle.properties +1 -1
  35. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstance.kt +4 -1
  36. package/ReactAndroid/src/main/java/com/facebook/react/bridge/Dynamic.kt +4 -4
  37. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModule.java +64 -0
  38. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableMap.kt +2 -2
  39. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ReadableNativeMap.kt +24 -24
  40. package/ReactAndroid/src/main/java/com/facebook/react/modules/i18nmanager/I18nUtil.kt +11 -0
  41. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
  42. package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +3 -1
  43. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FilterHelper.kt +3 -3
  44. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/LengthPercentage.kt +2 -2
  45. package/ReactAndroid/src/main/java/com/facebook/react/views/imagehelper/ResourceDrawableIdHelper.kt +10 -0
  46. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +3 -3
  47. package/ReactApple/Libraries/RCTFoundation/RCTDeprecation/RCTDeprecation.podspec +1 -1
  48. package/ReactCommon/React-Fabric.podspec +1 -1
  49. package/ReactCommon/React-FabricComponents.podspec +1 -1
  50. package/ReactCommon/React-FabricImage.podspec +1 -1
  51. package/ReactCommon/React-Mapbuffer.podspec +1 -1
  52. package/ReactCommon/React-nativeconfig.podspec +1 -1
  53. package/ReactCommon/React-rncore.podspec +1 -1
  54. package/ReactCommon/ReactCommon.podspec +1 -1
  55. package/ReactCommon/cxxreact/React-cxxreact.podspec +1 -1
  56. package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
  57. package/ReactCommon/hermes/React-hermes.podspec +1 -1
  58. package/ReactCommon/hermes/executor/React-jsitracing.podspec +1 -1
  59. package/ReactCommon/jserrorhandler/React-jserrorhandler.podspec +1 -1
  60. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +1 -1
  61. package/ReactCommon/jsinspector-modern/React-jsinspector.podspec +1 -1
  62. package/ReactCommon/react/debug/React-debug.podspec +1 -1
  63. package/ReactCommon/react/featureflags/React-featureflags.podspec +1 -1
  64. package/ReactCommon/react/nativemodule/core/platform/ios/React-NativeModulesApple.podspec +1 -1
  65. package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +1 -1
  66. package/ReactCommon/react/nativemodule/dom/React-domnativemodule.podspec +1 -1
  67. package/ReactCommon/react/nativemodule/featureflags/React-featureflagsnativemodule.podspec +1 -1
  68. package/ReactCommon/react/nativemodule/idlecallbacks/React-idlecallbacksnativemodule.podspec +1 -1
  69. package/ReactCommon/react/nativemodule/microtasks/React-microtasksnativemodule.podspec +1 -1
  70. package/ReactCommon/react/nativemodule/samples/ReactCommon-Samples.podspec +1 -1
  71. package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -1
  72. package/ReactCommon/react/renderer/components/legacyviewmanagerinterop/LegacyViewManagerInteropComponentDescriptor.mm +4 -3
  73. package/ReactCommon/react/renderer/components/textinput/CMakeLists.txt +1 -1
  74. package/ReactCommon/react/renderer/consistency/React-rendererconsistency.podspec +1 -1
  75. package/ReactCommon/react/renderer/debug/React-rendererdebug.podspec +1 -1
  76. package/ReactCommon/react/renderer/graphics/React-graphics.podspec +1 -1
  77. package/ReactCommon/react/renderer/imagemanager/platform/ios/React-ImageManager.podspec +1 -1
  78. package/ReactCommon/react/renderer/runtimescheduler/React-runtimescheduler.podspec +1 -1
  79. package/ReactCommon/react/renderer/runtimescheduler/RuntimeScheduler_Modern.cpp +1 -1
  80. package/ReactCommon/react/renderer/runtimescheduler/SchedulerPriorityUtils.h +4 -4
  81. package/ReactCommon/react/renderer/runtimescheduler/tests/RuntimeSchedulerTest.cpp +65 -0
  82. package/ReactCommon/react/renderer/runtimescheduler/tests/SchedulerPriorityTest.cpp +2 -2
  83. package/ReactCommon/react/runtime/React-RuntimeCore.podspec +1 -1
  84. package/ReactCommon/react/runtime/React-RuntimeHermes.podspec +1 -1
  85. package/ReactCommon/react/runtime/platform/ios/React-RuntimeApple.podspec +2 -1
  86. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +2 -2
  87. package/ReactCommon/react/utils/React-utils.podspec +1 -1
  88. package/ReactCommon/reactperflogger/React-perflogger.podspec +2 -1
  89. package/cli.js +45 -16
  90. package/package.json +13 -13
  91. package/scripts/cocoapods/helpers.rb +4 -0
  92. package/scripts/cocoapods/new_architecture.rb +10 -23
  93. package/scripts/cocoapods/privacy_manifest_utils.rb +15 -6
  94. package/scripts/cocoapods/spm.rb +94 -0
  95. package/scripts/cocoapods/utils.rb +12 -1
  96. package/scripts/react-native-xcode.sh +2 -2
  97. package/scripts/react_native_pods.rb +18 -0
  98. package/sdks/hermesc/osx-bin/hermes +0 -0
  99. package/sdks/hermesc/osx-bin/hermesc +0 -0
  100. package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
  101. package/src/private/specs/modules/NativePlatformConstantsAndroid.js +1 -1
  102. package/src/private/specs/modules/NativePlatformConstantsIOS.js +1 -1
  103. package/third-party-podspecs/RCT-Folly.podspec +1 -1
  104. package/third-party-podspecs/fmt.podspec +1 -1
  105. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModule.kt +0 -55
  106. package/ReactCommon/react/runtime/BridgelessJSCallInvoker.cpp +0 -29
  107. package/ReactCommon/react/runtime/BridgelessJSCallInvoker.h +0 -30
@@ -36,7 +36,7 @@ Pod::Spec.new do |s|
36
36
  s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags
37
37
  s.pod_target_xcconfig = {
38
38
  "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/RCT-Folly\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/fmt/include\" \"$(PODS_CONFIGURATION_BUILD_DIR)/React-debug/React_debug.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers\"",
39
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20"
39
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard()
40
40
  }
41
41
  s.header_dir = "cxxreact"
42
42
 
@@ -18,7 +18,7 @@ constexpr struct {
18
18
  int32_t Major = 0;
19
19
  int32_t Minor = 75;
20
20
  int32_t Patch = 0;
21
- std::string_view Prerelease = "rc.4";
21
+ std::string_view Prerelease = "rc.6";
22
22
  } ReactNativeVersion;
23
23
 
24
24
  } // namespace facebook::react
@@ -37,7 +37,7 @@ Pod::Spec.new do |s|
37
37
  s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags
38
38
  s.pod_target_xcconfig = {
39
39
  "HEADER_SEARCH_PATHS" => "\"${PODS_ROOT}/hermes-engine/destroot/include\" \"$(PODS_TARGET_SRCROOT)/..\" \"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/RCT-Folly\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/fmt/include\"",
40
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20"
40
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard()
41
41
  }
42
42
  s.header_dir = "reacthermes"
43
43
  s.dependency "React-cxxreact", version
@@ -29,7 +29,7 @@ Pod::Spec.new do |s|
29
29
  s.header_dir = "."
30
30
  s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"${PODS_TARGET_SRCROOT}/../..\"",
31
31
  "USE_HEADERMAP" => "YES",
32
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
32
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
33
33
  "GCC_WARN_PEDANTIC" => "YES" }
34
34
 
35
35
  if ENV['USE_FRAMEWORKS']
@@ -36,7 +36,7 @@ Pod::Spec.new do |s|
36
36
  s.source_files = "JsErrorHandler.{cpp,h}"
37
37
  s.pod_target_xcconfig = {
38
38
  "USE_HEADERMAP" => "YES",
39
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20"
39
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard()
40
40
  }
41
41
  s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags
42
42
 
@@ -33,7 +33,7 @@ Pod::Spec.new do |s|
33
33
  s.source_files = "jsireact/*.{cpp,h}"
34
34
  s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags
35
35
  s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/RCT-Folly\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/fmt/include\"",
36
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20" }
36
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard() }
37
37
  s.header_dir = "jsireact"
38
38
 
39
39
  s.dependency "React-cxxreact", version
@@ -38,7 +38,7 @@ Pod::Spec.new do |s|
38
38
  s.compiler_flags = folly_compiler_flags
39
39
  s.pod_target_xcconfig = {
40
40
  "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/..\" \"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/RCT-Folly\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/fmt/include\"",
41
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
41
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
42
42
  "DEFINES_MODULE" => "YES"
43
43
  }.merge!(use_frameworks ? {
44
44
  "PUBLIC_HEADERS_FOLDER_PATH" => "#{module_name}.framework/Headers/#{header_dir}"
@@ -27,7 +27,7 @@ Pod::Spec.new do |s|
27
27
  s.source = source
28
28
  s.source_files = "**/*.{cpp,h}"
29
29
  s.header_dir = "react/debug"
30
- s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
30
+ s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
31
31
  "DEFINES_MODULE" => "YES" }
32
32
 
33
33
  if ENV['USE_FRAMEWORKS']
@@ -33,7 +33,7 @@ Pod::Spec.new do |s|
33
33
  s.source = source
34
34
  s.source_files = "*.{cpp,h}"
35
35
  s.header_dir = "react/featureflags"
36
- s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
36
+ s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
37
37
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' '),
38
38
  "DEFINES_MODULE" => "YES" }
39
39
 
@@ -36,7 +36,7 @@ Pod::Spec.new do |s|
36
36
  s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags
37
37
  s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/RCT-Folly\" \"$(PODS_ROOT)/DoubleConversion\" \"$(PODS_ROOT)/fmt/include\" \"$(PODS_ROOT)/Headers/Private/React-Core\"",
38
38
  "USE_HEADERMAP" => "YES",
39
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
39
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
40
40
  "GCC_WARN_PEDANTIC" => "YES" }
41
41
  if ENV['USE_FRAMEWORKS']
42
42
  s.header_mappings_dir = './'
@@ -33,7 +33,7 @@ Pod::Spec.new do |s|
33
33
  s.source = source
34
34
  s.source_files = "*.{cpp,h}"
35
35
  s.header_dir = "react/nativemodule/defaults"
36
- s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
36
+ s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
37
37
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' '),
38
38
  "DEFINES_MODULE" => "YES" }
39
39
 
@@ -33,7 +33,7 @@ Pod::Spec.new do |s|
33
33
  s.source = source
34
34
  s.source_files = "*.{cpp,h}"
35
35
  s.header_dir = "react/nativemodule/dom"
36
- s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
36
+ s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
37
37
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' '),
38
38
  "DEFINES_MODULE" => "YES" }
39
39
 
@@ -33,7 +33,7 @@ Pod::Spec.new do |s|
33
33
  s.source = source
34
34
  s.source_files = "*.{cpp,h}"
35
35
  s.header_dir = "react/nativemodule/featureflags"
36
- s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
36
+ s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
37
37
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' '),
38
38
  "DEFINES_MODULE" => "YES" }
39
39
 
@@ -33,7 +33,7 @@ Pod::Spec.new do |s|
33
33
  s.source = source
34
34
  s.source_files = "*.{cpp,h}"
35
35
  s.header_dir = "react/nativemodule/idlecallbacks"
36
- s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
36
+ s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
37
37
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' '),
38
38
  "DEFINES_MODULE" => "YES" }
39
39
 
@@ -33,7 +33,7 @@ Pod::Spec.new do |s|
33
33
  s.source = source
34
34
  s.source_files = "*.{cpp,h}"
35
35
  s.header_dir = "react/nativemodule/microtasks"
36
- s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
36
+ s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
37
37
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' '),
38
38
  "DEFINES_MODULE" => "YES" }
39
39
 
@@ -47,7 +47,7 @@ Pod::Spec.new do |s|
47
47
  s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags
48
48
  s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => header_search_paths,
49
49
  "USE_HEADERMAP" => "YES",
50
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
50
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
51
51
  "GCC_WARN_PEDANTIC" => "YES" }
52
52
  if ENV['USE_FRAMEWORKS']
53
53
  s.header_mappings_dir = './'
@@ -43,7 +43,7 @@ Pod::Spec.new do |s|
43
43
  s.header_dir = "react/performance/timeline"
44
44
  s.exclude_files = "tests"
45
45
  s.pod_target_xcconfig = {
46
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
46
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
47
47
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' ')}
48
48
 
49
49
  if ENV['USE_FRAMEWORKS']
@@ -125,9 +125,10 @@ static const std::shared_ptr<void> constructCoordinator(
125
125
  bridgeModuleDecorator = unwrapManagedObject(optionalModuleDecorator.value());
126
126
  }
127
127
 
128
- RCTComponentData *componentData = [[RCTComponentData alloc] initWithManagerClass:viewManagerClass
129
- bridge:bridge
130
- eventDispatcher:eventDispatcher];
128
+ RCTComponentData *componentData =
129
+ [[RCTComponentData alloc] initWithManagerClass:viewManagerClass
130
+ bridge:bridge != nil ? bridge : (RCTBridge *)bridgeProxy
131
+ eventDispatcher:eventDispatcher];
131
132
  return wrapManagedObject([[RCTLegacyViewManagerInteropCoordinator alloc]
132
133
  initWithComponentData:componentData
133
134
  bridge:bridge
@@ -15,7 +15,7 @@ add_compile_options(
15
15
  -DLOG_TAG=\"Fabric\")
16
16
 
17
17
  file(GLOB rrc_textinput_SRC CONFIGURE_DEPENDS *.cpp platform/android/react/renderer/components/androidtextinput/*.cpp)
18
- add_library(rrc_textinput STATIC ${rrc_textinput_SRC})
18
+ add_library(rrc_textinput SHARED ${rrc_textinput_SRC})
19
19
 
20
20
  target_include_directories(rrc_textinput PUBLIC . ${CMAKE_CURRENT_SOURCE_DIR}/platform/android/)
21
21
 
@@ -35,7 +35,7 @@ Pod::Spec.new do |s|
35
35
  s.header_dir = "react/renderer/consistency"
36
36
  s.exclude_files = "tests"
37
37
  s.pod_target_xcconfig = {
38
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
38
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
39
39
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' ')}
40
40
 
41
41
  if ENV['USE_FRAMEWORKS']
@@ -45,7 +45,7 @@ Pod::Spec.new do |s|
45
45
  s.header_dir = "react/renderer/debug"
46
46
  s.exclude_files = "tests"
47
47
  s.pod_target_xcconfig = {
48
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
48
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
49
49
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' '),
50
50
  "DEFINES_MODULE" => "YES"
51
51
  }
@@ -57,7 +57,7 @@ Pod::Spec.new do |s|
57
57
  s.pod_target_xcconfig = { "USE_HEADERMAP" => "NO",
58
58
  "HEADER_SEARCH_PATHS" => header_search_paths.join(" "),
59
59
  "DEFINES_MODULE" => "YES",
60
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20" }
60
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard() }
61
61
 
62
62
  s.dependency "glog"
63
63
  s.dependency "RCT-Folly/Fabric", folly_version
@@ -50,7 +50,7 @@ Pod::Spec.new do |s|
50
50
  s.pod_target_xcconfig = {
51
51
  "USE_HEADERMAP" => "NO",
52
52
  "HEADER_SEARCH_PATHS" => header_search_paths,
53
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
53
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
54
54
  "DEFINES_MODULE" => "YES",
55
55
  }
56
56
 
@@ -43,7 +43,7 @@ Pod::Spec.new do |s|
43
43
  s.header_dir = "react/renderer/runtimescheduler"
44
44
  s.exclude_files = "tests"
45
45
  s.pod_target_xcconfig = {
46
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
46
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
47
47
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' ')}
48
48
 
49
49
  if ENV['USE_FRAMEWORKS']
@@ -24,7 +24,7 @@ std::chrono::milliseconds getResolvedTimeoutForIdleTask(
24
24
  timeoutForSchedulerPriority(SchedulerPriority::IdlePriority)
25
25
  ? timeoutForSchedulerPriority(SchedulerPriority::LowPriority) +
26
26
  customTimeout
27
- : timeoutForSchedulerPriority(SchedulerPriority::IdlePriority);
27
+ : customTimeout;
28
28
  }
29
29
  } // namespace
30
30
 
@@ -41,15 +41,15 @@ static inline std::chrono::milliseconds timeoutForSchedulerPriority(
41
41
  SchedulerPriority schedulerPriority) noexcept {
42
42
  switch (schedulerPriority) {
43
43
  case SchedulerPriority::ImmediatePriority:
44
- return std::chrono::milliseconds(-1);
44
+ return std::chrono::milliseconds(0);
45
45
  case SchedulerPriority::UserBlockingPriority:
46
46
  return std::chrono::milliseconds(250);
47
47
  case SchedulerPriority::NormalPriority:
48
- return std::chrono::milliseconds(5000);
48
+ return std::chrono::seconds(5);
49
49
  case SchedulerPriority::LowPriority:
50
- return std::chrono::milliseconds(10'000);
50
+ return std::chrono::seconds(10);
51
51
  case SchedulerPriority::IdlePriority:
52
- return std::chrono::milliseconds::max();
52
+ return std::chrono::minutes(5);
53
53
  }
54
54
  }
55
55
 
@@ -332,6 +332,71 @@ TEST_P(RuntimeSchedulerTest, scheduleTwoTasksWithDifferentPriorities) {
332
332
  EXPECT_EQ(hostFunctionCallCount_, 2);
333
333
  }
334
334
 
335
+ TEST_P(RuntimeSchedulerTest, scheduleTwoTasksWithAllPriorities) {
336
+ uint idlePriorityTaskCallOrder = 0;
337
+ auto idlePriTask = createHostFunctionFromLambda(
338
+ [this, &idlePriorityTaskCallOrder](bool /*unused*/) {
339
+ idlePriorityTaskCallOrder = hostFunctionCallCount_;
340
+ return jsi::Value::undefined();
341
+ });
342
+
343
+ uint lowPriorityTaskCallOrder = 0;
344
+ auto lowPriTask = createHostFunctionFromLambda(
345
+ [this, &lowPriorityTaskCallOrder](bool /*unused*/) {
346
+ lowPriorityTaskCallOrder = hostFunctionCallCount_;
347
+ return jsi::Value::undefined();
348
+ });
349
+
350
+ uint normalPriorityTaskCallOrder = 0;
351
+ auto normalPriTask = createHostFunctionFromLambda(
352
+ [this, &normalPriorityTaskCallOrder](bool /*unused*/) {
353
+ normalPriorityTaskCallOrder = hostFunctionCallCount_;
354
+ return jsi::Value::undefined();
355
+ });
356
+
357
+ uint userBlockingPriorityTaskCallOrder = 0;
358
+ auto userBlockingPriTask = createHostFunctionFromLambda(
359
+ [this, &userBlockingPriorityTaskCallOrder](bool /*unused*/) {
360
+ userBlockingPriorityTaskCallOrder = hostFunctionCallCount_;
361
+ return jsi::Value::undefined();
362
+ });
363
+
364
+ uint immediatePriorityTaskCallOrder = 0;
365
+ auto immediatePriTask = createHostFunctionFromLambda(
366
+ [this, &immediatePriorityTaskCallOrder](bool /*unused*/) {
367
+ immediatePriorityTaskCallOrder = hostFunctionCallCount_;
368
+ return jsi::Value::undefined();
369
+ });
370
+
371
+ runtimeScheduler_->scheduleTask(
372
+ SchedulerPriority::IdlePriority, std::move(idlePriTask));
373
+ runtimeScheduler_->scheduleTask(
374
+ SchedulerPriority::LowPriority, std::move(lowPriTask));
375
+ runtimeScheduler_->scheduleTask(
376
+ SchedulerPriority::NormalPriority, std::move(normalPriTask));
377
+ runtimeScheduler_->scheduleTask(
378
+ SchedulerPriority::UserBlockingPriority, std::move(userBlockingPriTask));
379
+ runtimeScheduler_->scheduleTask(
380
+ SchedulerPriority::ImmediatePriority, std::move(immediatePriTask));
381
+
382
+ EXPECT_EQ(idlePriorityTaskCallOrder, 0);
383
+ EXPECT_EQ(lowPriorityTaskCallOrder, 0);
384
+ EXPECT_EQ(normalPriorityTaskCallOrder, 0);
385
+ EXPECT_EQ(userBlockingPriorityTaskCallOrder, 0);
386
+ EXPECT_EQ(immediatePriorityTaskCallOrder, 0);
387
+ EXPECT_EQ(stubQueue_->size(), 1);
388
+
389
+ stubQueue_->tick();
390
+
391
+ EXPECT_EQ(idlePriorityTaskCallOrder, 5);
392
+ EXPECT_EQ(lowPriorityTaskCallOrder, 4);
393
+ EXPECT_EQ(normalPriorityTaskCallOrder, 3);
394
+ EXPECT_EQ(userBlockingPriorityTaskCallOrder, 2);
395
+ EXPECT_EQ(immediatePriorityTaskCallOrder, 1);
396
+ EXPECT_EQ(stubQueue_->size(), 0);
397
+ EXPECT_EQ(hostFunctionCallCount_, 5);
398
+ }
399
+
335
400
  TEST_P(RuntimeSchedulerTest, cancelTask) {
336
401
  bool didRunTask = false;
337
402
  auto callback = createHostFunctionFromLambda([&didRunTask](bool /*unused*/) {
@@ -31,7 +31,7 @@ TEST(SchedulerPriorityTest, serialize) {
31
31
  TEST(SchedulerPriorityTest, timeoutForSchedulerPriority) {
32
32
  EXPECT_EQ(
33
33
  timeoutForSchedulerPriority(SchedulerPriority::ImmediatePriority),
34
- std::chrono::milliseconds(-1));
34
+ std::chrono::milliseconds(0));
35
35
  EXPECT_EQ(
36
36
  timeoutForSchedulerPriority(SchedulerPriority::UserBlockingPriority),
37
37
  std::chrono::milliseconds(250));
@@ -43,5 +43,5 @@ TEST(SchedulerPriorityTest, timeoutForSchedulerPriority) {
43
43
  std::chrono::seconds(10));
44
44
  EXPECT_EQ(
45
45
  timeoutForSchedulerPriority(SchedulerPriority::IdlePriority),
46
- std::chrono::milliseconds::max());
46
+ std::chrono::minutes(5));
47
47
  }
@@ -37,7 +37,7 @@ Pod::Spec.new do |s|
37
37
  s.header_dir = "react/runtime"
38
38
  s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\" \"$(PODS_ROOT)/Headers/Private/React-Core\" \"${PODS_TARGET_SRCROOT}/../..\"",
39
39
  "USE_HEADERMAP" => "YES",
40
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
40
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
41
41
  "GCC_WARN_PEDANTIC" => "YES" }
42
42
  s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags
43
43
 
@@ -35,7 +35,7 @@ Pod::Spec.new do |s|
35
35
  s.header_dir = "react/runtime/hermes"
36
36
  s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"${PODS_TARGET_SRCROOT}/../..\" \"${PODS_TARGET_SRCROOT}/../../hermes/executor\" \"$(PODS_ROOT)/boost\"",
37
37
  "USE_HEADERMAP" => "YES",
38
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
38
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
39
39
  "GCC_WARN_PEDANTIC" => "YES" }
40
40
  s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags
41
41
 
@@ -42,7 +42,7 @@ Pod::Spec.new do |s|
42
42
  s.header_dir = "ReactCommon"
43
43
  s.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => header_search_paths,
44
44
  "USE_HEADERMAP" => "YES",
45
- "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
45
+ "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
46
46
  "GCC_WARN_PEDANTIC" => "YES" }
47
47
  s.compiler_flags = folly_compiler_flags + ' ' + boost_compiler_flags
48
48
 
@@ -56,6 +56,7 @@ Pod::Spec.new do |s|
56
56
  s.dependency "React-cxxreact"
57
57
  s.dependency "React-callinvoker"
58
58
  s.dependency "React-runtimeexecutor"
59
+ s.dependency "React-runtimescheduler"
59
60
  s.dependency "React-utils"
60
61
  s.dependency "React-jsi"
61
62
  s.dependency "React-Core/Default"
@@ -37,7 +37,7 @@
37
37
  #import <cxxreact/ReactMarker.h>
38
38
  #import <jsinspector-modern/ReactCdp.h>
39
39
  #import <jsireact/JSIExecutor.h>
40
- #import <react/runtime/BridgelessJSCallInvoker.h>
40
+ #import <react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h>
41
41
  #import <react/utils/ContextContainer.h>
42
42
  #import <react/utils/ManagedObjectWrapper.h>
43
43
 
@@ -249,7 +249,7 @@ void RCTInstanceSetRuntimeDiagnosticFlags(NSString *flags)
249
249
  RuntimeExecutor bufferedRuntimeExecutor = _reactInstance->getBufferedRuntimeExecutor();
250
250
  timerManager->setRuntimeExecutor(bufferedRuntimeExecutor);
251
251
 
252
- auto jsCallInvoker = make_shared<BridgelessJSCallInvoker>(bufferedRuntimeExecutor);
252
+ auto jsCallInvoker = make_shared<RuntimeSchedulerCallInvoker>(_reactInstance->getRuntimeScheduler());
253
253
  RCTBridgeProxy *bridgeProxy =
254
254
  [[RCTBridgeProxy alloc] initWithViewRegistry:_bridgeModuleDecorator.viewRegistry_DEPRECATED
255
255
  moduleRegistry:_bridgeModuleDecorator.moduleRegistry
@@ -39,7 +39,7 @@ Pod::Spec.new do |s|
39
39
  s.compiler_flags = folly_compiler_flags
40
40
  s.header_dir = "react/utils"
41
41
  s.exclude_files = "tests"
42
- s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => "c++20",
42
+ s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
43
43
  "HEADER_SEARCH_PATHS" => header_search_paths.join(' '),
44
44
  "DEFINES_MODULE" => "YES" }
45
45
 
@@ -32,5 +32,6 @@ Pod::Spec.new do |s|
32
32
  s.source = source
33
33
  s.source_files = "**/*.{cpp,h}"
34
34
  s.header_dir = "reactperflogger"
35
- s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => "c++20" }
35
+ s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard() }
36
+ s.compiler_flags = folly_compiler_flags
36
37
  end
package/cli.js CHANGED
@@ -22,6 +22,13 @@ const deprecated = () => {
22
22
  );
23
23
  };
24
24
 
25
+ function isMissingCliDependency(error) {
26
+ return (
27
+ error.code === 'MODULE_NOT_FOUND' &&
28
+ /@react-native-community\/cli/.test(error.message)
29
+ );
30
+ }
31
+
25
32
  let cli = {
26
33
  bin: '/dev/null',
27
34
  loadConfig: deprecated,
@@ -107,17 +114,30 @@ The behavior will be changed on ${chalk.white.bold(CLI_DEPRECATION_DATE.toLocale
107
114
  }
108
115
 
109
116
  function warnWithDeprecated() {
110
- if (process.argv[2] !== 'init') {
117
+ if (!isInitCommand) {
111
118
  return;
112
119
  }
113
120
 
114
121
  console.warn(`
115
- ${chalk.yellow('')}️ The \`init\` command is deprecated.
122
+ ${chalk.yellow('🚨')}️ The \`init\` command is deprecated.
116
123
 
117
124
  - Switch to ${chalk.dim('npx @react-native-community/cli init')} for the identical behavior.
118
125
  - Refer to the documentation for information about alternative tools: ${chalk.dim('https://reactnative.dev/docs/getting-started')}`);
119
126
  }
120
127
 
128
+ function warnWithExplicitDependency(version = '*') {
129
+ console.warn(`
130
+ ${chalk.yellow('⚠')}️ ${chalk.dim('react-native')} depends on ${chalk.dim('@react-native-community/cli')} for cli commands. To fix update your ${chalk.dim('package.json')} to include:
131
+
132
+ ${chalk.white.bold(`
133
+ "devDependencies": {
134
+ "@react-native-community/cli": "latest",
135
+ }
136
+ `)}
137
+
138
+ `);
139
+ }
140
+
121
141
  /**
122
142
  * npx react-native -> @react-native-community/cli
123
143
  *
@@ -157,24 +177,36 @@ async function main() {
157
177
  currentVersion.startsWith('0.76');
158
178
 
159
179
  /**
160
- * This command now fails as it's fully deprecated. It will be entirely removed in 0.77.
180
+ * This command is now deprecated. We will continue to proxy commands to @react-native-community/cli, but it
181
+ * isn't supported anymore. We'll always show the warning.
182
+ *
183
+ * WARNING: Projects will have to have an explicit dependency on @react-native-community/cli to use the CLI.
161
184
  *
162
185
  * Phase 3
163
186
  *
164
187
  * @see https://github.com/react-native-community/discussions-and-proposals/tree/main/proposals/0759-react-native-frameworks.md
165
188
  */
166
- if (currentVersion !== HEAD && isDeprecated) {
167
- warnWithDeprecated();
168
- process.exit(1);
189
+ if (isInitCommand) {
190
+ if (currentVersion !== HEAD && isDeprecated) {
191
+ warnWithDeprecated();
192
+ // We only exit if the user calls `init` and it's deprecated. All other cases should proxy to to @react-native-community/cli.
193
+ // Be careful with this as it can break a lot of users.
194
+ process.exit(1);
195
+ } else if (currentVersion.startsWith('0.75')) {
196
+ warnWithDeprecationSchedule();
197
+ }
198
+ warnWhenRunningInit();
169
199
  }
170
200
 
171
- if (currentVersion.startsWith('0.75')) {
172
- warnWithDeprecationSchedule();
201
+ try {
202
+ return require('@react-native-community/cli').run(name);
203
+ } catch (e) {
204
+ if (isMissingCliDependency(e)) {
205
+ warnWithExplicitDependency();
206
+ process.exit(1);
207
+ }
208
+ throw e;
173
209
  }
174
-
175
- warnWhenRunningInit();
176
-
177
- return require('@react-native-community/cli').run(name);
178
210
  }
179
211
 
180
212
  if (require.main === module) {
@@ -185,10 +217,7 @@ if (require.main === module) {
185
217
  } catch (e) {
186
218
  // We silence @react-native-community/cli missing as it is no
187
219
  // longer a dependency
188
- if (
189
- !e.code === 'MODULE_NOT_FOUND' &&
190
- /@react-native-community\/cli/.test(e.message)
191
- ) {
220
+ if (!isMissingCliDependency(e)) {
192
221
  throw e;
193
222
  }
194
223
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native",
3
- "version": "0.75.0-rc.4",
3
+ "version": "0.75.0-rc.6",
4
4
  "description": "A framework for building native apps using React",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -100,7 +100,7 @@
100
100
  },
101
101
  "peerDependencies": {
102
102
  "@types/react": "^18.2.6",
103
- "react": "^19.0.0-rc-fb9a90fa48-20240614"
103
+ "react": "^18.2.0"
104
104
  },
105
105
  "peerDependenciesMeta": {
106
106
  "@types/react": {
@@ -109,16 +109,16 @@
109
109
  },
110
110
  "dependencies": {
111
111
  "@jest/create-cache-key-function": "^29.6.3",
112
- "@react-native-community/cli": "14.0.0-alpha.11",
113
- "@react-native-community/cli-platform-android": "14.0.0-alpha.11",
114
- "@react-native-community/cli-platform-ios": "14.0.0-alpha.11",
115
- "@react-native/assets-registry": "0.75.0-rc.4",
116
- "@react-native/codegen": "0.75.0-rc.4",
117
- "@react-native/community-cli-plugin": "0.75.0-rc.4",
118
- "@react-native/gradle-plugin": "0.75.0-rc.4",
119
- "@react-native/js-polyfills": "0.75.0-rc.4",
120
- "@react-native/normalize-colors": "0.75.0-rc.4",
121
- "@react-native/virtualized-lists": "0.75.0-rc.4",
112
+ "@react-native-community/cli": "14.0.0",
113
+ "@react-native-community/cli-platform-android": "14.0.0",
114
+ "@react-native-community/cli-platform-ios": "14.0.0",
115
+ "@react-native/assets-registry": "0.75.0-rc.6",
116
+ "@react-native/codegen": "0.75.0-rc.6",
117
+ "@react-native/community-cli-plugin": "0.75.0-rc.6",
118
+ "@react-native/gradle-plugin": "0.75.0-rc.6",
119
+ "@react-native/js-polyfills": "0.75.0-rc.6",
120
+ "@react-native/normalize-colors": "0.75.0-rc.6",
121
+ "@react-native/virtualized-lists": "0.75.0-rc.6",
122
122
  "abort-controller": "^3.0.0",
123
123
  "anser": "^1.4.9",
124
124
  "ansi-regex": "^5.0.0",
@@ -140,7 +140,7 @@
140
140
  "react-devtools-core": "^5.3.1",
141
141
  "react-refresh": "^0.14.0",
142
142
  "regenerator-runtime": "^0.13.2",
143
- "scheduler": "0.25.0-rc-fb9a90fa48-20240614",
143
+ "scheduler": "0.24.0-canary-efb381bbf-20230505",
144
144
  "semver": "^7.1.3",
145
145
  "stacktrace-parser": "^0.1.10",
146
146
  "whatwg-fetch": "^3.0.0",
@@ -51,5 +51,9 @@ module Helpers
51
51
  :compiler_flags => '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -DFOLLY_CFG_NO_COROUTINES=1 -DFOLLY_HAVE_CLOCK_GETTIME=1 -Wno-comma -Wno-shorten-64-to-32'
52
52
  }
53
53
  end
54
+
55
+ def self.cxx_language_standard
56
+ return "c++20"
57
+ end
54
58
  end
55
59
  end