react-native 0.76.4 → 0.76.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 (46) hide show
  1. package/Libraries/Core/ReactNativeVersion.js +1 -1
  2. package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +2 -1
  3. package/React/Base/RCTVersion.m +1 -1
  4. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.h +3 -0
  5. package/React/Fabric/Mounting/ComponentViews/ScrollView/RCTScrollViewComponentView.mm +17 -18
  6. package/React/Fabric/Mounting/ComponentViews/TextInput/RCTTextInputComponentView.mm +5 -0
  7. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +12 -9
  8. package/React/Views/ScrollView/RCTScrollView.h +2 -0
  9. package/React/Views/ScrollView/RCTScrollView.m +6 -0
  10. package/ReactAndroid/cmake-utils/ReactNative-application.cmake +18 -3
  11. package/ReactAndroid/cmake-utils/default-app-setup/OnLoad.cpp +0 -13
  12. package/ReactAndroid/gradle.properties +1 -1
  13. package/ReactAndroid/src/main/java/com/facebook/react/HeadlessJsTaskService.java +12 -13
  14. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +1 -7
  15. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +1 -11
  16. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +1 -3
  17. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +1 -3
  18. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +1 -12
  19. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +1 -3
  20. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +1 -1
  21. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +1 -0
  22. package/ReactAndroid/src/main/jni/react/fabric/Binding.cpp +17 -19
  23. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +1 -15
  24. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +1 -4
  25. package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
  26. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +1 -5
  27. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +1 -6
  28. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +47 -65
  29. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +2 -4
  30. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +1 -5
  31. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +1 -2
  32. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +1 -6
  33. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +1 -3
  34. package/ReactCommon/react/renderer/textlayoutmanager/TextMeasureCache.h +2 -3
  35. package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTAttributedTextUtils.mm +2 -0
  36. package/ReactCommon/react/runtime/ReactInstance.cpp +39 -35
  37. package/ReactCommon/react/runtime/ReactInstance.h +2 -1
  38. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +3 -2
  39. package/package.json +8 -8
  40. package/scripts/cocoapods/utils.rb +6 -6
  41. package/scripts/codegen/generate-artifacts-executor.js +20 -5
  42. package/sdks/hermesc/osx-bin/hermes +0 -0
  43. package/sdks/hermesc/osx-bin/hermesc +0 -0
  44. package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
  45. package/src/private/featureflags/ReactNativeFeatureFlags.js +1 -6
  46. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +1 -2
