Skip to content

Commit 4eefcbe

Browse files
Add BigInt bridging support for Turbo Modules
Summary: X-link: #56008 This diff adds native BigInt bridging support to React Native's C++ bridging layer. BigInt is a JavaScript primitive that represents integers with arbitrary precision, enabling safe handling of 64-bit integers that exceed JavaScript's Number.MAX_SAFE_INTEGER (2^53-1). This implementation introduces a `facebook::react::BigInt` C++ wrapper class that internally stores values as `std::variant<int64_t, uint64_t>`, preserving signedness. The wrapper is constructed from `jsi::BigInt` (checking `isInt64()`/`isUint64()` for lossless conversion) and provides `toJSBigInt()` for the reverse direction. A `Bridging<BigInt>` template specialization converts between `jsi::Value` and `facebook::react::BigInt`, enabling seamless use in Turbo Module method signatures. Example usage: ```cpp // In your Turbo Module BigInt getBigInt(jsi::Runtime &rt, BigInt arg) { return arg; // Receives BigInt from JS, returns BigInt to JS } ``` ```javascript // In JavaScript const result = nativeModule.getBigInt(BigInt('9223372036854775807')); ``` ## Hey, wait a moment .... Why are we not simply bridging like this: ``` struct Bridging<int64_t> { ``` or ``` struct Bridging<uint64_t> { ``` ?????? Reason: It is very likely that custom implementations are already present in many RN apps > See: https://reactnative.dev/docs/the-new-architecture/custom-cxx-types ``` template <> struct Bridging<int64_t> { // Converts from the JS representation to the C++ representation static int64_t fromJs(jsi::Runtime &rt, const jsi::String &value) { try { size_t pos; auto str = value.utf8(rt); auto num = std::stoll(str, &pos); if (pos != str.size()) { throw std::invalid_argument("Invalid number"); // don't support alphanumeric strings } return num; } catch (const std::logic_error &e) { throw jsi::JSError(rt, e.what()); } } // Converts from the C++ representation to the JS representation static jsi::String toJs(jsi::Runtime &rt, int64_t value) { return bridging::toJs(rt, std::to_string(value)); } }; ``` Changelog: [General][Added] - Add BigInt bridging support for Turbo Modules Differential Revision: D95706781
1 parent 9052f0b commit 4eefcbe

9 files changed

Lines changed: 259 additions & 12 deletions

File tree

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
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 <react/bridging/Base.h>
11+
12+
#include <cstdint>
13+
#include <variant>
14+
15+
namespace facebook::react {
16+
17+
class BigInt {
18+
public:
19+
BigInt(jsi::Runtime &rt, const jsi::BigInt &bigint)
20+
{
21+
if (bigint.isInt64(rt)) {
22+
value_ = bigint.asInt64(rt);
23+
} else if (bigint.isUint64(rt)) {
24+
value_ = bigint.asUint64(rt);
25+
} else {
26+
throw jsi::JSError(rt, "BigInt value cannot be losslessly represented as int64_t or uint64_t");
27+
}
28+
}
29+
30+
/* implicit */ BigInt(int64_t value) : value_(value) {}
31+
/* implicit */ BigInt(uint64_t value) : value_(value) {}
32+
33+
bool isInt64() const
34+
{
35+
return std::holds_alternative<int64_t>(value_);
36+
}
37+
38+
bool isUint64() const
39+
{
40+
return std::holds_alternative<uint64_t>(value_);
41+
}
42+
43+
int64_t asInt64() const
44+
{
45+
return std::get<int64_t>(value_);
46+
}
47+
48+
uint64_t asUint64() const
49+
{
50+
return std::get<uint64_t>(value_);
51+
}
52+
53+
jsi::BigInt toJSBigInt(jsi::Runtime &rt) const
54+
{
55+
if (isInt64()) {
56+
return jsi::BigInt::fromInt64(rt, asInt64());
57+
} else {
58+
return jsi::BigInt::fromUint64(rt, asUint64());
59+
}
60+
}
61+
62+
bool operator==(const BigInt &other) const = default;
63+
64+
private:
65+
std::variant<int64_t, uint64_t> value_;
66+
};
67+
68+
template <>
69+
struct Bridging<BigInt> {
70+
static BigInt fromJs(jsi::Runtime &rt, const jsi::Value &value)
71+
{
72+
return {rt, value.getBigInt(rt)};
73+
}
74+
75+
static jsi::BigInt toJs(jsi::Runtime &rt, const BigInt &value)
76+
{
77+
return value.toJSBigInt(rt);
78+
}
79+
};
80+
81+
} // namespace facebook::react

