shapeFlags.ts 771 B

12345678910111213141516171819202122
  1. // internally the const enum flags are used to avoid overhead of property
  2. // access
  3. export const enum ShapeFlags {
  4. ELEMENT = 1,
  5. FUNCTIONAL_COMPONENT = 1 << 1,
  6. STATEFUL_COMPONENT = 1 << 2,
  7. TEXT_CHILDREN = 1 << 3,
  8. ARRAY_CHILDREN = 1 << 4,
  9. SLOTS_CHILDREN = 1 << 5,
  10. COMPONENT = ShapeFlags.STATEFUL_COMPONENT | ShapeFlags.FUNCTIONAL_COMPONENT
  11. }
  12. // but the flags are also exported as an actual object for external use
  13. export const PublicShapeFlags = {
  14. ELEMENT: ShapeFlags.ELEMENT,
  15. FUNCTIONAL_COMPONENT: ShapeFlags.FUNCTIONAL_COMPONENT,
  16. STATEFUL_COMPONENT: ShapeFlags.STATEFUL_COMPONENT,
  17. TEXT_CHILDREN: ShapeFlags.TEXT_CHILDREN,
  18. ARRAY_CHILDREN: ShapeFlags.ARRAY_CHILDREN,
  19. SLOTS_CHILDREN: ShapeFlags.SLOTS_CHILDREN,
  20. COMPONENT: ShapeFlags.COMPONENT
  21. }