@@ -204,47 +204,51 @@ std::string simpleBasename(const std::string& path) {
204
204
  */
205
205
  void ReactInstance::loadScript(
206
206
  std::unique_ptr<const JSBigString> script,
207
- const std::string& sourceURL) {
207
+ const std::string& sourceURL,
208
+ std::function<void(jsi::Runtime& runtime)>&& completion) {
208
209
  auto buffer = std::make_shared<BigStringBuffer>(std::move(script));
209
210
  std::string scriptName = simpleBasename(sourceURL);
210
211
 
211
- runtimeScheduler_->scheduleWork(
212
- [this,
213
- scriptName,
214
- sourceURL,
215
- buffer = std::move(buffer),
216
- weakBufferedRuntimeExecuter = std::weak_ptr<BufferedRuntimeExecutor>(
217
- bufferedRuntimeExecutor_)](jsi::Runtime& runtime) {
218
- SystraceSection s("ReactInstance::loadScript");
219
- bool hasLogger(ReactMarker::logTaggedMarkerBridgelessImpl);
220
- if (hasLogger) {
221
- ReactMarker::logTaggedMarkerBridgeless(
222
- ReactMarker::RUN_JS_BUNDLE_START, scriptName.c_str());
223
- }
212
+ runtimeScheduler_->scheduleWork([this,
213
+ scriptName,
214
+ sourceURL,
215
+ buffer = std::move(buffer),
216
+ weakBufferedRuntimeExecuter =
217
+ std::weak_ptr<BufferedRuntimeExecutor>(
218
+ bufferedRuntimeExecutor_),
219
+ completion](jsi::Runtime& runtime) {
220
+ SystraceSection s("ReactInstance::loadScript");
221
+ bool hasLogger(ReactMarker::logTaggedMarkerBridgelessImpl);
222
+ if (hasLogger) {
223
+ ReactMarker::logTaggedMarkerBridgeless(
224
+ ReactMarker::RUN_JS_BUNDLE_START, scriptName.c_str());
225
+ }
224
226
 
225
- runtime.evaluateJavaScript(buffer, sourceURL);
227
+ runtime.evaluateJavaScript(buffer, sourceURL);
226
228
 
227
- /**
228
- * TODO(T183610671): We need a safe/reliable way to enable the js
229
- * pipeline from javascript. Remove this after we figure that out, or
230
- * after we just remove the js pipeline.
231
- */
232
- if (!jsErrorHandler_->hasHandledFatalError()) {
233
- jsErrorHandler_->setRuntimeReady();
234
- }
229
+ /**
230
+ * TODO(T183610671): We need a safe/reliable way to enable the js
231
+ * pipeline from javascript. Remove this after we figure that out, or
232
+ * after we just remove the js pipeline.
233
+ */
234
+ if (!jsErrorHandler_->hasHandledFatalError()) {
235
+ jsErrorHandler_->setRuntimeReady();
236
+ }
235
237
 
236
- if (hasLogger) {
237
- ReactMarker::logTaggedMarkerBridgeless(
238
- ReactMarker::RUN_JS_BUNDLE_STOP, scriptName.c_str());
239
- ReactMarker::logMarkerBridgeless(
240
- ReactMarker::INIT_REACT_RUNTIME_STOP);
241
- ReactMarker::logMarkerBridgeless(ReactMarker::APP_STARTUP_STOP);
242
- }
243
- if (auto strongBufferedRuntimeExecuter =
244
- weakBufferedRuntimeExecuter.lock()) {
245
- strongBufferedRuntimeExecuter->flush();
246
- }
247
- });
238
+ if (hasLogger) {
239
+ ReactMarker::logTaggedMarkerBridgeless(
240
+ ReactMarker::RUN_JS_BUNDLE_STOP, scriptName.c_str());
241
+ ReactMarker::logMarkerBridgeless(ReactMarker::INIT_REACT_RUNTIME_STOP);
242
+ ReactMarker::logMarkerBridgeless(ReactMarker::APP_STARTUP_STOP);
243
+ }
244
+ if (auto strongBufferedRuntimeExecuter =
245
+ weakBufferedRuntimeExecuter.lock()) {
246
+ strongBufferedRuntimeExecuter->flush();
247
+ }
248
+ if (completion) {
249
+ completion(runtime);
250
+ }
251
+ });
248
252
  }
249
253
 
250
254
  /*
@@ -48,7 +48,8 @@ class ReactInstance final : private jsinspector_modern::InstanceTargetDelegate {
48
48
 
49
49
  void loadScript(
50
50
  std::unique_ptr<const JSBigString> script,
51
- const std::string& sourceURL);
51
+ const std::string& sourceURL,
52
+ std::function<void(jsi::Runtime& runtime)>&& completion = nullptr);
52
53
 
53
54
  void registerSegment(uint32_t segmentId, const std::string& segmentPath);
54
55
 
@@ -470,8 +470,9 @@ void RCTInstanceSetRuntimeDiagnosticFlags(NSString *flags)
470
470
 
471
471
  auto script = std::make_unique<NSDataBigString>(source.data);
472
472
  const auto *url = deriveSourceURL(source.url).UTF8String;
473
- _reactInstance->loadScript(std::move(script), url);
474
- [[NSNotificationCenter defaultCenter] postNotificationName:@"RCTInstanceDidLoadBundle" object:nil];
473
+ _reactInstance->loadScript(std::move(script), url, [](jsi::Runtime &_) {
474
+ [[NSNotificationCenter defaultCenter] postNotificationName:@"RCTInstanceDidLoadBundle" object:nil];
475
+ });
475
476
  }
476
477
 
477
478
  - (void)_handleJSError:(const JsErrorHandler::ParsedError &)error
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native",
3
- "version": "0.76.4",
3
+ "version": "0.76.6",
4
4
  "description": "A framework for building native apps using React",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -109,13 +109,13 @@
109
109
  },
110
110
  "dependencies": {
111
111
  "@jest/create-cache-key-function": "^29.6.3",
112
- "@react-native/assets-registry": "0.76.4",
113
- "@react-native/codegen": "0.76.4",
114
- "@react-native/community-cli-plugin": "0.76.4",
115
- "@react-native/gradle-plugin": "0.76.4",
116
- "@react-native/js-polyfills": "0.76.4",
117
- "@react-native/normalize-colors": "0.76.4",
118
- "@react-native/virtualized-lists": "0.76.4",
112
+ "@react-native/assets-registry": "0.76.6",
113
+ "@react-native/codegen": "0.76.6",
114
+ "@react-native/community-cli-plugin": "0.76.6",
115
+ "@react-native/gradle-plugin": "0.76.6",
116
+ "@react-native/js-polyfills": "0.76.6",
117
+ "@react-native/normalize-colors": "0.76.6",
118
+ "@react-native/virtualized-lists": "0.76.6",
119
119
  "abort-controller": "^3.0.0",
120
120
  "anser": "^1.4.9",
121
121
  "ansi-regex": "^5.0.0",
@@ -44,10 +44,10 @@ class ReactNativePodsUtils
44
44
  end
45
45
 
46
46
  def self.set_gcc_preprocessor_definition_for_React_hermes(installer)
47
- self.add_build_settings_to_pod(installer, "GCC_PREPROCESSOR_DEFINITIONS", "HERMES_ENABLE_DEBUGGER=1", "React-hermes", "Debug")
48
- self.add_build_settings_to_pod(installer, "GCC_PREPROCESSOR_DEFINITIONS", "HERMES_ENABLE_DEBUGGER=1", "React-jsinspector", "Debug")
49
- self.add_build_settings_to_pod(installer, "GCC_PREPROCESSOR_DEFINITIONS", "HERMES_ENABLE_DEBUGGER=1", "hermes-engine", "Debug")
50
- self.add_build_settings_to_pod(installer, "GCC_PREPROCESSOR_DEFINITIONS", "HERMES_ENABLE_DEBUGGER=1", "React-RuntimeHermes", "Debug")
47
+ self.add_build_settings_to_pod(installer, "GCC_PREPROCESSOR_DEFINITIONS", "HERMES_ENABLE_DEBUGGER=1", "React-hermes", :debug)
48
+ self.add_build_settings_to_pod(installer, "GCC_PREPROCESSOR_DEFINITIONS", "HERMES_ENABLE_DEBUGGER=1", "React-jsinspector", :debug)
49
+ self.add_build_settings_to_pod(installer, "GCC_PREPROCESSOR_DEFINITIONS", "HERMES_ENABLE_DEBUGGER=1", "hermes-engine", :debug)
50
+ self.add_build_settings_to_pod(installer, "GCC_PREPROCESSOR_DEFINITIONS", "HERMES_ENABLE_DEBUGGER=1", "React-RuntimeHermes", :debug)
51
51
  end
52
52
 
53
53
  def self.turn_off_resource_bundle_react_core(installer)
@@ -193,11 +193,11 @@ class ReactNativePodsUtils
193
193
 
194
194
  private
195
195
 
196
- def self.add_build_settings_to_pod(installer, settings_name, settings_value, target_pod_name, configuration)
196
+ def self.add_build_settings_to_pod(installer, settings_name, settings_value, target_pod_name, configuration_type)
197
197
  installer.target_installation_results.pod_target_installation_results.each do |pod_name, target_installation_result|
198
198
  if pod_name.to_s == target_pod_name
199
199
  target_installation_result.native_target.build_configurations.each do |config|
200
- if configuration == nil || (configuration != nil && config.name.include?(configuration))
200
+ if configuration_type == nil || (configuration_type != nil && config.type == configuration_type)
201
201
  config.build_settings[settings_name] ||= '$(inherited) '
202
202
  config.build_settings[settings_name] << settings_value
203
203
  end
@@ -311,11 +311,26 @@ function findNotLinkedLibraries(projectRoot) {
311
311
  Object.keys(rnConfig.dependencies).forEach(name => {
312
312
  const dependency = rnConfig.dependencies[name];
313
313
  let notLinkedPlatforms = [];
314
- Object.keys(dependency.platforms).forEach(platform => {
315
- if (dependency.platforms[platform] == null) {
316
- notLinkedPlatforms.push(platform);
317
- }
318
- });
314
+
315
+ // dependency.platforms might not be defined, as the format
316
+ // {
317
+ // "dependencies": {
318
+ // "dependency-name": {
319
+ // "root": "path/to/dependency",
320
+ // }
321
+ // }
322
+ // }
323
+ // is also supported.
324
+ // In this case, we assume that the library is linked to all platforms.
325
+ // We don't consider the case were `dependency-name.root` is equal to `null`, because that
326
+ // means that the library is not linked to the app at all, and in that case the dependency
327
+ // should be removed by the user.
328
+ dependency.platforms &&
329
+ Object.keys(dependency.platforms).forEach(platform => {
330
+ if (dependency.platforms[platform] == null) {
331
+ notLinkedPlatforms.push(platform);
332
+ }
333
+ });
319
334
  notLinkedLibraries[name] = notLinkedPlatforms;
320
335
  });
321
336
  return notLinkedLibraries;
Binary file
Binary file
Binary file
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<0bff47ec5af8ed96d8b2abe351f318f1>>
7
+ * @generated SignedSource<<cbc00457c9b6f4639083b6fa970683eb>>
8
8
  * @flow strict-local
9
9
  */
10
10
 
@@ -46,7 +46,6 @@ export type ReactNativeFeatureFlagsJsOnlyOverrides = Partial<ReactNativeFeatureF
46
46
  export type ReactNativeFeatureFlags = {
47
47
  ...ReactNativeFeatureFlagsJsOnly,
48
48
  commonTestFlag: Getter<boolean>,
49
- allowRecursiveCommitsWithSynchronousMountOnAndroid: Getter<boolean>,
50
49
  batchRenderingUpdatesInEventLoop: Getter<boolean>,
51
50
  completeReactInstanceCreationOnBgThreadOnAndroid: Getter<boolean>,
52
51
  destroyFabricSurfacesInReactInstanceManager: Getter<boolean>,
@@ -164,10 +163,6 @@ export const useRefsForTextInputState: Getter<boolean> = createJavaScriptFlagGet
164
163
  * Common flag for testing. Do NOT modify.
165
164
  */
166
165
  export const commonTestFlag: Getter<boolean> = createNativeFlagGetter('commonTestFlag', false);
167
- /**
168
- * Adds support for recursively processing commits that mount synchronously (Android only).
169
- */
170
- export const allowRecursiveCommitsWithSynchronousMountOnAndroid: Getter<boolean> = createNativeFlagGetter('allowRecursiveCommitsWithSynchronousMountOnAndroid', false);
171
166
  /**
172
167
  * When enabled, the RuntimeScheduler processing the event loop will batch all rendering updates and dispatch them together at the end of each iteration of the loop.
173
168
  */
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<6d4aa48dfdd3b78ac5f0f8e70eb3895f>>
7
+ * @generated SignedSource<<ac46e3eb810d890a0f8199fe100936cb>>
8
8
  * @flow strict-local
9
9
  */
10
10
 
@@ -24,7 +24,6 @@ import * as TurboModuleRegistry from '../../../../Libraries/TurboModule/TurboMod
24
24
 
25
25
  export interface Spec extends TurboModule {
26
26
  +commonTestFlag?: () => boolean;
27
- +allowRecursiveCommitsWithSynchronousMountOnAndroid?: () => boolean;
28
27
  +batchRenderingUpdatesInEventLoop?: () => boolean;
29
28
  +completeReactInstanceCreationOnBgThreadOnAndroid?: () => boolean;
30
29
  +destroyFabricSurfacesInReactInstanceManager?: () => boolean;