internal PropertyDescriptor AddOwnProperty(DObject obj, string field, int fieldId, PropertyDescriptor.Attributes attributes) { PropertyMap newMap = AddOwnProperty(field, fieldId, attributes); obj.Map = newMap; var mapMetadata = Metadata.GetMapMetadataOfPrototype(obj, false); if (mapMetadata != null) { mapMetadata.PropagateAdditionDownPrototypeChain(obj, newMap.Property); //obj is some other objects' prototype } return(newMap.Property); }