When possible, it is probably better to try to support a new requirement by extending some existing characteristic of the object model rather than by adding something that is totally new and unrelated to anything in the current object model. Such extensions are more likely to be understood by programmers and to most easily fit into existing implementation designs. For example, ECMAScript 5 added the concept of accessor (getter/setter) properties to the object model. It did this by extending what can constitute the “value” part of a property. Similarly, the Private Names proposal for ECMAScript Harmony extends what can constitute the “key” part of a property. Both proposal are similar in that they building upon preexisting object property characteristics. They don’t add major new concepts to the object model that are not directly related to properties.