|
|
|
3. If V is not a , throw a ReferenceError exception. 4. If ( V ) is true , then a. If V .[[Strict]] is true , throw a ReferenceError exception. b. Let globalObj c. Return ? ( globalObj , V .[[ReferencedName]], W , false ). 5. If ( V ) is true , then a. Let baseObj V .[[Base]]). b. Let succeeded be ? baseObj .[[Set]]( V .[[ReferencedName]], W , ( V )). c. If succeeded is false and V .[[Strict]] is true , throw a TypeError exception. d. Return. 6. Else, a. Let base be V .[[Base]]. b. : base is an . c. Return ? base .SetMutableBinding( V .[[ReferencedName]], W , V NOTE The abstract operation GetThisValue takes argument V . It performs the following steps when called: 1. : V ) is true . 2. If ( V ) is true , return V .[[ThisValue]]; otherwise return V .[[Base]]. The abstract operation InitializeReferencedBinding takes arguments V and W . It performs the following steps when called: 1. V ). 2. W ). 3. : V is a 4. : V ) is false . 5. Let base be V .[[Base]]. 6. : base is an . 7. Return base .InitializeBinding( V .[[ReferencedName]], W ). The Property Descriptor type is used to explain the manipulation and reification of Object property attributes. Values of the Property Descriptor type are Records. Each field's name is an attribute name and its value is a corresponding . In addition, any field may be present or absent. The schema name used within this specification to tag literal descriptions of Property Descriptor records is “PropertyDescriptor”. Property Descriptor values may be further classified as data Property Descriptors and accessor Property Descriptors The object that may be created in step is not accessible outside of the above abstract operation and the [[Set]] internal method. An implementation might choose to avoid the actual creation of that object. 6.2.4.6 GetThisValue ( V ) 6.2.4.7 InitializeReferencedBinding ( V , W ) 6.2.5 The Property Descriptor Specification Type 106 |