Gets an abstract value that represents a prototype object of this value.
We currently model three sources of prototypes:
direct assignments to
for an instance
oof a function
f, any value that can be shown to flow into
f.prototypeis considered a prototype object of
for an instance of a class
C, any instance of a function or class that can be shown to flow into the
Cis considered a prototype object of
In all cases, purely local flow tracking is used to find prototype objects, so this predicate cannot be relied on to compute all possible prototype objects.