react-native 0.84.0-nightly-20251202-b0e754bc7 → 0.84.0-nightly-20251204-5bb3a6d68
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/Animated/animations/Animation.js +1 -2
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/React/Base/RCTVersion.m +1 -1
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +186 -194
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingSequence.kt +1 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +1 -7
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +1 -11
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +1 -3
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +1 -3
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +1 -12
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +1 -3
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +0 -8
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +1 -15
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +1 -4
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +1 -0
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +11 -0
- package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
- package/ReactCommon/jsi/jsi/jsi.cpp +4 -0
- package/ReactCommon/jsi/jsi/jsi.h +66 -0
- package/ReactCommon/jsinspector-modern/tests/TracingTest.cpp +18 -0
- package/ReactCommon/jsinspector-modern/tracing/FrameTimingSequence.h +13 -4
- package/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.cpp +14 -1
- package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.cpp +24 -0
- package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.h +13 -1
- package/ReactCommon/jsinspector-modern/tracing/TracingCategory.h +1 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +1 -5
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +1 -6
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +87 -105
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +2 -4
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +1 -5
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +1 -10
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +1 -2
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +1 -6
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +1 -3
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +2 -6
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropSerializer.cpp +130 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedProps.h +5 -1
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsBuilder.h +4 -0
- package/ReactCommon/react/renderer/animationbackend/AnimatedPropsSerializer.h +17 -0
- package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +6 -22
- package/ReactCommon/react/runtime/ReactInstance.cpp +1 -1
- package/package.json +10 -10
- package/scripts/codegen/generate-artifacts-executor/generateSchemaInfos.js +7 -6
- package/sdks/hermes-engine/version.properties +1 -1
- package/src/private/animated/createAnimatedPropsHook.js +1 -2
- package/src/private/featureflags/ReactNativeFeatureFlags.js +1 -6
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +1 -2
- /package/ReactCommon/jsi/jsi/{hermes.h → hermes-interfaces.h} +0 -0
|
@@ -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<<d6e559e0a0919d0de99a32b27646fbce>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -35,7 +35,6 @@ class ReactNativeFeatureFlagsAccessor {
|
|
|
35
35
|
bool commonTestFlag();
|
|
36
36
|
bool cdpInteractionMetricsEnabled();
|
|
37
37
|
bool cxxNativeAnimatedEnabled();
|
|
38
|
-
bool cxxNativeAnimatedRemoveJsSync();
|
|
39
38
|
bool disableEarlyViewCommandExecution();
|
|
40
39
|
bool disableImageViewPreallocationAndroid();
|
|
41
40
|
bool disableMountItemReorderingAndroid();
|
|
@@ -133,12 +132,11 @@ class ReactNativeFeatureFlagsAccessor {
|
|
|
133
132
|
std::unique_ptr<ReactNativeFeatureFlagsProvider> currentProvider_;
|
|
134
133
|
bool wasOverridden_;
|
|
135
134
|
|
|
136
|
-
std::array<std::atomic<const char*>,
|
|
135
|
+
std::array<std::atomic<const char*>, 89> accessedFeatureFlags_;
|
|
137
136
|
|
|
138
137
|
std::atomic<std::optional<bool>> commonTestFlag_;
|
|
139
138
|
std::atomic<std::optional<bool>> cdpInteractionMetricsEnabled_;
|
|
140
139
|
std::atomic<std::optional<bool>> cxxNativeAnimatedEnabled_;
|
|
141
|
-
std::atomic<std::optional<bool>> cxxNativeAnimatedRemoveJsSync_;
|
|
142
140
|
std::atomic<std::optional<bool>> disableEarlyViewCommandExecution_;
|
|
143
141
|
std::atomic<std::optional<bool>> disableImageViewPreallocationAndroid_;
|
|
144
142
|
std::atomic<std::optional<bool>> disableMountItemReorderingAndroid_;
|
|
@@ -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<<a220c6699baacba2e95d610314d90c67>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -39,10 +39,6 @@ class ReactNativeFeatureFlagsDefaults : public ReactNativeFeatureFlagsProvider {
|
|
|
39
39
|
return false;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
bool cxxNativeAnimatedRemoveJsSync() override {
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
42
|
bool disableEarlyViewCommandExecution() override {
|
|
47
43
|
return false;
|
|
48
44
|
}
|
|
@@ -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<<eef5fb5ff9153cedd8a25b39af0cc49f>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -72,15 +72,6 @@ class ReactNativeFeatureFlagsDynamicProvider : public ReactNativeFeatureFlagsDef
|
|
|
72
72
|
return ReactNativeFeatureFlagsDefaults::cxxNativeAnimatedEnabled();
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
bool cxxNativeAnimatedRemoveJsSync() override {
|
|
76
|
-
auto value = values_["cxxNativeAnimatedRemoveJsSync"];
|
|
77
|
-
if (!value.isNull()) {
|
|
78
|
-
return value.getBool();
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return ReactNativeFeatureFlagsDefaults::cxxNativeAnimatedRemoveJsSync();
|
|
82
|
-
}
|
|
83
|
-
|
|
84
75
|
bool disableEarlyViewCommandExecution() override {
|
|
85
76
|
auto value = values_["disableEarlyViewCommandExecution"];
|
|
86
77
|
if (!value.isNull()) {
|
|
@@ -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<<8d8563ead19635c98fe335864aa1cad0>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -28,7 +28,6 @@ class ReactNativeFeatureFlagsProvider {
|
|
|
28
28
|
virtual bool commonTestFlag() = 0;
|
|
29
29
|
virtual bool cdpInteractionMetricsEnabled() = 0;
|
|
30
30
|
virtual bool cxxNativeAnimatedEnabled() = 0;
|
|
31
|
-
virtual bool cxxNativeAnimatedRemoveJsSync() = 0;
|
|
32
31
|
virtual bool disableEarlyViewCommandExecution() = 0;
|
|
33
32
|
virtual bool disableImageViewPreallocationAndroid() = 0;
|
|
34
33
|
virtual bool disableMountItemReorderingAndroid() = 0;
|
|
@@ -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<<0e0ea09b8aa2c9649042df278241be28>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -59,11 +59,6 @@ bool NativeReactNativeFeatureFlags::cxxNativeAnimatedEnabled(
|
|
|
59
59
|
return ReactNativeFeatureFlags::cxxNativeAnimatedEnabled();
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
bool NativeReactNativeFeatureFlags::cxxNativeAnimatedRemoveJsSync(
|
|
63
|
-
jsi::Runtime& /*runtime*/) {
|
|
64
|
-
return ReactNativeFeatureFlags::cxxNativeAnimatedRemoveJsSync();
|
|
65
|
-
}
|
|
66
|
-
|
|
67
62
|
bool NativeReactNativeFeatureFlags::disableEarlyViewCommandExecution(
|
|
68
63
|
jsi::Runtime& /*runtime*/) {
|
|
69
64
|
return ReactNativeFeatureFlags::disableEarlyViewCommandExecution();
|
|
@@ -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<<a9b91d43221aae62d3a6811867a72695>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -42,8 +42,6 @@ class NativeReactNativeFeatureFlags
|
|
|
42
42
|
|
|
43
43
|
bool cxxNativeAnimatedEnabled(jsi::Runtime& runtime);
|
|
44
44
|
|
|
45
|
-
bool cxxNativeAnimatedRemoveJsSync(jsi::Runtime& runtime);
|
|
46
|
-
|
|
47
45
|
bool disableEarlyViewCommandExecution(jsi::Runtime& runtime);
|
|
48
46
|
|
|
49
47
|
bool disableImageViewPreallocationAndroid(jsi::Runtime& runtime);
|
|
@@ -764,9 +764,7 @@ bool NativeAnimatedNodesManager::onAnimationFrame(double timestamp) {
|
|
|
764
764
|
|
|
765
765
|
if (driver->getIsComplete()) {
|
|
766
766
|
hasFinishedAnimations = true;
|
|
767
|
-
|
|
768
|
-
finishedAnimationValueNodes.insert(driver->getAnimatedValueTag());
|
|
769
|
-
}
|
|
767
|
+
finishedAnimationValueNodes.insert(driver->getAnimatedValueTag());
|
|
770
768
|
}
|
|
771
769
|
}
|
|
772
770
|
|
|
@@ -962,9 +960,7 @@ AnimationMutations NativeAnimatedNodesManager::pullAnimationMutations() {
|
|
|
962
960
|
|
|
963
961
|
if (driver->getIsComplete()) {
|
|
964
962
|
hasFinishedAnimations = true;
|
|
965
|
-
|
|
966
|
-
finishedAnimationValueNodes.insert(driver->getAnimatedValueTag());
|
|
967
|
-
}
|
|
963
|
+
finishedAnimationValueNodes.insert(driver->getAnimatedValueTag());
|
|
968
964
|
}
|
|
969
965
|
}
|
|
970
966
|
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and 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
|
+
#include <stdexcept>
|
|
9
|
+
#include "AnimatedPropsSerializer.h"
|
|
10
|
+
|
|
11
|
+
namespace facebook::react {
|
|
12
|
+
|
|
13
|
+
namespace {
|
|
14
|
+
|
|
15
|
+
void packBorderRadiusCorner(
|
|
16
|
+
folly::dynamic& dyn,
|
|
17
|
+
const std::string& propName,
|
|
18
|
+
const std::optional<ValueUnit>& cornerValue) {
|
|
19
|
+
if (cornerValue.has_value()) {
|
|
20
|
+
dyn.insert(propName, cornerValue.value().value);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
void packBorderRadii(
|
|
25
|
+
folly::dynamic& dyn,
|
|
26
|
+
const AnimatedPropBase& animatedProp) {
|
|
27
|
+
const auto& borderRadii = get<CascadedBorderRadii>(animatedProp);
|
|
28
|
+
|
|
29
|
+
packBorderRadiusCorner(dyn, "borderTopRightRadius", borderRadii.topRight);
|
|
30
|
+
packBorderRadiusCorner(dyn, "borderTopLeftRadius", borderRadii.topLeft);
|
|
31
|
+
packBorderRadiusCorner(
|
|
32
|
+
dyn, "borderBottomRightRadius", borderRadii.bottomRight);
|
|
33
|
+
packBorderRadiusCorner(dyn, "borderBottomLeftRadius", borderRadii.bottomLeft);
|
|
34
|
+
packBorderRadiusCorner(dyn, "borderTopStartRadius", borderRadii.topStart);
|
|
35
|
+
packBorderRadiusCorner(dyn, "borderTopEndRadius", borderRadii.topEnd);
|
|
36
|
+
packBorderRadiusCorner(
|
|
37
|
+
dyn, "borderBottomStartRadius", borderRadii.bottomStart);
|
|
38
|
+
packBorderRadiusCorner(dyn, "borderBottomEndRadius", borderRadii.bottomEnd);
|
|
39
|
+
packBorderRadiusCorner(dyn, "borderStartStartRadius", borderRadii.startStart);
|
|
40
|
+
packBorderRadiusCorner(dyn, "borderStartEndRadius", borderRadii.startEnd);
|
|
41
|
+
packBorderRadiusCorner(dyn, "borderEndStartRadius", borderRadii.endStart);
|
|
42
|
+
packBorderRadiusCorner(dyn, "borderEndEndRadius", borderRadii.endEnd);
|
|
43
|
+
|
|
44
|
+
if (borderRadii.all.has_value()) {
|
|
45
|
+
dyn.insert("borderRadius", borderRadii.all.value().value);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
void packOpacity(folly::dynamic& dyn, const AnimatedPropBase& animatedProp) {
|
|
50
|
+
dyn.insert("opacity", get<Float>(animatedProp));
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
void packTransform(folly::dynamic& dyn, const AnimatedPropBase& animatedProp) {
|
|
54
|
+
const auto transform = get<Transform>(animatedProp);
|
|
55
|
+
const auto matrixArray = folly::dynamic::array(
|
|
56
|
+
transform.matrix[0],
|
|
57
|
+
transform.matrix[1],
|
|
58
|
+
transform.matrix[2],
|
|
59
|
+
transform.matrix[3],
|
|
60
|
+
transform.matrix[4],
|
|
61
|
+
transform.matrix[5],
|
|
62
|
+
transform.matrix[6],
|
|
63
|
+
transform.matrix[7],
|
|
64
|
+
transform.matrix[8],
|
|
65
|
+
transform.matrix[9],
|
|
66
|
+
transform.matrix[10],
|
|
67
|
+
transform.matrix[11],
|
|
68
|
+
transform.matrix[12],
|
|
69
|
+
transform.matrix[13],
|
|
70
|
+
transform.matrix[14],
|
|
71
|
+
transform.matrix[15]);
|
|
72
|
+
dyn.insert(
|
|
73
|
+
"transform",
|
|
74
|
+
folly::dynamic::array(folly::dynamic::object("matrix", matrixArray)));
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
void packBackgroundColor(
|
|
78
|
+
folly::dynamic& dyn,
|
|
79
|
+
const AnimatedPropBase& animatedProp) {
|
|
80
|
+
const auto& backgroundColor = get<SharedColor>(animatedProp);
|
|
81
|
+
if (backgroundColor) {
|
|
82
|
+
dyn.insert("backgroundColor", static_cast<int32_t>(*backgroundColor));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
void packAnimatedProp(
|
|
87
|
+
folly::dynamic& dyn,
|
|
88
|
+
const std::unique_ptr<AnimatedPropBase>& animatedProp) {
|
|
89
|
+
switch (animatedProp->propName) {
|
|
90
|
+
case OPACITY:
|
|
91
|
+
packOpacity(dyn, *animatedProp);
|
|
92
|
+
break;
|
|
93
|
+
|
|
94
|
+
case TRANSFORM:
|
|
95
|
+
packTransform(dyn, *animatedProp);
|
|
96
|
+
break;
|
|
97
|
+
|
|
98
|
+
case BACKGROUND_COLOR:
|
|
99
|
+
packBackgroundColor(dyn, *animatedProp);
|
|
100
|
+
break;
|
|
101
|
+
|
|
102
|
+
case BORDER_RADII:
|
|
103
|
+
packBorderRadii(dyn, *animatedProp);
|
|
104
|
+
break;
|
|
105
|
+
|
|
106
|
+
case WIDTH:
|
|
107
|
+
case HEIGHT:
|
|
108
|
+
case FLEX:
|
|
109
|
+
throw std::runtime_error("Tried to synchronously update layout props");
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
} // namespace
|
|
114
|
+
|
|
115
|
+
namespace animationbackend {
|
|
116
|
+
|
|
117
|
+
folly::dynamic packAnimatedProps(const AnimatedProps& animatedProps) {
|
|
118
|
+
auto dyn = animatedProps.rawProps ? animatedProps.rawProps->toDynamic()
|
|
119
|
+
: folly::dynamic::object();
|
|
120
|
+
|
|
121
|
+
for (auto& animatedProp : animatedProps.props) {
|
|
122
|
+
packAnimatedProp(dyn, animatedProp);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
return dyn;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
} // namespace animationbackend
|
|
129
|
+
|
|
130
|
+
} // namespace facebook::react
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
namespace facebook::react {
|
|
14
14
|
|
|
15
|
-
enum PropName { OPACITY, WIDTH, HEIGHT, BORDER_RADII, FLEX, TRANSFORM };
|
|
15
|
+
enum PropName { OPACITY, WIDTH, HEIGHT, BORDER_RADII, FLEX, TRANSFORM, BACKGROUND_COLOR };
|
|
16
16
|
|
|
17
17
|
struct AnimatedPropBase {
|
|
18
18
|
PropName propName;
|
|
@@ -70,6 +70,10 @@ inline void cloneProp(BaseViewProps &viewProps, const AnimatedPropBase &animated
|
|
|
70
70
|
case TRANSFORM:
|
|
71
71
|
viewProps.transform = get<Transform>(animatedProp);
|
|
72
72
|
break;
|
|
73
|
+
|
|
74
|
+
case BACKGROUND_COLOR:
|
|
75
|
+
viewProps.backgroundColor = get<SharedColor>(animatedProp);
|
|
76
|
+
break;
|
|
73
77
|
}
|
|
74
78
|
}
|
|
75
79
|
} // namespace facebook::react
|
|
@@ -35,6 +35,10 @@ struct AnimatedPropsBuilder {
|
|
|
35
35
|
{
|
|
36
36
|
props.push_back(std::make_unique<AnimatedProp<Transform>>(TRANSFORM, std::move(t)));
|
|
37
37
|
}
|
|
38
|
+
void setBackgroundColor(SharedColor value)
|
|
39
|
+
{
|
|
40
|
+
props.push_back(std::make_unique<AnimatedProp<SharedColor>>(BACKGROUND_COLOR, value));
|
|
41
|
+
}
|
|
38
42
|
void storeDynamic(folly::dynamic &d)
|
|
39
43
|
{
|
|
40
44
|
rawProps = std::make_unique<RawProps>(std::move(d));
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and 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 <folly/dynamic.h>
|
|
11
|
+
#include "AnimatedProps.h"
|
|
12
|
+
|
|
13
|
+
namespace facebook::react::animationbackend {
|
|
14
|
+
|
|
15
|
+
folly::dynamic packAnimatedProps(const AnimatedProps &animatedProps);
|
|
16
|
+
|
|
17
|
+
} // namespace facebook::react::animationbackend
|
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
#include "AnimationBackend.h"
|
|
9
|
+
#include <react/renderer/animationbackend/AnimatedPropsSerializer.h>
|
|
10
|
+
#include <react/renderer/graphics/Color.h>
|
|
9
11
|
#include <chrono>
|
|
10
12
|
|
|
11
13
|
namespace facebook::react {
|
|
@@ -156,28 +158,10 @@ void AnimationBackend::commitUpdates(
|
|
|
156
158
|
void AnimationBackend::synchronouslyUpdateProps(
|
|
157
159
|
const std::unordered_map<Tag, AnimatedProps>& updates) {
|
|
158
160
|
for (auto& [tag, animatedProps] : updates) {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
// directManipulationCallback_ is needed
|
|
164
|
-
switch (animatedProp->propName) {
|
|
165
|
-
case OPACITY:
|
|
166
|
-
dyn.insert("opacity", get<Float>(animatedProp));
|
|
167
|
-
break;
|
|
168
|
-
|
|
169
|
-
case BORDER_RADII:
|
|
170
|
-
case TRANSFORM:
|
|
171
|
-
// TODO: handle other things than opacity
|
|
172
|
-
break;
|
|
173
|
-
|
|
174
|
-
case WIDTH:
|
|
175
|
-
case HEIGHT:
|
|
176
|
-
case FLEX:
|
|
177
|
-
throw "Tried to synchronously update layout props";
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
directManipulationCallback_(tag, dyn);
|
|
161
|
+
// TODO: We shouldn't repack it into dynamic, but for that a rewrite of
|
|
162
|
+
// directManipulationCallback_ is needed
|
|
163
|
+
auto dyn = animationbackend::packAnimatedProps(animatedProps);
|
|
164
|
+
directManipulationCallback_(tag, std::move(dyn));
|
|
181
165
|
}
|
|
182
166
|
}
|
|
183
167
|
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
#include <cxxreact/TraceSection.h>
|
|
16
16
|
#include <glog/logging.h>
|
|
17
17
|
#include <jsi/JSIDynamic.h>
|
|
18
|
-
#include <jsi/hermes.h>
|
|
18
|
+
#include <jsi/hermes-interfaces.h>
|
|
19
19
|
#include <jsi/instrumentation.h>
|
|
20
20
|
#include <jsinspector-modern/HostTarget.h>
|
|
21
21
|
#include <react/featureflags/ReactNativeFeatureFlags.h>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native",
|
|
3
|
-
"version": "0.84.0-nightly-
|
|
3
|
+
"version": "0.84.0-nightly-20251204-5bb3a6d68",
|
|
4
4
|
"description": "A framework for building native apps using React",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -160,13 +160,13 @@
|
|
|
160
160
|
},
|
|
161
161
|
"dependencies": {
|
|
162
162
|
"@jest/create-cache-key-function": "^29.7.0",
|
|
163
|
-
"@react-native/assets-registry": "0.84.0-nightly-
|
|
164
|
-
"@react-native/codegen": "0.84.0-nightly-
|
|
165
|
-
"@react-native/community-cli-plugin": "0.84.0-nightly-
|
|
166
|
-
"@react-native/gradle-plugin": "0.84.0-nightly-
|
|
167
|
-
"@react-native/js-polyfills": "0.84.0-nightly-
|
|
168
|
-
"@react-native/normalize-colors": "0.84.0-nightly-
|
|
169
|
-
"@react-native/virtualized-lists": "0.84.0-nightly-
|
|
163
|
+
"@react-native/assets-registry": "0.84.0-nightly-20251204-5bb3a6d68",
|
|
164
|
+
"@react-native/codegen": "0.84.0-nightly-20251204-5bb3a6d68",
|
|
165
|
+
"@react-native/community-cli-plugin": "0.84.0-nightly-20251204-5bb3a6d68",
|
|
166
|
+
"@react-native/gradle-plugin": "0.84.0-nightly-20251204-5bb3a6d68",
|
|
167
|
+
"@react-native/js-polyfills": "0.84.0-nightly-20251204-5bb3a6d68",
|
|
168
|
+
"@react-native/normalize-colors": "0.84.0-nightly-20251204-5bb3a6d68",
|
|
169
|
+
"@react-native/virtualized-lists": "0.84.0-nightly-20251204-5bb3a6d68",
|
|
170
170
|
"abort-controller": "^3.0.0",
|
|
171
171
|
"anser": "^1.4.9",
|
|
172
172
|
"ansi-regex": "^5.0.0",
|
|
@@ -175,8 +175,7 @@
|
|
|
175
175
|
"base64-js": "^1.5.1",
|
|
176
176
|
"commander": "^12.0.0",
|
|
177
177
|
"flow-enums-runtime": "^0.0.6",
|
|
178
|
-
"
|
|
179
|
-
"hermes-compiler": "0.14.0-commitly-202511181844-5b560d093",
|
|
178
|
+
"hermes-compiler": "0.14.0-commitly-202512030604-3713fb12a",
|
|
180
179
|
"invariant": "^2.2.4",
|
|
181
180
|
"jest-environment-node": "^29.7.0",
|
|
182
181
|
"memoize-one": "^5.0.0",
|
|
@@ -191,6 +190,7 @@
|
|
|
191
190
|
"scheduler": "0.27.0",
|
|
192
191
|
"semver": "^7.1.3",
|
|
193
192
|
"stacktrace-parser": "^0.1.10",
|
|
193
|
+
"tinyglobby": "^0.2.15",
|
|
194
194
|
"whatwg-fetch": "^3.0.0",
|
|
195
195
|
"ws": "^7.5.10",
|
|
196
196
|
"yargs": "^17.6.2"
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
const CodegenUtils = require('../codegen-utils');
|
|
14
14
|
const {codegenLog} = require('./utils');
|
|
15
15
|
const fs = require('fs');
|
|
16
|
-
const glob = require('glob');
|
|
17
16
|
const path = require('path');
|
|
17
|
+
const {globSync} = require('tinyglobby');
|
|
18
18
|
|
|
19
19
|
function generateSchemaInfos(
|
|
20
20
|
libraries /*: $ReadOnlyArray<$FlowFixMe> */,
|
|
@@ -57,17 +57,18 @@ function extractSupportedApplePlatforms(
|
|
|
57
57
|
dependencyPath /*: string */,
|
|
58
58
|
) /*: ?{[string]: boolean} */ {
|
|
59
59
|
codegenLog('Searching for podspec in the project dependencies.', true);
|
|
60
|
-
const podspecs =
|
|
60
|
+
const podspecs = globSync('*.podspec', {
|
|
61
|
+
cwd: dependencyPath,
|
|
62
|
+
onlyFiles: true,
|
|
63
|
+
absolute: true,
|
|
64
|
+
});
|
|
61
65
|
|
|
62
66
|
if (podspecs.length === 0) {
|
|
63
67
|
return;
|
|
64
68
|
}
|
|
65
69
|
|
|
66
70
|
// Take the first podspec found
|
|
67
|
-
const podspec = fs.readFileSync(
|
|
68
|
-
path.join(dependencyPath, podspecs[0]),
|
|
69
|
-
'utf8',
|
|
70
|
-
);
|
|
71
|
+
const podspec = fs.readFileSync(podspecs[0], 'utf8');
|
|
71
72
|
|
|
72
73
|
/**
|
|
73
74
|
* Podspec can have platforms defined in two ways:
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
HERMES_VERSION_NAME=0.14.0-commitly-
|
|
1
|
+
HERMES_VERSION_NAME=0.14.0-commitly-202512030604-3713fb12a
|
|
2
2
|
HERMES_V1_VERSION_NAME=250829098.0.4
|
|
@@ -136,8 +136,7 @@ export default function createAnimatedPropsHook(
|
|
|
136
136
|
// Check 2: this is an animation driven by native.
|
|
137
137
|
// In native driven animations, this callback is only called once the animation completes.
|
|
138
138
|
const shouldRemoveJsSync =
|
|
139
|
-
ReactNativeFeatureFlags.cxxNativeAnimatedEnabled()
|
|
140
|
-
ReactNativeFeatureFlags.cxxNativeAnimatedRemoveJsSync();
|
|
139
|
+
ReactNativeFeatureFlags.cxxNativeAnimatedEnabled();
|
|
141
140
|
if (isFabricNode && !shouldRemoveJsSync) {
|
|
142
141
|
// Call `scheduleUpdate` to synchronise Fiber and Shadow tree.
|
|
143
142
|
// Must not be called in Paper.
|
|
@@ -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<<1732204fe9acf34158e7f9e4aec04161>>
|
|
8
8
|
* @flow strict
|
|
9
9
|
* @noformat
|
|
10
10
|
*/
|
|
@@ -54,7 +54,6 @@ export type ReactNativeFeatureFlags = $ReadOnly<{
|
|
|
54
54
|
commonTestFlagWithoutNativeImplementation: Getter<boolean>,
|
|
55
55
|
cdpInteractionMetricsEnabled: Getter<boolean>,
|
|
56
56
|
cxxNativeAnimatedEnabled: Getter<boolean>,
|
|
57
|
-
cxxNativeAnimatedRemoveJsSync: Getter<boolean>,
|
|
58
57
|
disableEarlyViewCommandExecution: Getter<boolean>,
|
|
59
58
|
disableImageViewPreallocationAndroid: Getter<boolean>,
|
|
60
59
|
disableMountItemReorderingAndroid: Getter<boolean>,
|
|
@@ -239,10 +238,6 @@ export const cdpInteractionMetricsEnabled: Getter<boolean> = createNativeFlagGet
|
|
|
239
238
|
* Use a C++ implementation of Native Animated instead of the platform implementation.
|
|
240
239
|
*/
|
|
241
240
|
export const cxxNativeAnimatedEnabled: Getter<boolean> = createNativeFlagGetter('cxxNativeAnimatedEnabled', false);
|
|
242
|
-
/**
|
|
243
|
-
* Removes JS sync at end of native animation
|
|
244
|
-
*/
|
|
245
|
-
export const cxxNativeAnimatedRemoveJsSync: Getter<boolean> = createNativeFlagGetter('cxxNativeAnimatedRemoveJsSync', false);
|
|
246
241
|
/**
|
|
247
242
|
* Dispatch view commands in mount item order.
|
|
248
243
|
*/
|
|
@@ -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<<2604998265d9aa6a9b50d78502aa8d10>>
|
|
8
8
|
* @flow strict
|
|
9
9
|
* @noformat
|
|
10
10
|
*/
|
|
@@ -28,7 +28,6 @@ export interface Spec extends TurboModule {
|
|
|
28
28
|
+commonTestFlagWithoutNativeImplementation?: () => boolean;
|
|
29
29
|
+cdpInteractionMetricsEnabled?: () => boolean;
|
|
30
30
|
+cxxNativeAnimatedEnabled?: () => boolean;
|
|
31
|
-
+cxxNativeAnimatedRemoveJsSync?: () => boolean;
|
|
32
31
|
+disableEarlyViewCommandExecution?: () => boolean;
|
|
33
32
|
+disableImageViewPreallocationAndroid?: () => boolean;
|
|
34
33
|
+disableMountItemReorderingAndroid?: () => boolean;
|
|
File without changes
|