Fix property enumeration order of built-in properties (#4761)

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
This commit is contained in:
Zoltan Herczeg
2021-09-13 15:32:14 +02:00
committed by GitHub
parent 2c2539c6b8
commit 723b26392d
13 changed files with 409 additions and 160 deletions
+37
View File
@@ -400,6 +400,7 @@ typedef enum
ECMA_PROPERTY_FLAG_WRITABLE = (1u << 2), /**< property is writable */
ECMA_PROPERTY_FLAG_SINGLE_EXTERNAL = (1u << 2), /**< only one external pointer is assigned to this object */
ECMA_PROPERTY_FLAG_DELETED = (1u << 3), /**< property is deleted */
ECMA_PROPERTY_FLAG_BUILT_IN = (1u << 3), /**< property is defined by the ECMAScript standard */
ECMA_FAST_ARRAY_FLAG = (1u << 3), /**< array is fast array */
ECMA_PROPERTY_FLAG_LCACHED = (1u << 4), /**< property is lcached */
#if JERRY_ESNEXT
@@ -427,12 +428,48 @@ typedef enum
#define ECMA_PROPERTY_CONFIGURABLE_WRITABLE \
(ECMA_PROPERTY_FLAG_CONFIGURABLE | ECMA_PROPERTY_FLAG_WRITABLE)
/**
* Property flag built-in.
*/
#define ECMA_PROPERTY_BUILT_IN_FIXED \
(ECMA_PROPERTY_FLAG_BUILT_IN)
/**
* Property flags enumerable, writable.
*/
#define ECMA_PROPERTY_ENUMERABLE_WRITABLE \
(ECMA_PROPERTY_FLAG_ENUMERABLE | ECMA_PROPERTY_FLAG_WRITABLE)
/**
* Property flags built-in, configurable.
*/
#define ECMA_PROPERTY_BUILT_IN_CONFIGURABLE \
(ECMA_PROPERTY_FLAG_BUILT_IN | ECMA_PROPERTY_FLAG_CONFIGURABLE)
/**
* Property flags built-in, configurable, enumerable.
*/
#define ECMA_PROPERTY_BUILT_IN_CONFIGURABLE_ENUMERABLE \
(ECMA_PROPERTY_FLAG_BUILT_IN | ECMA_PROPERTY_CONFIGURABLE_ENUMERABLE)
/**
* Property flags built-in, configurable, writable.
*/
#define ECMA_PROPERTY_BUILT_IN_CONFIGURABLE_WRITABLE \
(ECMA_PROPERTY_FLAG_BUILT_IN | ECMA_PROPERTY_CONFIGURABLE_WRITABLE)
/**
* Property flags built-in, writable.
*/
#define ECMA_PROPERTY_BUILT_IN_WRITABLE \
(ECMA_PROPERTY_FLAG_BUILT_IN | ECMA_PROPERTY_FLAG_WRITABLE)
/**
* Property flags built-in, configurable, enumerable, writable.
*/
#define ECMA_PROPERTY_BUILT_IN_CONFIGURABLE_ENUMERABLE_WRITABLE \
(ECMA_PROPERTY_FLAG_BUILT_IN | ECMA_PROPERTY_CONFIGURABLE_ENUMERABLE_WRITABLE)
/**
* No attributes can be changed for this property.
*/