From 8d07e2b2397e596692c0e9d5ad9c075b765241da Mon Sep 17 00:00:00 2001 From: Ruben Ayrapetyan Date: Wed, 16 Jul 2014 21:19:44 +0400 Subject: [PATCH] Introducing ecma_Property{Writable,Enumerable,Configurable}Value_t enum value types for properties' attributes. --- src/libecmaobjects/ecma-globals.h | 37 ++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/src/libecmaobjects/ecma-globals.h b/src/libecmaobjects/ecma-globals.h index b8a302fb8..3760b299f 100644 --- a/src/libecmaobjects/ecma-globals.h +++ b/src/libecmaobjects/ecma-globals.h @@ -153,6 +153,33 @@ typedef enum { ECMA_INTERNAL_PROPERTY_STRING_INDEXED_ARRAY_VALUES } ecma_InternalPropertyId_t; +/** + * Property's 'Writable' attribute's values description. + */ +typedef enum +{ + ECMA_PROPERTY_WRITABLE, /**< property's 'Writable' attribute is true */ + ECMA_PROPERTY_NOT_WRITABLE /**< property's 'Writable' attribute is false */ +} ecma_PropertyWritableValue_t; + +/** + * Property's 'Enumerable' attribute's values description. + */ +typedef enum +{ + ECMA_PROPERTY_ENUMERABLE, /**< property's 'Enumerable' attribute is true */ + ECMA_PROPERTY_NOT_ENUMERABLE /**< property's 'Enumerable' attribute is false */ +} ecma_PropertyEnumerableValue_t; + +/** + * Property's 'Configurable' attribute's values description. + */ +typedef enum +{ + ECMA_PROPERTY_CONFIGURABLE, /**< property's 'Configurable' attribute is true */ + ECMA_PROPERTY_NOT_CONFIGURABLE /**< property's 'Configurable' attribute is false */ +} ecma_PropertyConfigurableValue_t; + /** * Description of ecma-property. */ @@ -171,13 +198,13 @@ typedef struct ecma_Property_t { /** Compressed pointer to property's name (pointer to String) */ unsigned int m_pName : ECMA_POINTER_FIELD_WIDTH; - /** Attribute 'Writable' */ + /** Attribute 'Writable' (ecma_PropertyWritableValue_t) */ unsigned int m_Writable : 1; - /** Attribute 'Enumerable' */ + /** Attribute 'Enumerable' (ecma_PropertyEnumerableValue_t) */ unsigned int m_Enumerable : 1; - /** Attribute 'Configurable' */ + /** Attribute 'Configurable' (ecma_PropertyConfigurableValue_t) */ unsigned int m_Configurable : 1; /** Value */ @@ -189,10 +216,10 @@ typedef struct ecma_Property_t { /** Compressed pointer to property's name (pointer to String) */ unsigned int m_pName : ECMA_POINTER_FIELD_WIDTH; - /** Attribute 'Enumerable' */ + /** Attribute 'Enumerable' (ecma_PropertyEnumerableValue_t) */ unsigned int m_Enumerable : 1; - /** Attribute 'Configurable' */ + /** Attribute 'Configurable' (ecma_PropertyConfigurableValue_t) */ unsigned int m_Configurable : 1; /** Compressed pointer to property's getter */