react-native 0.84.0-nightly-20251105-5ec5cc3a3 → 0.84.0-nightly-20251107-f8198f662
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/createAnimatedComponent.js +1 -0
- package/Libraries/Components/Button.js +0 -3
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +2 -2
- package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
- package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +4 -2
- package/React/Base/RCTVersion.m +1 -1
- package/React/CoreModules/React-CoreModules.podspec +1 -0
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +8 -8
- package/React/Fabric/Surface/RCTFabricSurface.mm +1 -1
- package/React/Runtime/React-RCTRuntime.podspec +1 -0
- package/ReactAndroid/api/ReactAndroid.api +0 -13
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.kt +2 -3
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +2 -6
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleHolder.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.kt +1 -16
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +7 -7
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +11 -11
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +12 -12
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.kt +2 -35
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +3 -36
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateExperimental.kt +7 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +11 -1
- package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +36 -26
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +15 -15
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +4 -4
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +3 -13
- package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +1 -4
- package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapperBase.h +0 -24
- package/ReactAndroid/src/main/jni/react/jni/JavaModuleWrapper.cpp +0 -1
- package/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.cpp +1 -29
- package/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.h +1 -2
- package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +0 -2
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +2 -1
- package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp +1 -35
- package/ReactCommon/cxxreact/React-cxxreact.podspec +1 -0
- package/ReactCommon/cxxreact/ReactMarker.cpp +0 -1
- package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
- package/ReactCommon/jsiexecutor/CMakeLists.txt +3 -1
- package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +3 -0
- package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +0 -40
- package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.h +1 -6
- package/ReactCommon/jsinspector-modern/ConsoleTask.cpp +27 -0
- package/ReactCommon/jsinspector-modern/ConsoleTask.h +38 -0
- package/ReactCommon/jsinspector-modern/ConsoleTaskContext.cpp +46 -0
- package/ReactCommon/jsinspector-modern/ConsoleTaskContext.h +102 -0
- package/ReactCommon/jsinspector-modern/ConsoleTaskOrchestrator.cpp +55 -0
- package/ReactCommon/jsinspector-modern/ConsoleTaskOrchestrator.h +48 -0
- package/ReactCommon/jsinspector-modern/RuntimeAgent.h +1 -1
- package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +12 -0
- package/ReactCommon/jsinspector-modern/RuntimeTarget.h +16 -13
- package/ReactCommon/jsinspector-modern/RuntimeTargetConsole.cpp +106 -1
- package/ReactCommon/jsinspector-modern/tests/ConsoleCreateTaskTest.cpp +131 -0
- package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +1 -0
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +13 -2
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +6 -2
- package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +4 -0
- package/ReactCommon/jsinspector-modern/tracing/TargetTracingAgent.h +5 -0
- package/ReactCommon/jsitooling/React-jsitooling.podspec +1 -0
- package/ReactCommon/jsitooling/react/runtime/JSRuntimeBindings.cpp +54 -0
- package/ReactCommon/jsitooling/react/runtime/JSRuntimeBindings.h +20 -0
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +5 -5
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +6 -6
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +83 -83
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +3 -3
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +5 -5
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +10 -10
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +2 -2
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +6 -6
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +3 -3
- package/ReactCommon/react/performance/timeline/CMakeLists.txt +1 -0
- package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +9 -1
- package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -0
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +21 -16
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.cpp +9 -5
- package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +67 -32
- package/ReactCommon/react/renderer/animationbackend/AnimationBackend.h +14 -2
- package/ReactCommon/react/renderer/core/EventDispatcher.cpp +1 -1
- package/ReactCommon/react/renderer/core/EventQueueProcessor.cpp +3 -3
- package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +0 -20
- package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +3 -3
- package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +2 -3
- package/ReactCommon/react/runtime/ReactInstance.cpp +8 -6
- package/ReactCommon/react/runtime/ReactInstance.h +0 -1
- package/ReactCommon/react/utils/React-utils.podspec +3 -1
- package/flow/bom.js.flow +7 -0
- package/package.json +9 -8
- package/scripts/ios-configure-glog.sh +6 -1
- package/src/private/featureflags/ReactNativeFeatureFlags.js +6 -6
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +2 -2
- package/types_generated/Libraries/Components/Button.d.ts +1 -4
- package/types_generated/Libraries/StyleSheet/PlatformColorValueTypes.d.ts +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapper.kt +0 -25
- package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapperBase.kt +0 -61
- package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapper.h +0 -37
|
@@ -0,0 +1,131 @@
|
|
|
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 <folly/executors/QueuedImmediateExecutor.h>
|
|
9
|
+
|
|
10
|
+
#include "JsiIntegrationTest.h"
|
|
11
|
+
#include "engines/JsiIntegrationTestHermesEngineAdapter.h"
|
|
12
|
+
|
|
13
|
+
#include <jsinspector-modern/ConsoleTaskOrchestrator.h>
|
|
14
|
+
|
|
15
|
+
using namespace ::testing;
|
|
16
|
+
|
|
17
|
+
namespace facebook::react::jsinspector_modern {
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* A test fixture for the console.createTask API.
|
|
21
|
+
*/
|
|
22
|
+
class ConsoleCreateTaskTest : public JsiIntegrationPortableTestBase<
|
|
23
|
+
JsiIntegrationTestHermesEngineAdapter,
|
|
24
|
+
folly::QueuedImmediateExecutor> {};
|
|
25
|
+
|
|
26
|
+
TEST_F(ConsoleCreateTaskTest, Installed) {
|
|
27
|
+
auto result = eval("typeof console.createTask");
|
|
28
|
+
auto& runtime = engineAdapter_->getRuntime();
|
|
29
|
+
EXPECT_EQ(result.asString(runtime).utf8(runtime), "function");
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
TEST_F(ConsoleCreateTaskTest, ReturnsTaskObject) {
|
|
33
|
+
auto result = eval("typeof console.createTask('test-task')");
|
|
34
|
+
auto& runtime = engineAdapter_->getRuntime();
|
|
35
|
+
EXPECT_EQ(result.asString(runtime).utf8(runtime), "object");
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
TEST_F(ConsoleCreateTaskTest, TaskObjectHasRunMethod) {
|
|
39
|
+
auto result = eval("typeof console.createTask('test-task').run");
|
|
40
|
+
auto& runtime = engineAdapter_->getRuntime();
|
|
41
|
+
EXPECT_EQ(result.asString(runtime).utf8(runtime), "function");
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
TEST_F(ConsoleCreateTaskTest, RunMethodExecutesFunction) {
|
|
45
|
+
auto result = eval(R"(
|
|
46
|
+
let executed = false;
|
|
47
|
+
const task = console.createTask('test-task');
|
|
48
|
+
task.run(() => { executed = true; });
|
|
49
|
+
executed;
|
|
50
|
+
)");
|
|
51
|
+
EXPECT_TRUE(result.getBool());
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
TEST_F(ConsoleCreateTaskTest, RunMethodReturnsValue) {
|
|
55
|
+
auto result = eval(R"(
|
|
56
|
+
const task = console.createTask('test-task');
|
|
57
|
+
task.run(() => 42);
|
|
58
|
+
)");
|
|
59
|
+
EXPECT_EQ(result.getNumber(), 42);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
TEST_F(ConsoleCreateTaskTest, ThrowsOnNoArguments) {
|
|
63
|
+
EXPECT_THROW(eval("console.createTask()"), facebook::jsi::JSError);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
TEST_F(ConsoleCreateTaskTest, ThrowsOnEmptyString) {
|
|
67
|
+
EXPECT_THROW(eval("console.createTask('')"), facebook::jsi::JSError);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
TEST_F(ConsoleCreateTaskTest, ThrowsOnNonStringArgument) {
|
|
71
|
+
EXPECT_THROW(eval("console.createTask(123)"), facebook::jsi::JSError);
|
|
72
|
+
EXPECT_THROW(eval("console.createTask(null)"), facebook::jsi::JSError);
|
|
73
|
+
EXPECT_THROW(eval("console.createTask(undefined)"), facebook::jsi::JSError);
|
|
74
|
+
EXPECT_THROW(eval("console.createTask({})"), facebook::jsi::JSError);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
TEST_F(ConsoleCreateTaskTest, RunMethodThrowsOnNoArguments) {
|
|
78
|
+
EXPECT_THROW(
|
|
79
|
+
eval(R"(
|
|
80
|
+
const task = console.createTask('test-task');
|
|
81
|
+
task.run();
|
|
82
|
+
)"),
|
|
83
|
+
facebook::jsi::JSError);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
TEST_F(ConsoleCreateTaskTest, RunMethodThrowsOnNonFunction) {
|
|
87
|
+
EXPECT_THROW(
|
|
88
|
+
eval(R"(
|
|
89
|
+
const task = console.createTask('test-task');
|
|
90
|
+
task.run(123);
|
|
91
|
+
)"),
|
|
92
|
+
facebook::jsi::JSError);
|
|
93
|
+
EXPECT_THROW(
|
|
94
|
+
eval(R"(
|
|
95
|
+
const task = console.createTask('test-task');
|
|
96
|
+
task.run('not a function');
|
|
97
|
+
)"),
|
|
98
|
+
facebook::jsi::JSError);
|
|
99
|
+
EXPECT_THROW(
|
|
100
|
+
eval(R"(
|
|
101
|
+
const task = console.createTask('test-task');
|
|
102
|
+
task.run({});
|
|
103
|
+
)"),
|
|
104
|
+
facebook::jsi::JSError);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
TEST_F(ConsoleCreateTaskTest, MultipleTasksCanBeCreated) {
|
|
108
|
+
auto result = eval(R"(
|
|
109
|
+
const task1 = console.createTask('task-1');
|
|
110
|
+
const task2 = console.createTask('task-2');
|
|
111
|
+
let count = 0;
|
|
112
|
+
task1.run(() => { count++; });
|
|
113
|
+
task2.run(() => { count++; });
|
|
114
|
+
count;
|
|
115
|
+
)");
|
|
116
|
+
EXPECT_EQ(result.getNumber(), 2);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
TEST_F(ConsoleCreateTaskTest, TaskCanBeRunMultipleTimes) {
|
|
120
|
+
auto result = eval(R"(
|
|
121
|
+
const task = console.createTask('test-task');
|
|
122
|
+
let count = 0;
|
|
123
|
+
task.run(() => { count++; });
|
|
124
|
+
task.run(() => { count++; });
|
|
125
|
+
task.run(() => { count++; });
|
|
126
|
+
count;
|
|
127
|
+
)");
|
|
128
|
+
EXPECT_EQ(result.getNumber(), 3);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
} // namespace facebook::react::jsinspector_modern
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
#include <glog/logging.h>
|
|
15
15
|
#include <jsinspector-modern/InspectorFlags.h>
|
|
16
16
|
#include <react/featureflags/ReactNativeFeatureFlags.h>
|
|
17
|
+
#include <react/runtime/JSRuntimeBindings.h>
|
|
17
18
|
#include <react/runtime/hermes/HermesInstance.h>
|
|
18
19
|
|
|
19
20
|
using namespace ::testing;
|
|
@@ -187,7 +187,8 @@ void PerformanceTracer::reportMeasure(
|
|
|
187
187
|
const std::string& name,
|
|
188
188
|
HighResTimeStamp start,
|
|
189
189
|
HighResDuration duration,
|
|
190
|
-
folly::dynamic&& detail
|
|
190
|
+
folly::dynamic&& detail,
|
|
191
|
+
std::optional<folly::dynamic> stackTrace) {
|
|
191
192
|
if (!tracingAtomic_) {
|
|
192
193
|
return;
|
|
193
194
|
}
|
|
@@ -204,6 +205,7 @@ void PerformanceTracer::reportMeasure(
|
|
|
204
205
|
.duration = duration,
|
|
205
206
|
.detail = std::move(detail),
|
|
206
207
|
.threadId = getCurrentThreadId(),
|
|
208
|
+
.stackTrace = std::move(stackTrace),
|
|
207
209
|
});
|
|
208
210
|
}
|
|
209
211
|
|
|
@@ -214,7 +216,8 @@ void PerformanceTracer::reportTimeStamp(
|
|
|
214
216
|
std::optional<std::string> trackName,
|
|
215
217
|
std::optional<std::string> trackGroup,
|
|
216
218
|
std::optional<ConsoleTimeStampColor> color,
|
|
217
|
-
std::optional<folly::dynamic> detail
|
|
219
|
+
std::optional<folly::dynamic> detail,
|
|
220
|
+
std::optional<folly::dynamic> stackTrace) {
|
|
218
221
|
if (!tracingAtomic_) {
|
|
219
222
|
return;
|
|
220
223
|
}
|
|
@@ -233,6 +236,7 @@ void PerformanceTracer::reportTimeStamp(
|
|
|
233
236
|
.trackGroup = std::move(trackGroup),
|
|
234
237
|
.color = std::move(color),
|
|
235
238
|
.detail = std::move(detail),
|
|
239
|
+
.stackTrace = std::move(stackTrace),
|
|
236
240
|
.threadId = getCurrentThreadId(),
|
|
237
241
|
});
|
|
238
242
|
}
|
|
@@ -606,6 +610,10 @@ void PerformanceTracer::enqueueTraceEventsFromPerformanceTracerEvent(
|
|
|
606
610
|
beginEventArgs =
|
|
607
611
|
folly::dynamic::object("detail", folly::toJson(event.detail));
|
|
608
612
|
}
|
|
613
|
+
if (event.stackTrace) {
|
|
614
|
+
beginEventArgs["data"] = folly::dynamic::object(
|
|
615
|
+
"rnStackTrace", std::move(*event.stackTrace));
|
|
616
|
+
}
|
|
609
617
|
|
|
610
618
|
auto eventId = ++performanceMeasureCount_;
|
|
611
619
|
|
|
@@ -695,6 +703,9 @@ void PerformanceTracer::enqueueTraceEventsFromPerformanceTracerEvent(
|
|
|
695
703
|
}
|
|
696
704
|
data["devtools"] = folly::toJson(devtoolsDetail);
|
|
697
705
|
}
|
|
706
|
+
if (event.stackTrace) {
|
|
707
|
+
data["rnStackTrace"] = std::move(*event.stackTrace);
|
|
708
|
+
}
|
|
698
709
|
|
|
699
710
|
events.emplace_back(
|
|
700
711
|
TraceEvent{
|
|
@@ -81,7 +81,8 @@ class PerformanceTracer {
|
|
|
81
81
|
const std::string &name,
|
|
82
82
|
HighResTimeStamp start,
|
|
83
83
|
HighResDuration duration,
|
|
84
|
-
folly::dynamic &&detail = nullptr
|
|
84
|
+
folly::dynamic &&detail = nullptr,
|
|
85
|
+
std::optional<folly::dynamic> stackTrace = nullptr);
|
|
85
86
|
|
|
86
87
|
/**
|
|
87
88
|
* Record a "TimeStamp" Trace Event - a labelled entry on Performance
|
|
@@ -97,7 +98,8 @@ class PerformanceTracer {
|
|
|
97
98
|
std::optional<std::string> trackName = std::nullopt,
|
|
98
99
|
std::optional<std::string> trackGroup = std::nullopt,
|
|
99
100
|
std::optional<ConsoleTimeStampColor> color = std::nullopt,
|
|
100
|
-
std::optional<folly::dynamic> detail = std::nullopt
|
|
101
|
+
std::optional<folly::dynamic> detail = std::nullopt,
|
|
102
|
+
std::optional<folly::dynamic> stackTrace = std::nullopt);
|
|
101
103
|
|
|
102
104
|
/**
|
|
103
105
|
* Record an Event Loop tick, which will be represented as an Event Loop task
|
|
@@ -256,6 +258,7 @@ class PerformanceTracer {
|
|
|
256
258
|
HighResDuration duration;
|
|
257
259
|
folly::dynamic detail;
|
|
258
260
|
ThreadId threadId;
|
|
261
|
+
std::optional<folly::dynamic> stackTrace;
|
|
259
262
|
HighResTimeStamp createdAt = HighResTimeStamp::now();
|
|
260
263
|
};
|
|
261
264
|
|
|
@@ -267,6 +270,7 @@ class PerformanceTracer {
|
|
|
267
270
|
std::optional<std::string> trackGroup;
|
|
268
271
|
std::optional<ConsoleTimeStampColor> color;
|
|
269
272
|
std::optional<folly::dynamic> detail;
|
|
273
|
+
std::optional<folly::dynamic> stackTrace;
|
|
270
274
|
ThreadId threadId;
|
|
271
275
|
HighResTimeStamp createdAt = HighResTimeStamp::now();
|
|
272
276
|
};
|
|
@@ -42,6 +42,7 @@ Pod::Spec.new do |s|
|
|
|
42
42
|
add_dependency(s, "React-jsinspector", :framework_name => 'jsinspector_modern')
|
|
43
43
|
add_dependency(s, "React-jsinspectorcdp", :framework_name => 'jsinspector_moderncdp')
|
|
44
44
|
add_dependency(s, "React-jsinspectortracing", :framework_name => 'jsinspector_moderntracing')
|
|
45
|
+
add_dependency(s, "React-utils", :additional_framework_paths => ["react/utils/platform/ios"])
|
|
45
46
|
|
|
46
47
|
add_rn_third_party_dependencies(s)
|
|
47
48
|
add_rncore_dependency(s)
|
|
@@ -0,0 +1,54 @@
|
|
|
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 "JSRuntimeBindings.h"
|
|
9
|
+
|
|
10
|
+
#include <react/timing/primitives.h>
|
|
11
|
+
|
|
12
|
+
namespace facebook::react {
|
|
13
|
+
|
|
14
|
+
void bindNativeLogger(jsi::Runtime& runtime, Logger logger) {
|
|
15
|
+
runtime.global().setProperty(
|
|
16
|
+
runtime,
|
|
17
|
+
"nativeLoggingHook",
|
|
18
|
+
jsi::Function::createFromHostFunction(
|
|
19
|
+
runtime,
|
|
20
|
+
jsi::PropNameID::forAscii(runtime, "nativeLoggingHook"),
|
|
21
|
+
2,
|
|
22
|
+
[logger = std::move(logger)](
|
|
23
|
+
jsi::Runtime& runtime,
|
|
24
|
+
const jsi::Value& /* this */,
|
|
25
|
+
const jsi::Value* args,
|
|
26
|
+
size_t count) {
|
|
27
|
+
if (count != 2) {
|
|
28
|
+
throw std::invalid_argument(
|
|
29
|
+
"nativeLoggingHook takes 2 arguments");
|
|
30
|
+
}
|
|
31
|
+
logger(
|
|
32
|
+
args[0].asString(runtime).utf8(runtime),
|
|
33
|
+
static_cast<unsigned int>(args[1].asNumber()));
|
|
34
|
+
return jsi::Value::undefined();
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
void bindNativePerformanceNow(jsi::Runtime& runtime) {
|
|
39
|
+
runtime.global().setProperty(
|
|
40
|
+
runtime,
|
|
41
|
+
"nativePerformanceNow",
|
|
42
|
+
jsi::Function::createFromHostFunction(
|
|
43
|
+
runtime,
|
|
44
|
+
jsi::PropNameID::forAscii(runtime, "nativePerformanceNow"),
|
|
45
|
+
0,
|
|
46
|
+
[](jsi::Runtime& /* runtime */,
|
|
47
|
+
const jsi::Value& /* this */,
|
|
48
|
+
const jsi::Value* /* args */,
|
|
49
|
+
size_t /*count*/) {
|
|
50
|
+
return HighResTimeStamp::now().toDOMHighResTimeStamp();
|
|
51
|
+
}));
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
} // namespace facebook::react
|
|
@@ -0,0 +1,20 @@
|
|
|
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 <jsi/jsi.h>
|
|
11
|
+
#include <string>
|
|
12
|
+
|
|
13
|
+
namespace facebook::react {
|
|
14
|
+
|
|
15
|
+
using Logger = std::function<void(const std::string &message, unsigned int logLevel)>;
|
|
16
|
+
void bindNativeLogger(jsi::Runtime &runtime, Logger logger);
|
|
17
|
+
|
|
18
|
+
void bindNativePerformanceNow(jsi::Runtime &runtime);
|
|
19
|
+
|
|
20
|
+
} // namespace facebook::react
|
|
@@ -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<<a2224b72c2e27abf6a158aa1b4fe9ed0>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -58,6 +58,10 @@ bool ReactNativeFeatureFlags::disableOldAndroidAttachmentMetricsWorkarounds() {
|
|
|
58
58
|
return getAccessor().disableOldAndroidAttachmentMetricsWorkarounds();
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
+
bool ReactNativeFeatureFlags::disableSubviewClippingAndroid() {
|
|
62
|
+
return getAccessor().disableSubviewClippingAndroid();
|
|
63
|
+
}
|
|
64
|
+
|
|
61
65
|
bool ReactNativeFeatureFlags::disableTextLayoutManagerCacheAndroid() {
|
|
62
66
|
return getAccessor().disableTextLayoutManagerCacheAndroid();
|
|
63
67
|
}
|
|
@@ -314,10 +318,6 @@ bool ReactNativeFeatureFlags::useNativeViewConfigsInBridgelessMode() {
|
|
|
314
318
|
return getAccessor().useNativeViewConfigsInBridgelessMode();
|
|
315
319
|
}
|
|
316
320
|
|
|
317
|
-
bool ReactNativeFeatureFlags::useOptimizedEventBatchingOnAndroid() {
|
|
318
|
-
return getAccessor().useOptimizedEventBatchingOnAndroid();
|
|
319
|
-
}
|
|
320
|
-
|
|
321
321
|
bool ReactNativeFeatureFlags::useRawPropsJsiValue() {
|
|
322
322
|
return getAccessor().useRawPropsJsiValue();
|
|
323
323
|
}
|
|
@@ -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<<467f48f2231ceb6772a9a9da9e3badb9>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -79,6 +79,11 @@ class ReactNativeFeatureFlags {
|
|
|
79
79
|
*/
|
|
80
80
|
RN_EXPORT static bool disableOldAndroidAttachmentMetricsWorkarounds();
|
|
81
81
|
|
|
82
|
+
/**
|
|
83
|
+
* Force disable subview clipping for ReactViewGroup on Android
|
|
84
|
+
*/
|
|
85
|
+
RN_EXPORT static bool disableSubviewClippingAndroid();
|
|
86
|
+
|
|
82
87
|
/**
|
|
83
88
|
* Turns off the global measurement cache used by TextLayoutManager on Android.
|
|
84
89
|
*/
|
|
@@ -399,11 +404,6 @@ class ReactNativeFeatureFlags {
|
|
|
399
404
|
*/
|
|
400
405
|
RN_EXPORT static bool useNativeViewConfigsInBridgelessMode();
|
|
401
406
|
|
|
402
|
-
/**
|
|
403
|
-
* Uses an optimized mechanism for event batching on Android that does not need to wait for a Choreographer frame callback.
|
|
404
|
-
*/
|
|
405
|
-
RN_EXPORT static bool useOptimizedEventBatchingOnAndroid();
|
|
406
|
-
|
|
407
407
|
/**
|
|
408
408
|
* Instead of using folly::dynamic as internal representation in RawProps and RawValue, use jsi::Value
|
|
409
409
|
*/
|