Implement the Map/Set iterator operations (#2882)

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik frobert@inf.u-szeged.hu
This commit is contained in:
Robert Fancsik
2019-06-24 11:18:37 +02:00
committed by Dániel Bátyai
parent 6f7dbbce7e
commit 9d4c2315f3
25 changed files with 953 additions and 109 deletions
+30 -7
View File
@@ -44,11 +44,12 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_OF, "of")
#if ENABLED (JERRY_BUILTIN_MATH)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_LN2_U, "LN2")
#endif
#if ENABLED (JERRY_ES2015_BUILTIN_MAP)
#if ENABLED (JERRY_ES2015_BUILTIN_MAP) \
|| ENABLED (JERRY_ES2015_BUILTIN_MAP) || ENABLED (JERRY_ES2015_BUILTIN_SET)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_MAP_UL, "Map")
#endif
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_NAN, "NaN")
#if ENABLED (JERRY_ES2015_BUILTIN_MAP) \
#if ENABLED (JERRY_ES2015_BUILTIN_MAP) || ENABLED (JERRY_ES2015_BUILTIN_SET) \
|| ENABLED (JERRY_ES2015_BUILTIN_SET)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SET_UL, "Set")
#endif
@@ -146,7 +147,9 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_JOIN, "join")
#endif
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_KEYS, "keys")
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_NAME, "name")
#if ENABLED (JERRY_ES2015_BUILTIN_ITERATOR)
#if ENABLED (JERRY_ES2015_BUILTIN_ITERATOR) \
|| ENABLED (JERRY_ES2015_BUILTIN_MAP) \
|| ENABLED (JERRY_ES2015_BUILTIN_SET)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_NEXT, "next")
#endif
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_NULL, "null")
@@ -324,7 +327,9 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SYMBOL, "symbol")
|| ENABLED (JERRY_BUILTIN_JSON)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_JSON_UL, "toJSON")
#endif
#if ENABLED (JERRY_BUILTIN_ARRAY) && ENABLED (JERRY_ES2015_BUILTIN_ITERATOR)
#if ENABLED (JERRY_BUILTIN_ARRAY) && ENABLED (JERRY_ES2015_BUILTIN_ITERATOR) \
|| ENABLED (JERRY_ES2015_BUILTIN_ITERATOR) && ENABLED (JERRY_ES2015_BUILTIN_MAP) \
|| ENABLED (JERRY_ES2015_BUILTIN_ITERATOR) && ENABLED (JERRY_ES2015_BUILTIN_SET)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_VALUES, "values")
#endif
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_BOOLEAN_UL, "Boolean")
@@ -345,7 +350,9 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_COMPILE, "compile")
#if ENABLED (JERRY_ES2015_MODULE_SYSTEM)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_DEFAULT, "default")
#endif
#if ENABLED (JERRY_BUILTIN_ARRAY) && ENABLED (JERRY_ES2015_BUILTIN_ITERATOR)
#if ENABLED (JERRY_BUILTIN_ARRAY) && ENABLED (JERRY_ES2015_BUILTIN_ITERATOR) \
|| ENABLED (JERRY_ES2015_BUILTIN_ITERATOR) && ENABLED (JERRY_ES2015_BUILTIN_MAP) \
|| ENABLED (JERRY_ES2015_BUILTIN_ITERATOR) && ENABLED (JERRY_ES2015_BUILTIN_SET)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ENTRIES, "entries")
#endif
#if ENABLED (JERRY_BUILTIN_ARRAY) \
@@ -617,6 +624,14 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FLOAT64_ARRAY_UL, "Float64Array")
#if ENABLED (JERRY_BUILTIN_DATE)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_INVALID_DATE_UL, "Invalid Date")
#endif
#if ENABLED (JERRY_ES2015_BUILTIN_ITERATOR) \
|| ENABLED (JERRY_ES2015_BUILTIN_MAP)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_MAP_ITERATOR_UL, "Map Iterator")
#endif
#if ENABLED (JERRY_ES2015_BUILTIN_ITERATOR) \
|| ENABLED (JERRY_ES2015_BUILTIN_SET)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SET_ITERATOR_UL, "Set Iterator")
#endif
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_CONFIGURABLE, "configurable")
#if ENABLED (JERRY_BUILTIN_STRING)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FROM_CHAR_CODE_UL, "fromCharCode")
@@ -713,14 +728,16 @@ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (2, LIT_MAGIC_STRING_PI_U)
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (2, LIT_MAGIC_STRING_OF)
#elif ENABLED (JERRY_BUILTIN_MATH)
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (2, LIT_MAGIC_STRING_LN2_U)
#elif ENABLED (JERRY_ES2015_BUILTIN_MAP)
#elif ENABLED (JERRY_ES2015_BUILTIN_MAP) \
|| ENABLED (JERRY_ES2015_BUILTIN_MAP) || ENABLED (JERRY_ES2015_BUILTIN_SET)
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (2, LIT_MAGIC_STRING_MAP_UL)
#else
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (2, LIT_MAGIC_STRING_NAN)
#endif
#if ENABLED (JERRY_BUILTIN_MATH)
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (3, LIT_MAGIC_STRING_LN2_U)
#elif ENABLED (JERRY_ES2015_BUILTIN_MAP)
#elif ENABLED (JERRY_ES2015_BUILTIN_MAP) \
|| ENABLED (JERRY_ES2015_BUILTIN_MAP) || ENABLED (JERRY_ES2015_BUILTIN_SET)
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (3, LIT_MAGIC_STRING_MAP_UL)
#else
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (3, LIT_MAGIC_STRING_NAN)
@@ -773,6 +790,12 @@ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (12, LIT_MAGIC_STRING_FLOAT32_ARRAY_UL)
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (12, LIT_MAGIC_STRING_FLOAT64_ARRAY_UL)
#elif ENABLED (JERRY_BUILTIN_DATE)
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (12, LIT_MAGIC_STRING_INVALID_DATE_UL)
#elif ENABLED (JERRY_ES2015_BUILTIN_ITERATOR) \
|| ENABLED (JERRY_ES2015_BUILTIN_MAP)
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (12, LIT_MAGIC_STRING_MAP_ITERATOR_UL)
#elif ENABLED (JERRY_ES2015_BUILTIN_ITERATOR) \
|| ENABLED (JERRY_ES2015_BUILTIN_SET)
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (12, LIT_MAGIC_STRING_SET_ITERATOR_UL)
#else
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (12, LIT_MAGIC_STRING_CONFIGURABLE)
#endif
+2
View File
@@ -270,6 +270,8 @@ LIT_MAGIC_STRING_UNSCOPABLES = "unscopables"
LIT_MAGIC_STRING_FLOAT32_ARRAY_UL = "Float32Array"
LIT_MAGIC_STRING_FLOAT64_ARRAY_UL = "Float64Array"
LIT_MAGIC_STRING_INVALID_DATE_UL = "Invalid Date"
LIT_MAGIC_STRING_SET_ITERATOR_UL = "Set Iterator"
LIT_MAGIC_STRING_MAP_ITERATOR_UL = "Map Iterator"
LIT_MAGIC_STRING_CONFIGURABLE = "configurable"
LIT_MAGIC_STRING_FROM_CHAR_CODE_UL = "fromCharCode"
LIT_MAGIC_STRING_IS_EXTENSIBLE = "isExtensible"