Move VanillaDictKeys to m_extra_lo8
Summary:
We'd like to place an array's size class in a consistent place: the upper byte of m_aux16. Doing so lets us de-virtualize the array's "heapSize" and "releaseShallow" operations.
Right now, VanillaDict uses this byte for the VanillaDictKeys bitset. We can move this bitset to the ArrayData header's unused m_extra_lo8 field instead. While we're at it, we can stop converting this bitset to and from an int and doing bitwise operations on its raw value, making operations on it more type-safe.
Reviewed By: ricklavoie
Differential Revision:
D33098540
fbshipit-source-id:
fd049fae7229044a34f0dc9bc593c768f74ac548