diff --git a/ReactCommon/react/renderer/core/ShadowNode.h b/ReactCommon/react/renderer/core/ShadowNode.h index 0735cbaa9ac..1ef71355f06 100644 --- a/ReactCommon/react/renderer/core/ShadowNode.h +++ b/ReactCommon/react/renderer/core/ShadowNode.h @@ -240,5 +240,9 @@ ShadowNodeReferenceT traitCast(ShadowNode const &shadowNode); template ShadowNodePointerT traitCast(ShadowNode const *shadowNode); +template +std::shared_ptr traitCast( + std::shared_ptr shadowNode); + } // namespace react } // namespace facebook diff --git a/ReactCommon/react/renderer/core/ShadowNodeTraits.h b/ReactCommon/react/renderer/core/ShadowNodeTraits.h index 5e55394454e..7c02f4bea94 100644 --- a/ReactCommon/react/renderer/core/ShadowNodeTraits.h +++ b/ReactCommon/react/renderer/core/ShadowNodeTraits.h @@ -21,7 +21,7 @@ class ShadowNodeTraits { public: /* * Underlying type for the traits. - * The first 18 bits are reserved for Core. + * The first 23 bits are reserved for Core. */ enum Trait : int32_t { None = 0, @@ -88,6 +88,16 @@ class ShadowNodeTraits { // Inherits 'TextShadowNode' Text = 1 << 17, + + // Reserved + ReservedTrait1 = 1 << 18, + ReservedTrait2 = 1 << 19, + ReservedTrait3 = 1 << 20, + ReservedTrait4 = 1 << 21, + ReservedTrait5 = 1 << 22, + + // Unserved - alias these for local usage + UnreservedTrait1 = 1 << 23 }; /*