Always create Frame objects with the same set of properties

This avoids some bailouts.
I dunno that the indirection is expensive, but that's ok, we can optimize further as needed.