10.2.1.2 Object Environment Records

2010-05-06

An object Environment Record has an associated "binding object". Whenever this record type binds an Identifier, it creates a new property on the binding object with the same name. This only concerns IdentifierNames, anything else does not bind for this record type. The [[Enumerable]] attribute is ignored when talking about the set of bound Identifiers. The [[Writable]] attribute for all properties of the binding object is ignored as well by the methods of this record. That means that all bindings are mutable, there are no immutable bindings for Object Environment Records.

Object Environment Records can provide a specific this value when a method of the binding object is invoked. By default this is not the case. The flag that determines it is called provideThis. In my examples, this flag holds the specified this object, or undefined otherwise.