Files
react-native/ReactCommon/react/renderer/core/CoreFeatures.h
T
Pieter De Baets 3a06cca9dc Add feature flag to use JSI NativeState instead of HostObject (#36395)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/36395

NativeState is a lighter-weight alternative to HostObject, which may simplify some of our use-cases of interacting with JS in the renderer. The down-side is that this approach doesn't allow exposing custom props or functions.

This diffs adds new feature flags to enable experimenting with this functionality and measure any perf impact.

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D41553421

fbshipit-source-id: 3065bd7b60f0fa7b63c390e92a785582eee7e613
2023-03-07 08:11:02 -08:00

41 lines
1.2 KiB
C++

/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
#pragma once
namespace facebook {
namespace react {
/*
* Contains the set of feature flags for the renderer core.
* Some of them are temporary and may be eventualy phased out
* as soon as the feature is fully implemented.
*/
class CoreFeatures {
public:
// Specifies whether the iterator-style prop parsing is enabled.
static bool enablePropIteratorSetter;
// This is used as a feature flag for *all* PropsX structs.
// For MapBuffer to be used for a particular component instance,
// its ShadowNode traits must set the MapBuffer trait; and this
// must be set to "true" globally.
static bool enableMapBuffer;
// When enabled, Fabric will block paint to allow for state updates in
// useLayoutEffect hooks to be processed. This changes affects scheduling of
// when a transaction is mounted.
static bool blockPaintForUseLayoutEffect;
// Whether to use Hermes' NativeState instead of HostObject
// in simple data passing scenarios with JS
static bool useNativeState;
};
} // namespace react
} // namespace facebook