Mark Set
A mark set is used in three phases:
Marking root types and root members. These are the identifiers specifically identified by the user in the includes set. In this phase it is an error to mark a type that is excluded, or to mark both a type and one of its members.
Marking members transitively reachable by those roots. In this phase if a member is visited, the member's enclosing type is marked instead, unless it is of a type that has a specific member already marked.
Retaining which members and types have been marked.
Properties
Functions
Marks a member as transitively reachable by the includes set. Returns true if the mark is new, the member will be retained, and reachable objects should be traversed.
Marks a type as transitively reachable by the includes set. Returns true if the mark is new, the type will be retained, and reachable objects should be traversed.
Marks protoMember
, throwing if it is explicitly excluded. This implicitly excludes other members of the same type.
Marks type
, throwing if it is explicitly excluded.