Properties from previously declared case classes are included in new case classes, though the propertyNames array only has the correct property names. I believe this is because initial key assignment is happening to to the prototype.
See around line 25.