aboutsummaryrefslogtreecommitdiff
path: root/jerry-core/ecma/base/ecma-globals.h
diff options
context:
space:
mode:
authorZoltan Herczeg <zherczeg.u-szeged@partner.samsung.com>2021-09-13 15:32:14 +0200
committerGitHub <noreply@github.com>2021-09-13 15:32:14 +0200
commit723b26392d949d2f1fcf204dbac7914dadc8e7ed (patch)
tree8b41e4facd8cddd71881c36f0ec521571f8ef4a9 /jerry-core/ecma/base/ecma-globals.h
parent2c2539c6b88fc487e03e7e458732b1b9f9030f60 (diff)
Fix property enumeration order of built-in properties (#4761)
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
Diffstat (limited to 'jerry-core/ecma/base/ecma-globals.h')
-rw-r--r--jerry-core/ecma/base/ecma-globals.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/jerry-core/ecma/base/ecma-globals.h b/jerry-core/ecma/base/ecma-globals.h
index 72247db1..22ebd327 100644
--- a/jerry-core/ecma/base/ecma-globals.h
+++ b/jerry-core/ecma/base/ecma-globals.h
@@ -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
@@ -428,12 +429,48 @@ typedef enum
(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.
*/
#define ECMA_PROPERTY_FIXED 0