Always create Frame objects with the same set of properties

This avoids some bailouts.
I've left them because they eliminate one level of indirection in functions that are called pretty often (read and getLocal)