Implement Iterator interface and Array iterators (#2640)

JerryScript-DCO-1.0-Signed-off-by: Robert Fancsik frobert@inf.u-szeged.hu
This commit is contained in:
Robert Fancsik
2019-02-08 11:10:32 +01:00
committed by GitHub
parent 2dd854d28b
commit 4f5ffb4f3a
21 changed files with 1045 additions and 6 deletions
+1
View File
@@ -46,6 +46,7 @@ typedef enum
LIT_INTERNAL_MAGIC_STRING_PROMISE_PROPERTY_INDEX, /**< [[Index]] property */
LIT_INTERNAL_MAGIC_STRING_PROMISE_PROPERTY_VALUE, /**< [[Values]] property */
LIT_INTERNAL_MAGIC_STRING_PROMISE_PROPERTY_REMAINING_ELEMENT, /**< [[RemainingElement]] property */
LIT_INTERNAL_MAGIC_STRING_ITERATOR_NEXT_INDEX, /**< [[%Iterator%NextIndex]] property */
/* List of well known symbols */
LIT_GLOBAL_SYMBOL_HAS_INSTANCE, /**< @@hasInstance well known symbol */
LIT_GLOBAL_SYMBOL_IS_CONCAT_SPREADABLE, /**< @@isConcatSpreadable well known symbol */
+18 -1
View File
@@ -112,6 +112,9 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_CALL, "call")
#if !defined (CONFIG_DISABLE_MATH_BUILTIN)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_CEIL, "ceil")
#endif
#if !defined (CONFIG_DISABLE_ES2015_ITERATOR_BUILTIN)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_DONE, "done")
#endif
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_EVAL, "eval")
#if !defined (CONFIG_DISABLE_REGEXP_BUILTIN)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_EXEC, "exec")
@@ -132,6 +135,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 !defined (CONFIG_DISABLE_ES2015_ITERATOR_BUILTIN)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_NEXT, "next")
#endif
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_NULL, "null")
#if !defined (CONFIG_DISABLE_ARRAY_BUILTIN)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_PUSH, "push")
@@ -300,6 +306,9 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SYMBOL, "symbol")
|| !defined (CONFIG_DISABLE_JSON_BUILTIN)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_JSON_UL, "toJSON")
#endif
#if !defined (CONFIG_DISABLE_ARRAY_BUILTIN) && !defined (CONFIG_DISABLE_ES2015_ITERATOR_BUILTIN)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_VALUES, "values")
#endif
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_BOOLEAN_UL, "Boolean")
#if !defined (CONFIG_DISABLE_ES2015_PROMISE_BUILTIN)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_PROMISE_UL, "Promise")
@@ -315,6 +324,9 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_BOOLEAN, "boolean")
#if !defined (CONFIG_DISABLE_ANNEXB_BUILTIN) && !defined (CONFIG_DISABLE_REGEXP_BUILTIN)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_COMPILE, "compile")
#endif
#if !defined (CONFIG_DISABLE_ARRAY_BUILTIN) && !defined (CONFIG_DISABLE_ES2015_ITERATOR_BUILTIN)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ENTRIES, "entries")
#endif
#if !defined (CONFIG_DISABLE_ARRAY_BUILTIN) \
|| !defined (CONFIG_DISABLE_ES2015_TYPEDARRAY_BUILTIN)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FOR_EACH_UL, "forEach")
@@ -544,6 +556,9 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SET_UTC_SECONDS_UL, "setUTCSeconds")
#if !defined (CONFIG_DISABLE_NUMBER_BUILTIN)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_TO_EXPONENTIAL_UL, "toExponential")
#endif
#if !defined (CONFIG_DISABLE_ES2015_ITERATOR_BUILTIN)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ARRAY_ITERATOR_UL, "Array Iterator")
#endif
#if !defined (CONFIG_DISABLE_ERROR_BUILTINS)
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_REFERENCE_ERROR_UL, "ReferenceError")
#endif
@@ -672,7 +687,9 @@ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (13, LIT_MAGIC_STRING_GET_UTC_MINUTES_UL
#else
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (13, LIT_MAGIC_STRING_IS_PROTOTYPE_OF_UL)
#endif
#if !defined (CONFIG_DISABLE_ERROR_BUILTINS)
#if !defined (CONFIG_DISABLE_ES2015_ITERATOR_BUILTIN)
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (14, LIT_MAGIC_STRING_ARRAY_ITERATOR_UL)
#elif !defined (CONFIG_DISABLE_ERROR_BUILTINS)
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (14, LIT_MAGIC_STRING_REFERENCE_ERROR_UL)
#else
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (14, LIT_MAGIC_STRING_DEFINE_PROPERTY_UL)
+5
View File
@@ -66,6 +66,7 @@ LIT_MAGIC_STRING_ATAN = "atan"
LIT_MAGIC_STRING_BIND = "bind"
LIT_MAGIC_STRING_CALL = "call"
LIT_MAGIC_STRING_CEIL = "ceil"
LIT_MAGIC_STRING_DONE = "done"
LIT_MAGIC_STRING_EVAL = "eval"
LIT_MAGIC_STRING_EXEC = "exec"
LIT_MAGIC_STRING_FILL = "fill"
@@ -75,6 +76,7 @@ LIT_MAGIC_STRING_JOIN = "join"
LIT_MAGIC_STRING_KEYS = "keys"
LIT_MAGIC_STRING_NAME = "name"
LIT_MAGIC_STRING_NULL = "null"
LIT_MAGIC_STRING_NEXT = "next"
LIT_MAGIC_STRING_PUSH = "push"
LIT_MAGIC_STRING_RACE = "race"
LIT_MAGIC_STRING_SEAL = "seal"
@@ -140,7 +142,9 @@ LIT_MAGIC_STRING_SPLICE = "splice"
LIT_MAGIC_STRING_STRING = "string"
LIT_MAGIC_STRING_SYMBOL = "symbol"
LIT_MAGIC_STRING_SUBSTR = "substr"
LIT_MAGIC_STRING_ENTRIES = "entries"
LIT_MAGIC_STRING_TO_JSON_UL = "toJSON"
LIT_MAGIC_STRING_VALUES = "values"
LIT_MAGIC_STRING_BOOLEAN_UL = "Boolean"
LIT_MAGIC_STRING_PROMISE_UL = "Promise"
LIT_MAGIC_STRING_SQRT1_2_U = "SQRT1_2"
@@ -255,6 +259,7 @@ LIT_MAGIC_STRING_LOCALE_COMPARE_UL = "localeCompare"
LIT_MAGIC_STRING_SET_UTC_MINUTES_UL = "setUTCMinutes"
LIT_MAGIC_STRING_SET_UTC_SECONDS_UL = "setUTCSeconds"
LIT_MAGIC_STRING_TO_EXPONENTIAL_UL = "toExponential"
LIT_MAGIC_STRING_ARRAY_ITERATOR_UL = "Array Iterator"
LIT_MAGIC_STRING_REFERENCE_ERROR_UL = "ReferenceError"
LIT_MAGIC_STRING_DEFINE_PROPERTY_UL = "defineProperty"
LIT_MAGIC_STRING_GET_PROTOTYPE_OF_UL = "getPrototypeOf"