packages/react-native/ReactCommon/react/bridging/Bridging.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include <react/bridging/AString.h>
1111
#include <react/bridging/Array.h>
1212
#include <react/bridging/ArrayBuffer.h>
13+
#include <react/bridging/BigInt.h>
1314
#include <react/bridging/Bool.h>
1415
#include <react/bridging/Class.h>
1516
#include <react/bridging/Dynamic.h>

packages/react-native/ReactCommon/react/bridging/tests/BridgingTest.cpp

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@
1010

1111
#include "BridgingTest.h"
1212

13+
#include <cstdint>
14+
#include <limits>
15+
#include <utility>
16+
1317
namespace facebook::react {
1418

1519
using namespace std::literals;
@@ -972,4 +976,87 @@ TEST_F(BridgingTest, highResTimeStampTest) {
972976
1.000001, bridging::toJs(rt, HighResDuration::fromNanoseconds(1e6 + 1)));
973977
}
974978

979+
TEST_F(BridgingTest, bigintTest) {
980+
// Test BigInt construction from int64_t
981+
BigInt fromSigned(static_cast<int64_t>(42));
982+
EXPECT_TRUE(fromSigned.isInt64());
983+
EXPECT_FALSE(fromSigned.isUint64());
984+
EXPECT_EQ(42, fromSigned.asInt64());
985+
986+
// Test BigInt construction from uint64_t
987+
BigInt fromUnsigned(static_cast<uint64_t>(42));
988+
EXPECT_FALSE(fromUnsigned.isInt64());
989+
EXPECT_TRUE(fromUnsigned.isUint64());
990+
EXPECT_EQ(42ULL, fromUnsigned.asUint64());
991+
992+
// Test BigInt construction from jsi::BigInt with signed value
993+
auto jsiBigint = jsi::BigInt::fromInt64(rt, -123456789012345LL);
994+
BigInt fromJsi(rt, jsiBigint);
995+
EXPECT_TRUE(fromJsi.isInt64());
996+
EXPECT_EQ(-123456789012345LL, fromJsi.asInt64());
997+
998+
// Test BigInt construction from jsi::BigInt with large unsigned value
999+
// (doesn't fit in int64_t, so should be stored as uint64_t)
1000+
constexpr uint64_t uint64Max = std::numeric_limits<uint64_t>::max();
1001+
auto jsiUnsigned = jsi::BigInt::fromUint64(rt, uint64Max);
1002+
BigInt fromJsiUnsigned(rt, jsiUnsigned);
1003+
EXPECT_TRUE(fromJsiUnsigned.isUint64());
1004+
EXPECT_EQ(uint64Max, fromJsiUnsigned.asUint64());
1005+
1006+
// Test BigInt construction from jsi::BigInt with small positive value
1007+
// (fits in both int64_t and uint64_t — should prefer int64_t)
1008+
auto jsiSmall = jsi::BigInt::fromInt64(rt, 5);
1009+
BigInt fromJsiSmall(rt, jsiSmall);
1010+
EXPECT_TRUE(fromJsiSmall.isInt64());
1011+
EXPECT_EQ(5, fromJsiSmall.asInt64());
1012+
1013+
// Test toJSBigInt roundtrip for signed value
1014+
BigInt signedVal(static_cast<int64_t>(-42));
1015+
auto jsResult = signedVal.toJSBigInt(rt);
1016+
EXPECT_EQ(-42, jsResult.asInt64(rt));
1017+
1018+
// Test toJSBigInt roundtrip for unsigned value
1019+
BigInt unsignedVal(uint64Max);
1020+
auto jsUnsignedResult = unsignedVal.toJSBigInt(rt);
1021+
EXPECT_EQ(uint64Max, jsUnsignedResult.asUint64(rt));
1022+
1023+
// Test Bridging<BigInt>::fromJs
1024+
constexpr int64_t int64Max = std::numeric_limits<int64_t>::max();
1025+
auto jsBigint = jsi::BigInt::fromInt64(rt, int64Max);
1026+
auto bridged =
1027+
bridging::fromJs<BigInt>(rt, jsi::Value(rt, jsBigint), invoker);
1028+
EXPECT_TRUE(bridged.isInt64());
1029+
EXPECT_EQ(int64Max, bridged.asInt64());
1030+
1031+
// Test Bridging<BigInt>::toJs
1032+
BigInt toConvert(static_cast<int64_t>(123456789012345LL));
1033+
auto jsConverted = bridging::toJs(rt, toConvert);
1034+
EXPECT_EQ(123456789012345LL, jsConverted.asInt64(rt));
1035+
1036+
// Test roundtrip at extreme values via bridging
1037+
constexpr int64_t int64Min = std::numeric_limits<int64_t>::min();
1038+
1039+
auto roundtripMin = bridging::fromJs<BigInt>(
1040+
rt, jsi::Value(rt, bridging::toJs(rt, BigInt(int64Min))), invoker);
1041+
EXPECT_TRUE(roundtripMin.isInt64());
1042+
EXPECT_EQ(int64Min, roundtripMin.asInt64());
1043+
1044+
auto roundtripMax = bridging::fromJs<BigInt>(
1045+
rt, jsi::Value(rt, bridging::toJs(rt, BigInt(int64Max))), invoker);
1046+
EXPECT_TRUE(roundtripMax.isInt64());
1047+
EXPECT_EQ(int64Max, roundtripMax.asInt64());
1048+
1049+
auto roundtripUmax = bridging::fromJs<BigInt>(
1050+
rt, jsi::Value(rt, bridging::toJs(rt, BigInt(uint64Max))), invoker);
1051+
EXPECT_TRUE(roundtripUmax.isUint64());
1052+
EXPECT_EQ(uint64Max, roundtripUmax.asUint64());
1053+
1054+
// Test equality
1055+
EXPECT_EQ(BigInt(static_cast<int64_t>(42)), BigInt(static_cast<int64_t>(42)));
1056+
EXPECT_EQ(BigInt(uint64Max), BigInt(uint64Max));
1057+
// Same numeric value but different variant type are not equal
1058+
EXPECT_NE(
1059+
BigInt(static_cast<int64_t>(42)), BigInt(static_cast<uint64_t>(42)));
1060+
}
1061+
9751062
} // namespace facebook::react

scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1847,6 +1847,18 @@ class facebook::react::BaseViewProps : public facebook::react::YogaStylableProps
18471847
public void setProp(const facebook::react::PropsParserContext& context, facebook::react::RawPropsPropNameHash hash, const char* propName, const facebook::react::RawValue& value);
18481848
}
18491849

1850+
class facebook::react::BigInt {
1851+
public BigInt(facebook::jsi::Runtime& rt, const facebook::jsi::BigInt& bigint);
1852+
public BigInt(int64_t value);
1853+
public BigInt(uint64_t value);
1854+
public bool isInt64() const;
1855+
public bool isUint64() const;
1856+
public bool operator==(const facebook::react::BigInt& other) const = default;
1857+
public facebook::jsi::BigInt toJSBigInt(facebook::jsi::Runtime& rt) const;
1858+
public int64_t asInt64() const;
1859+
public uint64_t asUint64() const;
1860+
}
1861+
18501862
class facebook::react::BigStringBuffer : public facebook::jsi::Buffer {
18511863
public BigStringBuffer(std::unique_ptr<const facebook::react::JSBigString> script);
18521864
public virtual const uint8_t* data() const override;
@@ -9629,8 +9641,9 @@ struct facebook::react::Bridging<facebook::jsi::WeakObject> {
96299641
public static facebook::jsi::WeakObject fromJs(facebook::jsi::Runtime& rt, const facebook::jsi::Object& value);
96309642
}
96319643

9632-
struct facebook::react::Bridging<facebook::react::AsyncArrayBuffer> {
9633-
public static facebook::jsi::Value toJs(facebook::jsi::Runtime& rt, facebook::react::AsyncArrayBuffer buffer);
9644+
struct facebook::react::Bridging<facebook::react::BigInt> {
9645+
public static facebook::jsi::BigInt toJs(facebook::jsi::Runtime& rt, const facebook::react::BigInt& value);
9646+
public static facebook::react::BigInt fromJs(facebook::jsi::Runtime& rt, const facebook::jsi::Value& value);
96349647
}
96359648

96369649
struct facebook::react::Bridging<facebook::react::EndResult> : public facebook::react::NativeAnimatedTurboModuleEndResultBridging<facebook::react::EndResult> {

scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1845,6 +1845,18 @@ class facebook::react::BaseViewProps : public facebook::react::YogaStylableProps
18451845
public void setProp(const facebook::react::PropsParserContext& context, facebook::react::RawPropsPropNameHash hash, const char* propName, const facebook::react::RawValue& value);
18461846
}
18471847

1848+
class facebook::react::BigInt {
1849+
public BigInt(facebook::jsi::Runtime& rt, const facebook::jsi::BigInt& bigint);
1850+
public BigInt(int64_t value);
1851+
public BigInt(uint64_t value);
1852+
public bool isInt64() const;
1853+
public bool isUint64() const;
1854+
public bool operator==(const facebook::react::BigInt& other) const = default;
1855+
public facebook::jsi::BigInt toJSBigInt(facebook::jsi::Runtime& rt) const;
1856+
public int64_t asInt64() const;
1857+
public uint64_t asUint64() const;
1858+
}
1859+
18481860
class facebook::react::BigStringBuffer : public facebook::jsi::Buffer {
18491861
public BigStringBuffer(std::unique_ptr<const facebook::react::JSBigString> script);
18501862
public virtual const uint8_t* data() const override;
@@ -9482,8 +9494,9 @@ struct facebook::react::Bridging<facebook::jsi::WeakObject> {
94829494
public static facebook::jsi::WeakObject fromJs(facebook::jsi::Runtime& rt, const facebook::jsi::Object& value);
94839495
}
94849496

9485-
struct facebook::react::Bridging<facebook::react::AsyncArrayBuffer> {
9486-
public static facebook::jsi::Value toJs(facebook::jsi::Runtime& rt, facebook::react::AsyncArrayBuffer buffer);
9497+
struct facebook::react::Bridging<facebook::react::BigInt> {
9498+
public static facebook::jsi::BigInt toJs(facebook::jsi::Runtime& rt, const facebook::react::BigInt& value);
9499+
public static facebook::react::BigInt fromJs(facebook::jsi::Runtime& rt, const facebook::jsi::Value& value);
94879500
}
94889501

94899502
struct facebook::react::Bridging<facebook::react::EndResult> : public facebook::react::NativeAnimatedTurboModuleEndResultBridging<facebook::react::EndResult> {

scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4434,6 +4434,18 @@ class facebook::react::BaseViewProps : public facebook::react::YogaStylableProps
44344434
public void setProp(const facebook::react::PropsParserContext& context, facebook::react::RawPropsPropNameHash hash, const char* propName, const facebook::react::RawValue& value);
44354435
}
44364436

4437+
class facebook::react::BigInt {
4438+
public BigInt(facebook::jsi::Runtime& rt, const facebook::jsi::BigInt& bigint);
4439+
public BigInt(int64_t value);
4440+
public BigInt(uint64_t value);
4441+
public bool isInt64() const;
4442+
public bool isUint64() const;
4443+
public bool operator==(const facebook::react::BigInt& other) const = default;
4444+
public facebook::jsi::BigInt toJSBigInt(facebook::jsi::Runtime& rt) const;
4445+
public int64_t asInt64() const;
4446+
public uint64_t asUint64() const;
4447+
}
4448+
44374449
class facebook::react::BigStringBuffer : public facebook::jsi::Buffer {
44384450
public BigStringBuffer(std::unique_ptr<const facebook::react::JSBigString> script);
44394451
public virtual const uint8_t* data() const override;
@@ -11532,8 +11544,9 @@ struct facebook::react::Bridging<facebook::jsi::WeakObject> {
1153211544
public static facebook::jsi::WeakObject fromJs(facebook::jsi::Runtime& rt, const facebook::jsi::Object& value);
1153311545
}
1153411546

11535-
struct facebook::react::Bridging<facebook::react::AsyncArrayBuffer> {
11536-
public static facebook::jsi::Value toJs(facebook::jsi::Runtime& rt, facebook::react::AsyncArrayBuffer buffer);
11547+
struct facebook::react::Bridging<facebook::react::BigInt> {
11548+
public static facebook::jsi::BigInt toJs(facebook::jsi::Runtime& rt, const facebook::react::BigInt& value);
11549+
public static facebook::react::BigInt fromJs(facebook::jsi::Runtime& rt, const facebook::jsi::Value& value);
1153711550
}
1153811551

1153911552
struct facebook::react::Bridging<facebook::react::EndResult> : public facebook::react::NativeAnimatedTurboModuleEndResultBridging<facebook::react::EndResult> {

scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4432,6 +4432,18 @@ class facebook::react::BaseViewProps : public facebook::react::YogaStylableProps
44324432
public void setProp(const facebook::react::PropsParserContext& context, facebook::react::RawPropsPropNameHash hash, const char* propName, const facebook::react::RawValue& value);
44334433
}
44344434

4435+
class facebook::react::BigInt {
4436+
public BigInt(facebook::jsi::Runtime& rt, const facebook::jsi::BigInt& bigint);
4437+
public BigInt(int64_t value);
4438+
public BigInt(uint64_t value);
4439+
public bool isInt64() const;
4440+
public bool isUint64() const;
4441+
public bool operator==(const facebook::react::BigInt& other) const = default;
4442+
public facebook::jsi::BigInt toJSBigInt(facebook::jsi::Runtime& rt) const;
4443+
public int64_t asInt64() const;
4444+
public uint64_t asUint64() const;
4445+
}
4446+
44354447
class facebook::react::BigStringBuffer : public facebook::jsi::Buffer {
44364448
public BigStringBuffer(std::unique_ptr<const facebook::react::JSBigString> script);
44374449
public virtual const uint8_t* data() const override;
@@ -11395,8 +11407,9 @@ struct facebook::react::Bridging<facebook::jsi::WeakObject> {
1139511407
public static facebook::jsi::WeakObject fromJs(facebook::jsi::Runtime& rt, const facebook::jsi::Object& value);
1139611408
}
1139711409

11398-
struct facebook::react::Bridging<facebook::react::AsyncArrayBuffer> {
11399-
public static facebook::jsi::Value toJs(facebook::jsi::Runtime& rt, facebook::react::AsyncArrayBuffer buffer);
11410+
struct facebook::react::Bridging<facebook::react::BigInt> {
11411+
public static facebook::jsi::BigInt toJs(facebook::jsi::Runtime& rt, const facebook::react::BigInt& value);
11412+
public static facebook::react::BigInt fromJs(facebook::jsi::Runtime& rt, const facebook::jsi::Value& value);
1140011413
}
1140111414

1140211415
struct facebook::react::Bridging<facebook::react::EndResult> : public facebook::react::NativeAnimatedTurboModuleEndResultBridging<facebook::react::EndResult> {

scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1171,6 +1171,18 @@ class facebook::react::BaseViewProps : public facebook::react::YogaStylableProps
11711171
public void setProp(const facebook::react::PropsParserContext& context, facebook::react::RawPropsPropNameHash hash, const char* propName, const facebook::react::RawValue& value);
11721172
}
11731173

1174+
class facebook::react::BigInt {
1175+
public BigInt(facebook::jsi::Runtime& rt, const facebook::jsi::BigInt& bigint);
1176+
public BigInt(int64_t value);
1177+
public BigInt(uint64_t value);
1178+
public bool isInt64() const;
1179+
public bool isUint64() const;
1180+
public bool operator==(const facebook::react::BigInt& other) const = default;
1181+
public facebook::jsi::BigInt toJSBigInt(facebook::jsi::Runtime& rt) const;
1182+
public int64_t asInt64() const;
1183+
public uint64_t asUint64() const;
1184+
}
1185+
11741186
class facebook::react::BigStringBuffer : public facebook::jsi::Buffer {
11751187
public BigStringBuffer(std::unique_ptr<const facebook::react::JSBigString> script);
11761188
public virtual const uint8_t* data() const override;
@@ -6699,8 +6711,9 @@ struct facebook::react::Bridging<facebook::jsi::WeakObject> {
66996711
public static facebook::jsi::WeakObject fromJs(facebook::jsi::Runtime& rt, const facebook::jsi::Object& value);
67006712
}
67016713

6702-
struct facebook::react::Bridging<facebook::react::AsyncArrayBuffer> {
6703-
public static facebook::jsi::Value toJs(facebook::jsi::Runtime& rt, facebook::react::AsyncArrayBuffer buffer);
6714+
struct facebook::react::Bridging<facebook::react::BigInt> {
6715+
public static facebook::jsi::BigInt toJs(facebook::jsi::Runtime& rt, const facebook::react::BigInt& value);
6716+
public static facebook::react::BigInt fromJs(facebook::jsi::Runtime& rt, const facebook::jsi::Value& value);
67046717
}
67056718

67066719
struct facebook::react::Bridging<facebook::react::EndResult> : public NativeAnimatedTurboModuleEndResultBridging<facebook::react::EndResult> {

scripts/cxx-api/api-snapshots/ReactCommonReleaseCxx.api

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1169,6 +1169,18 @@ class facebook::react::BaseViewProps : public facebook::react::YogaStylableProps
11691169
public void setProp(const facebook::react::PropsParserContext& context, facebook::react::RawPropsPropNameHash hash, const char* propName, const facebook::react::RawValue& value);
11701170
}
11711171

1172+
class facebook::react::BigInt {
1173+
public BigInt(facebook::jsi::Runtime& rt, const facebook::jsi::BigInt& bigint);
1174+
public BigInt(int64_t value);
1175+
public BigInt(uint64_t value);
1176+
public bool isInt64() const;
1177+
public bool isUint64() const;
1178+
public bool operator==(const facebook::react::BigInt& other) const = default;
1179+
public facebook::jsi::BigInt toJSBigInt(facebook::jsi::Runtime& rt) const;
1180+
public int64_t asInt64() const;
1181+
public uint64_t asUint64() const;
1182+
}
1183+
11721184
class facebook::react::BigStringBuffer : public facebook::jsi::Buffer {
11731185
public BigStringBuffer(std::unique_ptr<const facebook::react::JSBigString> script);
11741186
public virtual const uint8_t* data() const override;
@@ -6690,8 +6702,9 @@ struct facebook::react::Bridging<facebook::jsi::WeakObject> {
66906702
public static facebook::jsi::WeakObject fromJs(facebook::jsi::Runtime& rt, const facebook::jsi::Object& value);
66916703
}
66926704

6693-
struct facebook::react::Bridging<facebook::react::AsyncArrayBuffer> {
6694-
public static facebook::jsi::Value toJs(facebook::jsi::Runtime& rt, facebook::react::AsyncArrayBuffer buffer);
6705+
struct facebook::react::Bridging<facebook::react::BigInt> {
6706+
public static facebook::jsi::BigInt toJs(facebook::jsi::Runtime& rt, const facebook::react::BigInt& value);
6707+
public static facebook::react::BigInt fromJs(facebook::jsi::Runtime& rt, const facebook::jsi::Value& value);
66956708
}
66966709

66976710
struct facebook::react::Bridging<facebook::react::EndResult> : public NativeAnimatedTurboModuleEndResultBridging<facebook::react::EndResult> {

0 commit comments

Comments
 (0)