react-native-tvos 0.79.1-1 → 0.79.3-0
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.
- package/Libraries/AppDelegate/RCTReactNativeFactory.mm +8 -0
- package/Libraries/Blob/URL.js +13 -1
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/README.md +3 -1
- package/React/Base/RCTRootView.h +7 -1
- package/React/Base/RCTRootView.m +38 -0
- package/React/Base/RCTRootViewInternal.h +1 -0
- package/React/Base/RCTTVRemoteSelectHandler.m +2 -1
- package/React/Base/RCTVersion.m +2 -2
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.h +6 -0
- package/React/Base/Surface/SurfaceHostingView/RCTSurfaceHostingProxyRootView.mm +37 -0
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI-generated.cpp +12 -0
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +18 -0
- package/React/Fabric/Mounting/ComponentViews/LegacyViewManagerInterop/RCTLegacyViewManagerInteropComponentView.mm +18 -4
- package/React/Fabric/Mounting/ComponentViews/Switch/RCTSwitchComponentView.mm +1 -1
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +3 -5
- package/React/Views/RCTTVView.m +4 -4
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +13 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +21 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +5 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +5 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +23 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Stable_Android.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +5 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/style/BorderRadiusStyle.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.java +0 -3
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +29 -1
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +7 -1
- package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
- package/ReactCommon/jsc/React-jsc.podspec +1 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +9 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +11 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +45 -9
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +6 -2
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +9 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +19 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +3 -1
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +11 -1
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +5 -1
- package/ReactCommon/react/renderer/core/ShadowNode.cpp +14 -4
- package/ReactCommon/react/renderer/core/ShadowNode.h +6 -0
- package/ReactCommon/react/renderer/mounting/updateMountedFlag.cpp +6 -0
- package/ReactCommon/react/runtime/TimerManager.cpp +6 -4
- package/ReactCommon/react/runtime/TimerManager.h +3 -1
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTInstance.mm +0 -1
- package/ReactCommon/react/runtime/tests/cxx/ReactInstanceTest.cpp +9 -5
- package/package.json +8 -8
- package/scripts/codegen/generate-artifacts-executor.js +53 -18
- package/sdks/.hermesversion +1 -1
- package/sdks/hermesc/osx-bin/hermes +0 -0
- package/sdks/hermesc/osx-bin/hermesc +0 -0
- package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +11 -1
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +3 -1
- package/types/index.d.ts +1 -1
- package/types/tsconfig.test.json +16 -0
|
@@ -112,7 +112,9 @@ ShadowNode::ShadowNode(
|
|
|
112
112
|
fragment.children ? fragment.children : sourceShadowNode.children_),
|
|
113
113
|
state_(
|
|
114
114
|
fragment.state ? fragment.state
|
|
115
|
-
:
|
|
115
|
+
: (ReactNativeFeatureFlags::useShadowNodeStateOnClone()
|
|
116
|
+
? sourceShadowNode.state_
|
|
117
|
+
: sourceShadowNode.getMostRecentState())),
|
|
116
118
|
orderIndex_(sourceShadowNode.orderIndex_),
|
|
117
119
|
family_(sourceShadowNode.family_),
|
|
118
120
|
traits_(sourceShadowNode.traits_) {
|
|
@@ -308,20 +310,28 @@ void ShadowNode::setRuntimeShadowNodeReference(
|
|
|
308
310
|
runtimeShadowNodeReference_ = runtimeShadowNodeReference;
|
|
309
311
|
}
|
|
310
312
|
|
|
313
|
+
void ShadowNode::updateRuntimeShadowNodeReference(
|
|
314
|
+
const Shared& destinationShadowNode) const {
|
|
315
|
+
if (auto reference = runtimeShadowNodeReference_.lock()) {
|
|
316
|
+
reference->shadowNode = destinationShadowNode;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
|
|
311
320
|
void ShadowNode::transferRuntimeShadowNodeReference(
|
|
312
321
|
const Shared& destinationShadowNode) const {
|
|
313
322
|
destinationShadowNode->runtimeShadowNodeReference_ =
|
|
314
323
|
runtimeShadowNodeReference_;
|
|
315
324
|
|
|
316
|
-
if (
|
|
317
|
-
|
|
325
|
+
if (!ReactNativeFeatureFlags::updateRuntimeShadowNodeReferencesOnCommit()) {
|
|
326
|
+
updateRuntimeShadowNodeReference(destinationShadowNode);
|
|
318
327
|
}
|
|
319
328
|
}
|
|
320
329
|
|
|
321
330
|
void ShadowNode::transferRuntimeShadowNodeReference(
|
|
322
331
|
const Shared& destinationShadowNode,
|
|
323
332
|
const ShadowNodeFragment& fragment) const {
|
|
324
|
-
if (
|
|
333
|
+
if ((ReactNativeFeatureFlags::updateRuntimeShadowNodeReferencesOnCommit() ||
|
|
334
|
+
useRuntimeShadowNodeReferenceUpdateOnThread) &&
|
|
325
335
|
fragment.runtimeShadowNodeReference) {
|
|
326
336
|
transferRuntimeShadowNodeReference(destinationShadowNode);
|
|
327
337
|
}
|
|
@@ -187,6 +187,12 @@ class ShadowNode : public Sealable,
|
|
|
187
187
|
void setRuntimeShadowNodeReference(const std::shared_ptr<ShadowNodeWrapper>&
|
|
188
188
|
runtimeShadowNodeReference) const;
|
|
189
189
|
|
|
190
|
+
/*
|
|
191
|
+
* Update the runtime reference to point to the provided shadow node.
|
|
192
|
+
*/
|
|
193
|
+
void updateRuntimeShadowNodeReference(
|
|
194
|
+
const Shared& destinationShadowNode) const;
|
|
195
|
+
|
|
190
196
|
/*
|
|
191
197
|
* Transfer the runtime reference to this `ShadowNode` to a new instance,
|
|
192
198
|
* updating the reference to point to the new `ShadowNode` referencing it.
|
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
|
|
8
8
|
#include "updateMountedFlag.h"
|
|
9
9
|
|
|
10
|
+
#include <react/featureflags/ReactNativeFeatureFlags.h>
|
|
11
|
+
|
|
10
12
|
namespace facebook::react {
|
|
11
13
|
void updateMountedFlag(
|
|
12
14
|
const ShadowNode::ListOfShared& oldChildren,
|
|
@@ -47,6 +49,10 @@ void updateMountedFlag(
|
|
|
47
49
|
newChild->setMounted(true);
|
|
48
50
|
oldChild->setMounted(false);
|
|
49
51
|
|
|
52
|
+
if (ReactNativeFeatureFlags::updateRuntimeShadowNodeReferencesOnCommit()) {
|
|
53
|
+
newChild->updateRuntimeShadowNodeReference(newChild);
|
|
54
|
+
}
|
|
55
|
+
|
|
50
56
|
updateMountedFlag(oldChild->getChildren(), newChild->getChildren());
|
|
51
57
|
}
|
|
52
58
|
|
|
@@ -242,8 +242,9 @@ void TimerManager::attachGlobals(jsi::Runtime& runtime) {
|
|
|
242
242
|
}
|
|
243
243
|
|
|
244
244
|
if (!args[0].isObject() || !args[0].asObject(rt).isFunction(rt)) {
|
|
245
|
-
// Do not throw any error to match web spec
|
|
246
|
-
|
|
245
|
+
// Do not throw any error to match web spec; instead return 0, an
|
|
246
|
+
// invalid timer id
|
|
247
|
+
return 0;
|
|
247
248
|
}
|
|
248
249
|
|
|
249
250
|
auto callback = args[0].getObject(rt).getFunction(rt);
|
|
@@ -300,8 +301,9 @@ void TimerManager::attachGlobals(jsi::Runtime& runtime) {
|
|
|
300
301
|
}
|
|
301
302
|
|
|
302
303
|
if (!args[0].isObject() || !args[0].asObject(rt).isFunction(rt)) {
|
|
303
|
-
throw
|
|
304
|
-
|
|
304
|
+
// Do not throw any error to match web spec; instead return 0, an
|
|
305
|
+
// invalid timer id
|
|
306
|
+
return 0;
|
|
305
307
|
}
|
|
306
308
|
auto callback = args[0].getObject(rt).getFunction(rt);
|
|
307
309
|
auto delay = count > 1
|
|
@@ -93,7 +93,9 @@ class TimerManager {
|
|
|
93
93
|
|
|
94
94
|
// Each timeout that is registered on this queue gets a sequential id. This
|
|
95
95
|
// is the global count from which those are assigned.
|
|
96
|
-
|
|
96
|
+
// As per WHATWG HTML 8.6.1 (Timers) ids must be greater than zero, i.e. start
|
|
97
|
+
// at 1
|
|
98
|
+
TimerHandle timerIndex_{1};
|
|
97
99
|
|
|
98
100
|
// The React Native microtask queue is used to back public APIs including
|
|
99
101
|
// `queueMicrotask`, `clearImmediate`, and `setImmediate` (which is used by
|
|
@@ -474,7 +474,6 @@ void RCTInstanceSetRuntimeDiagnosticFlags(NSString *flags)
|
|
|
474
474
|
|
|
475
475
|
if (error) {
|
|
476
476
|
[strongSelf handleBundleLoadingError:error];
|
|
477
|
-
[strongSelf invalidate];
|
|
478
477
|
return;
|
|
479
478
|
}
|
|
480
479
|
// DevSettings module is needed by _loadScriptFromSource's callback so prior initialization is required
|
|
@@ -267,7 +267,9 @@ TEST_F(ReactInstanceTest, testSetTimeoutWithoutDelay) {
|
|
|
267
267
|
EXPECT_CALL(
|
|
268
268
|
*mockRegistry_,
|
|
269
269
|
createTimer(_, 0)); // If delay is not provided, it should use 0
|
|
270
|
-
eval("setTimeout(() => {});");
|
|
270
|
+
auto val = eval("setTimeout(() => {});");
|
|
271
|
+
expectNoError();
|
|
272
|
+
EXPECT_EQ(val.asNumber(), 1); // First timer id should start at 1
|
|
271
273
|
}
|
|
272
274
|
|
|
273
275
|
TEST_F(ReactInstanceTest, testSetTimeoutWithPassThroughArgs) {
|
|
@@ -299,8 +301,9 @@ TEST_F(ReactInstanceTest, testSetTimeoutWithInvalidArgs) {
|
|
|
299
301
|
getErrorMessage("setTimeout();"),
|
|
300
302
|
"setTimeout must be called with at least one argument (the function to call).");
|
|
301
303
|
|
|
302
|
-
eval("setTimeout('invalid')
|
|
304
|
+
auto val = eval("setTimeout('invalid')");
|
|
303
305
|
expectNoError();
|
|
306
|
+
EXPECT_EQ(val.asNumber(), 0);
|
|
304
307
|
|
|
305
308
|
eval("setTimeout(() => {}, 'invalid');");
|
|
306
309
|
expectNoError();
|
|
@@ -417,9 +420,10 @@ TEST_F(ReactInstanceTest, testSetIntervalWithInvalidArgs) {
|
|
|
417
420
|
EXPECT_EQ(
|
|
418
421
|
getErrorMessage("setInterval();"),
|
|
419
422
|
"setInterval must be called with at least one argument (the function to call).");
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
+
|
|
424
|
+
auto val = eval("setInterval('invalid', 100)");
|
|
425
|
+
expectNoError();
|
|
426
|
+
EXPECT_EQ(val.asNumber(), 0);
|
|
423
427
|
}
|
|
424
428
|
|
|
425
429
|
TEST_F(ReactInstanceTest, testClearInterval) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-tvos",
|
|
3
|
-
"version": "0.79.
|
|
3
|
+
"version": "0.79.3-0",
|
|
4
4
|
"description": "A framework for building native apps using React",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -112,12 +112,12 @@
|
|
|
112
112
|
},
|
|
113
113
|
"dependencies": {
|
|
114
114
|
"@jest/create-cache-key-function": "^29.7.0",
|
|
115
|
-
"@react-native/assets-registry": "0.79.
|
|
116
|
-
"@react-native/codegen": "0.79.
|
|
117
|
-
"@react-native/community-cli-plugin": "0.79.
|
|
118
|
-
"@react-native/gradle-plugin": "0.79.
|
|
119
|
-
"@react-native/js-polyfills": "0.79.
|
|
120
|
-
"@react-native/normalize-colors": "0.79.
|
|
115
|
+
"@react-native/assets-registry": "0.79.3",
|
|
116
|
+
"@react-native/codegen": "0.79.3",
|
|
117
|
+
"@react-native/community-cli-plugin": "0.79.3",
|
|
118
|
+
"@react-native/gradle-plugin": "0.79.3",
|
|
119
|
+
"@react-native/js-polyfills": "0.79.3",
|
|
120
|
+
"@react-native/normalize-colors": "0.79.3",
|
|
121
121
|
"abort-controller": "^3.0.0",
|
|
122
122
|
"anser": "^1.4.9",
|
|
123
123
|
"ansi-regex": "^5.0.0",
|
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
"whatwg-fetch": "^3.0.0",
|
|
147
147
|
"ws": "^6.2.3",
|
|
148
148
|
"yargs": "^17.6.2",
|
|
149
|
-
"@react-native-tvos/virtualized-lists": "0.79.
|
|
149
|
+
"@react-native-tvos/virtualized-lists": "0.79.3-0"
|
|
150
150
|
},
|
|
151
151
|
"codegenConfig": {
|
|
152
152
|
"libraries": [
|
|
@@ -326,22 +326,13 @@ function findExternalLibraries(pkgJson, projectRoot) {
|
|
|
326
326
|
});
|
|
327
327
|
}
|
|
328
328
|
|
|
329
|
-
function findLibrariesFromReactNativeConfig(projectRoot) {
|
|
330
|
-
const rnConfigFileName = 'react-native.config.js';
|
|
331
|
-
|
|
329
|
+
function findLibrariesFromReactNativeConfig(projectRoot, rnConfig) {
|
|
332
330
|
codegenLog(
|
|
333
|
-
`Searching for codegen-enabled libraries in
|
|
331
|
+
`Searching for codegen-enabled libraries in react-native.config.js`,
|
|
334
332
|
true,
|
|
335
333
|
);
|
|
336
334
|
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
if (!fs.existsSync(rnConfigFilePath)) {
|
|
340
|
-
return [];
|
|
341
|
-
}
|
|
342
|
-
const rnConfig = require(rnConfigFilePath);
|
|
343
|
-
|
|
344
|
-
if (rnConfig.dependencies == null) {
|
|
335
|
+
if (!rnConfig.dependencies) {
|
|
345
336
|
return [];
|
|
346
337
|
}
|
|
347
338
|
return Object.keys(rnConfig.dependencies).flatMap(name => {
|
|
@@ -365,6 +356,19 @@ function findLibrariesFromReactNativeConfig(projectRoot) {
|
|
|
365
356
|
});
|
|
366
357
|
}
|
|
367
358
|
|
|
359
|
+
/**
|
|
360
|
+
* Finds all disabled libraries by platform based the react native config.
|
|
361
|
+
*
|
|
362
|
+
* This is needed when selectively disabling libraries in react-native.config.js since codegen should exclude those libraries as well.
|
|
363
|
+
*/
|
|
364
|
+
function findDisabledLibrariesByPlatform(reactNativeConfig, platform) {
|
|
365
|
+
const dependencies = reactNativeConfig.dependencies ?? {};
|
|
366
|
+
|
|
367
|
+
return Object.keys(dependencies).filter(
|
|
368
|
+
dependency => dependencies[dependency].platforms?.[platform] === null,
|
|
369
|
+
);
|
|
370
|
+
}
|
|
371
|
+
|
|
368
372
|
function findProjectRootLibraries(pkgJson, projectRoot) {
|
|
369
373
|
codegenLog('Searching for codegen-enabled libraries in the app.', true);
|
|
370
374
|
|
|
@@ -593,7 +597,7 @@ function mustGenerateNativeCode(includeLibraryPath, schemaInfo) {
|
|
|
593
597
|
);
|
|
594
598
|
}
|
|
595
599
|
|
|
596
|
-
function findCodegenEnabledLibraries(pkgJson, projectRoot) {
|
|
600
|
+
function findCodegenEnabledLibraries(pkgJson, projectRoot, reactNativeConfig) {
|
|
597
601
|
const projectLibraries = findProjectRootLibraries(pkgJson, projectRoot);
|
|
598
602
|
if (pkgJsonIncludesGeneratedCode(pkgJson)) {
|
|
599
603
|
return projectLibraries;
|
|
@@ -601,11 +605,21 @@ function findCodegenEnabledLibraries(pkgJson, projectRoot) {
|
|
|
601
605
|
return [
|
|
602
606
|
...projectLibraries,
|
|
603
607
|
...findExternalLibraries(pkgJson, projectRoot),
|
|
604
|
-
...findLibrariesFromReactNativeConfig(projectRoot),
|
|
608
|
+
...findLibrariesFromReactNativeConfig(projectRoot, reactNativeConfig),
|
|
605
609
|
];
|
|
606
610
|
}
|
|
607
611
|
}
|
|
608
612
|
|
|
613
|
+
function readReactNativeConfig(projectRoot) {
|
|
614
|
+
const rnConfigFilePath = path.resolve(projectRoot, 'react-native.config.js');
|
|
615
|
+
|
|
616
|
+
if (!fs.existsSync(rnConfigFilePath)) {
|
|
617
|
+
return {};
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
return require(rnConfigFilePath);
|
|
621
|
+
}
|
|
622
|
+
|
|
609
623
|
function generateCustomURLHandlers(libraries, outputDir) {
|
|
610
624
|
const customImageURLLoaderClasses = libraries
|
|
611
625
|
.flatMap(
|
|
@@ -834,8 +848,11 @@ function findFilesWithExtension(filePath, extension) {
|
|
|
834
848
|
return null;
|
|
835
849
|
}
|
|
836
850
|
|
|
837
|
-
// Skip hidden folders, that starts with `.`
|
|
838
|
-
if (
|
|
851
|
+
// Skip hidden folders, that starts with `.` but allow `.pnpm`
|
|
852
|
+
if (
|
|
853
|
+
absolutePath.includes(`${path.sep}.`) &&
|
|
854
|
+
!absolutePath.includes(`${path.sep}.pnpm`)
|
|
855
|
+
) {
|
|
839
856
|
return null;
|
|
840
857
|
}
|
|
841
858
|
|
|
@@ -1054,9 +1071,14 @@ function execute(projectRoot, targetPlatform, baseOutputPath, source) {
|
|
|
1054
1071
|
|
|
1055
1072
|
buildCodegenIfNeeded();
|
|
1056
1073
|
|
|
1057
|
-
const
|
|
1074
|
+
const reactNativeConfig = readReactNativeConfig(projectRoot);
|
|
1075
|
+
const codegenEnabledLibraries = findCodegenEnabledLibraries(
|
|
1076
|
+
pkgJson,
|
|
1077
|
+
projectRoot,
|
|
1078
|
+
reactNativeConfig,
|
|
1079
|
+
);
|
|
1058
1080
|
|
|
1059
|
-
if (
|
|
1081
|
+
if (codegenEnabledLibraries.length === 0) {
|
|
1060
1082
|
codegenLog('No codegen-enabled libraries found.', true);
|
|
1061
1083
|
return;
|
|
1062
1084
|
}
|
|
@@ -1065,6 +1087,19 @@ function execute(projectRoot, targetPlatform, baseOutputPath, source) {
|
|
|
1065
1087
|
targetPlatform === 'all' ? supportedPlatforms : [targetPlatform];
|
|
1066
1088
|
|
|
1067
1089
|
for (const platform of platforms) {
|
|
1090
|
+
const disabledLibraries = findDisabledLibrariesByPlatform(
|
|
1091
|
+
reactNativeConfig,
|
|
1092
|
+
platform,
|
|
1093
|
+
);
|
|
1094
|
+
|
|
1095
|
+
const libraries = codegenEnabledLibraries.filter(
|
|
1096
|
+
({name}) => !disabledLibraries.includes(name),
|
|
1097
|
+
);
|
|
1098
|
+
|
|
1099
|
+
if (!libraries.length) {
|
|
1100
|
+
continue;
|
|
1101
|
+
}
|
|
1102
|
+
|
|
1068
1103
|
const outputPath = computeOutputPath(
|
|
1069
1104
|
projectRoot,
|
|
1070
1105
|
baseOutputPath,
|
package/sdks/.hermesversion
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
hermes-2025-
|
|
1
|
+
hermes-2025-06-04-RNv0.79.3-7f9a871eefeb2c3852365ee80f0b6733ec12ac3b
|
|
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<<
|
|
7
|
+
* @generated SignedSource<<5b1d3ba6712de7a927eeeb8602ee2a8f>>
|
|
8
8
|
* @flow strict
|
|
9
9
|
*/
|
|
10
10
|
|
|
@@ -84,12 +84,14 @@ export type ReactNativeFeatureFlags = $ReadOnly<{
|
|
|
84
84
|
removeTurboModuleManagerDelegateMutex: Getter<boolean>,
|
|
85
85
|
throwExceptionInsteadOfDeadlockOnTurboModuleSetupDuringSyncRenderIOS: Getter<boolean>,
|
|
86
86
|
traceTurboModulePromiseRejectionsOnAndroid: Getter<boolean>,
|
|
87
|
+
updateRuntimeShadowNodeReferencesOnCommit: Getter<boolean>,
|
|
87
88
|
useAlwaysAvailableJSErrorHandling: Getter<boolean>,
|
|
88
89
|
useEditTextStockAndroidFocusBehavior: Getter<boolean>,
|
|
89
90
|
useFabricInterop: Getter<boolean>,
|
|
90
91
|
useNativeViewConfigsInBridgelessMode: Getter<boolean>,
|
|
91
92
|
useOptimizedEventBatchingOnAndroid: Getter<boolean>,
|
|
92
93
|
useRawPropsJsiValue: Getter<boolean>,
|
|
94
|
+
useShadowNodeStateOnClone: Getter<boolean>,
|
|
93
95
|
useTurboModuleInterop: Getter<boolean>,
|
|
94
96
|
useTurboModules: Getter<boolean>,
|
|
95
97
|
}>;
|
|
@@ -313,6 +315,10 @@ export const throwExceptionInsteadOfDeadlockOnTurboModuleSetupDuringSyncRenderIO
|
|
|
313
315
|
* Enables storing js caller stack when creating promise in native module. This is useful in case of Promise rejection and tracing the cause.
|
|
314
316
|
*/
|
|
315
317
|
export const traceTurboModulePromiseRejectionsOnAndroid: Getter<boolean> = createNativeFlagGetter('traceTurboModulePromiseRejectionsOnAndroid', false);
|
|
318
|
+
/**
|
|
319
|
+
* When enabled, runtime shadow node references will be updated during the commit. This allows running RSNRU from any thread without corrupting the renderer state.
|
|
320
|
+
*/
|
|
321
|
+
export const updateRuntimeShadowNodeReferencesOnCommit: Getter<boolean> = createNativeFlagGetter('updateRuntimeShadowNodeReferencesOnCommit', false);
|
|
316
322
|
/**
|
|
317
323
|
* In Bridgeless mode, use the always available javascript error reporting pipeline.
|
|
318
324
|
*/
|
|
@@ -337,6 +343,10 @@ export const useOptimizedEventBatchingOnAndroid: Getter<boolean> = createNativeF
|
|
|
337
343
|
* Instead of using folly::dynamic as internal representation in RawProps and RawValue, use jsi::Value
|
|
338
344
|
*/
|
|
339
345
|
export const useRawPropsJsiValue: Getter<boolean> = createNativeFlagGetter('useRawPropsJsiValue', false);
|
|
346
|
+
/**
|
|
347
|
+
* Use the state stored on the source shadow node when cloning it instead of reading in the most recent state on the shadow node family.
|
|
348
|
+
*/
|
|
349
|
+
export const useShadowNodeStateOnClone: Getter<boolean> = createNativeFlagGetter('useShadowNodeStateOnClone', false);
|
|
340
350
|
/**
|
|
341
351
|
* In Bridgeless mode, should legacy NativeModules use the TurboModule system?
|
|
342
352
|
*/
|
|
@@ -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<<
|
|
7
|
+
* @generated SignedSource<<f8da5261357616749d6319190ed0139d>>
|
|
8
8
|
* @flow strict
|
|
9
9
|
*/
|
|
10
10
|
|
|
@@ -59,12 +59,14 @@ export interface Spec extends TurboModule {
|
|
|
59
59
|
+removeTurboModuleManagerDelegateMutex?: () => boolean;
|
|
60
60
|
+throwExceptionInsteadOfDeadlockOnTurboModuleSetupDuringSyncRenderIOS?: () => boolean;
|
|
61
61
|
+traceTurboModulePromiseRejectionsOnAndroid?: () => boolean;
|
|
62
|
+
+updateRuntimeShadowNodeReferencesOnCommit?: () => boolean;
|
|
62
63
|
+useAlwaysAvailableJSErrorHandling?: () => boolean;
|
|
63
64
|
+useEditTextStockAndroidFocusBehavior?: () => boolean;
|
|
64
65
|
+useFabricInterop?: () => boolean;
|
|
65
66
|
+useNativeViewConfigsInBridgelessMode?: () => boolean;
|
|
66
67
|
+useOptimizedEventBatchingOnAndroid?: () => boolean;
|
|
67
68
|
+useRawPropsJsiValue?: () => boolean;
|
|
69
|
+
+useShadowNodeStateOnClone?: () => boolean;
|
|
68
70
|
+useTurboModuleInterop?: () => boolean;
|
|
69
71
|
+useTurboModules?: () => boolean;
|
|
70
72
|
}
|
package/types/index.d.ts
CHANGED
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
/// <reference path="modules/BatchedBridge.d.ts" />
|
|
69
69
|
/// <reference path="modules/Codegen.d.ts" />
|
|
70
70
|
/// <reference path="modules/Devtools.d.ts" />
|
|
71
|
-
/// <reference
|
|
71
|
+
/// <reference path="../src/types/globals.d.ts" />
|
|
72
72
|
/// <reference path="modules/LaunchScreen.d.ts" />
|
|
73
73
|
|
|
74
74
|
export * from '../Libraries/ActionSheetIOS/ActionSheetIOS';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"module": "commonjs",
|
|
4
|
+
"lib": ["es6"],
|
|
5
|
+
"noImplicitAny": true,
|
|
6
|
+
"noImplicitThis": true,
|
|
7
|
+
"strictFunctionTypes": true,
|
|
8
|
+
"strictNullChecks": true,
|
|
9
|
+
"types": [],
|
|
10
|
+
"jsx": "react",
|
|
11
|
+
"noEmit": true,
|
|
12
|
+
"forceConsistentCasingInFileNames": true,
|
|
13
|
+
"paths": {"react-native": ["."]}
|
|
14
|
+
},
|
|
15
|
+
"include": ["../**/*.d.ts", "__typetests__/**/*"]
|
|
16
|
+
}
|