Commit Graph
30 Commits
Author SHA1 Message Date
Jakub Piasecki f90612171b Handle constexpr functions (#55801)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/55801

Changelog: [Internal]

Handle `constexpr` functions in the C++ API snapshot

Reviewed By: javache

Differential Revision: D94658128

fbshipit-source-id: 9e380de951e46dff72ba40c8726e46c01340a9a8
2026-02-27 06:45:35 -08:00
Jakub Piasecki 481134aafe Unify doxygen text parsing (#55696)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/55696

Changelog: [Internal]

Unifies different methods of parsing doxygen text outputs into a single method, able to resolve nested references.

Reviewed By: cipolleschi

Differential Revision: D94077808

fbshipit-source-id: 494ee4da7380e17a60bbdae8e552f1c3827c1130
2026-02-25 11:16:36 -08:00
Jakub Piasecki 6ea92367e7 Handle brace initializers (#55650)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/55650

Changelog: [Internal]

Updates the C++ snapshot generation script to correctly handle brace-initialized values. It also adds `STORE_INITIALIZERS_IN_SNAPSHOT` which can be used to enable/disable presence of initializers in the API snapshot.

Reviewed By: cortinico

Differential Revision: D93845131

fbshipit-source-id: 06872e705305ced0c46779f4a97c674f26417ff5
2026-02-25 11:16:36 -08:00
Jakub Piasecki de87d9989f Fix repo root resolution (#55648)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/55648

Changelog: [Internal]

Updates the repository root resolution of the C++ api generation script.

Reviewed By: cortinico

Differential Revision: D93857297

fbshipit-source-id: 4c40ec2178807ddc5cae724c4233e2d029541031
2026-02-25 11:16:36 -08:00
Jakub Piasecki 03c1399163 Update sorting and grouping behavior (#55647)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/55647

Changelog: [Internal]

Updates sorting and grouping behavior of C++ API snapshot.

Reviewed By: cipolleschi

Differential Revision: D93407634

fbshipit-source-id: 255deb4cec9a1b357cdfc53b804fc59a994eafe1
2026-02-25 11:16:36 -08:00
Jakub Piasecki 5e4da8410e Fix handling of unnamed template arguments (#55646)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/55646

Changelog: [Internal]

Updates the C++ API snapshot generator script to correctly handle unnamed template arguments.

Reviewed By: cipolleschi

Differential Revision: D93407624

fbshipit-source-id: 50928b596fe64fa3549cde5d69da7146b452d784
2026-02-25 11:16:36 -08:00
Jakub Piasecki 269a2ee0cb Fix indexed access in function arguments (#55645)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/55645

Changelog: [Internal]

Updates the C++ api snapshot generator to correctly handle arrays of fixed size.

Reviewed By: cipolleschi

Differential Revision: D93407605

fbshipit-source-id: b64d30db04696ea54109258d7d4c4fbf43a4cc69
2026-02-25 11:16:36 -08:00
Jakub Piasecki bf4978ef58 Fix trailing return type in virtual functions (#55644)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/55644

Changelog: [Internal]

Updates the C++ api snapshot generator to correctly handle trailing return types for pure virtual functions.

Reviewed By: cipolleschi

Differential Revision: D93407597

fbshipit-source-id: c0bd00752fa69eea6c75933adba7a5782a74e90d
2026-02-25 11:16:36 -08:00
Jakub Piasecki f013533487 Qualify type arguments based on scope context (#55697)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/55697

Changelog: [Internal]

Implements fallback name qualification for cases where doxygen doesn't extract the full qualified name, and instead passes on the string it found in the header file.

- Adds type_qualification.py with qualify_type_str(), qualify_arguments(), and qualify_parsed_type()
- Updates member.py with close() methods for VariableMember, FunctionMember, and TypedefMember to apply type qualification
- Updates main.py with get_doxygen_params() to extract structured parameter info

Reviewed By: cipolleschi

Differential Revision: D94077825

fbshipit-source-id: 2265f5573164af1af129014082fc44fb8fceb135
2026-02-25 11:16:36 -08:00
Jakub Piasecki 357dd6b3ec Reorganize utils and add generalize type string parsing (#55698)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/55698

Changelog: [Internal]

Refactors utils.py into a proper package structure and adds comprehensive argument string parsing utilities.

- Converts utils.py to utils/ package with submodules
- Adds argument_parsing.py with parse_arg_string() and related utilities
- Adds qualified_path.py with parse_qualified_path moved from old utils.py
- Renames test_member.py to test_parse_arg_string.py with updated tests for the new 4-tuple Argument format

Reviewed By: cipolleschi

Differential Revision: D94077819

fbshipit-source-id: 460d7a44e6d3e55580d996877ca63fa0c777bc23
2026-02-25 11:16:36 -08:00
Jakub Piasecki e0b90549e7 Integrate codegen into the api snapshot and allow configuration (#55642)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/55642

Changelog: [Internal]

Adds a configuration file for the snapshot generation, allowing to create multiple views of the API and different flavors.

It also adds option to include codegen in the snapshot generation. Codegen needs to be executed first, and the path to its output needs to be passed when running the generation.

Reviewed By: cipolleschi

Differential Revision: D92958731

fbshipit-source-id: 42780d25b2bc04f213e697cca0b6bde07d94ca59
2026-02-25 01:12:30 -08:00
Jakub Piasecki f9db851a8d Handle concepts in the C++ API snapshot (#55695)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/55695

Changelog: [Internal]

Adds support for handling concepts in the C++ API parser.

Reviewed By: NickGerleman

Differential Revision: D94074054

fbshipit-source-id: 5e8ef0b0d4d1eeb93554558bb7f80cd67d622a72
2026-02-25 01:12:30 -08:00
Jakub Piasecki e4ded3b9c0 Handle templates in the C++ API snapshot (#55693)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/55693

Changelog: [Internal]

Adds support for handling template params in the C++ API parser.

Reviewed By: cipolleschi

Differential Revision: D94074045

fbshipit-source-id: b758a8ceb7f95e8a1acf0983afa0c65aeec6b756
2026-02-25 01:12:30 -08:00
Jakub Piasecki 2246457065 Handle type aliases in C++ API snapshot (#55694)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/55694

Changelog: [Internal]

Adds support for handling type aliases in the c++ API snapshot

Reviewed By: cipolleschi

Differential Revision: D94074032

fbshipit-source-id: 8af8bc88e884f4b1b7f7394d1316776cc9d50d6b
2026-02-25 01:12:30 -08:00
Jakub Piasecki efc15289be Handle functions in C++ API snapshot (#55692)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/55692

Changelog: [Internal]

Adds support for handling functions and methods in the C++ API parser

Reviewed By: cipolleschi

Differential Revision: D94073981

fbshipit-source-id: 1c22a8cd4584868a220974335b321d523e6a3dc2
2026-02-25 01:12:30 -08:00
Jakub Piasecki e69c08bf04 Handle enums in C++ API snapshot (#55691)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/55691

Changelog: [Internal]

Adds support for handling enums in the C++ API parser.

Reviewed By: cipolleschi

Differential Revision: D94073960

fbshipit-source-id: 2c726f5ac5c33c66950463760e2592064d812400
2026-02-25 01:12:30 -08:00
Jakub Piasecki 25e402587a Add basic test cases and parser implementation (#55641)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/55641

Changelog: [Internal]

Adds basic implementation of C++ API snapshot generation and snapshot tests covering the functionality.

Reviewed By: cipolleschi

Differential Revision: D90987176

fbshipit-source-id: 4243b054f98af49d49e8ce174999b44196ed3444
2026-02-25 01:12:30 -08:00
Jakub Piasecki a65d8848f2 Add basic doxygen wrapper and setup tests (#55640)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/55640

Changelog: [Internal]

Adds a simple script going over the doxygen output and a test harness for snapshot testing.

Reviewed By: cipolleschi

Differential Revision: D90959837

fbshipit-source-id: fde0c1116b7c0fc10e43484e2b57ead79af706b8
2026-02-25 01:12:30 -08:00
Jakub Piasecki d1fb556968 Remove scripts/cxx-api (#55162)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/55162

Changelog: [Internal]

Removes `scripts/cxx-api`, containing the legacy C++ API tracking code.

Reviewed By: cortinico

Differential Revision: D90675176

fbshipit-source-id: ed920f3e19a302f8451bcc0c2a827c99570d6cb8
2026-01-15 00:33:52 -08:00
Phil Pluckthun 41eace0093 Replace glob@^7.0.0 with tinyglobby@^0.2.15 (#54737)
Summary:
This replaces `glob@^7.0.0` with `tinyglobby@^0.2.15`. `glob@7` has been deprecated for a while and some versions after had security notices released for them. The plan is to backport this PR to `0.81.x` and onwards.

> [!NOTE]
> This is a stopgap solution until `fs.glob` becomes generally available with the EOL of Node v20

Succeeds:
- https://github.com/facebook/react-native/issues/54669
- https://github.com/facebook/react-native/issues/48875

## Changelog:

[GENERAL] [SECURITY] - Replace `glob@^7.0.0` with `tinyglobby@^0.2.15`

Pull Request resolved: https://github.com/facebook/react-native/pull/54737

Test Plan:
- Ran all modified commands manually and `pod install in `rn-tester`
- NOTE: `ios-prebuild`-related scripts haven't been run manually yet

Reviewed By: robhogan

Differential Revision: D88069145

Pulled By: huntie

fbshipit-source-id: 0c455342a4c6d1d6605fd09fe47b418e5d751491
2025-12-03 05:45:48 -08:00
Nicola Corti dba18bbc50 Remove unnecessary ReactCxxErrorHandler (#54704)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/54704

This class is coming from Legacy Architecture and is no longer used so can be cleaned up.

Changelog:
[Internal] [Changed] -

Reviewed By: mdvacca

Differential Revision: D87925037

fbshipit-source-id: 30faffef0da2b7055a6d381b41dc72bead2dd8de
2025-11-27 11:17:22 -08:00
Pieter De Baets a540b903f9 Remove RCTTurboModuleSyncVoidMethodsEnabled feature flag and related code (#54684)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/54684

This diff removes the `RCTTurboModuleSyncVoidMethodsEnabled` feature flag and all related code that allowed TurboModule void methods to execute synchronously.

Changelog: [Internal]

Reviewed By: philIip

Differential Revision: D87865883

fbshipit-source-id: fa64e8105e8329a0b20bb1718dbc01b17464cd06
2025-11-26 06:06:01 -08:00
Christoph Purrer 2d6a3236ed Remove TurboCxxModule (#54544)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/54544

Changelog: [General][Breaking] Remove TurboCxxModule

Reviewed By: shwanton

Differential Revision: D87082461

fbshipit-source-id: 15c71b88272fa591e69e803dfec14176585a2d6f
2025-11-15 05:57:02 -08:00
Christoph Purrer c05f39ec3e Remove duplicated to_underlying helper method (#53494)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53494

Changelog: [Internal]

Reviewed By: lenaic

Differential Revision: D81203760

fbshipit-source-id: 185d6b3a6cd06d58c770dd04c68cc707a7621f08
2025-08-28 09:48:57 -07:00
Rubén Norte 7c1c833ee9 Remove redundant methods to mock timers from PerformanceEntryReporter and NativePerformance (#53028)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/53028

Changelog: [internal]

Now that we have mocking at a more fundamental level (`HighResTimeStamp` API) we can replace other timing mocks with that one.

This does it for `PerformanceEntryReporter` and the `NativePerformance` module.

Reviewed By: hoxyq

Differential Revision: D79557640

fbshipit-source-id: 86579b8bb586190ab7cc8721f30e60b3ef789798
2025-08-04 11:21:03 -07:00
Christoph Purrer 0f25a354ba Simply use a std::shared_ptr in TestCallInvoker (#52771)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/52771

Changelog: [Internal]

It seems we can simply use a std::shared_ptr here

(This was some initial over-engineering which isn't needed as it turns out)

Reviewed By: cipolleschi

Differential Revision: D78771904

fbshipit-source-id: 2925c424d2061ca727636c683ec783ed56e3f0c9
2025-07-23 08:52:41 -07:00
Christoph Purrer 7b5307d181 Replace ContextContainer::Shared with std::shared_ptr<const ContextContainer> 2/2 (#52750)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/52750

Changelog: [Internal]

Reviewed By: rshest

Differential Revision: D78704833

fbshipit-source-id: 4df0029f6de860c93864e12c479e387f3981f7b5
2025-07-22 12:40:27 -07:00
Christoph Purrer ae4ce02752 Replace SharedImageManager with std::shared_ptr<ImageManager> (#52747)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/52747

Changelog: [Internal]

Reviewed By: rshest

Differential Revision: D78698231

fbshipit-source-id: 5da5c57237d1cc16dc3d120c7b58c44da6914d36
2025-07-22 09:36:32 -07:00
Ramanpreet Nara 42ea4bc594 feature-flags: Prefix "eager" to "main queue modules" flag (#52543)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/52543

Prefixing "eager" to the name makes it less confusing.  React native already has main queue modules: they're just lazy.

Changelog: [Internal]

Reviewed By: lunaleaps

Differential Revision: D78109287

fbshipit-source-id: 5fa6095d2dd8fcf74fdda64e05483eb487bc8f56
2025-07-11 22:47:07 -07:00
Alex Hunt 5fe782a800 Move cxx-api scripts under scripts/, add README (#52467)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/52467

Moves the WIP `cxx-public-api` project under `scripts/cxx-api/`, add minimal README docs.

Changelog: [Internal]

Reviewed By: christophpurrer

Differential Revision: D77865490

fbshipit-source-id: ce49845386c468ee7422b864c49f2a8c9eed5a70
2025-07-07 15:04:37 -07:00