Implement WeakMap and WeakSet (#3328)
JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai dbatyai@inf.u-szeged.hu
This commit is contained in:
committed by
Robert Fancsik
parent
830011c033
commit
bd0cb33172
@@ -70,6 +70,8 @@ typedef enum
|
||||
LIT_FIRST_INTERNAL_MAGIC_STRING = LIT_INTERNAL_MAGIC_STRING_NATIVE_POINTER, /**< first index of internal
|
||||
* magic strings */
|
||||
LIT_INTERNAL_MAGIC_STRING_CLASS_THIS_BINDING, /**< the this binding of the class constructor */
|
||||
LIT_INTERNAL_MAGIC_STRING_WEAK_REFS, /**< Weak references to the current object */
|
||||
LIT_INTERNAL_MAGIC_STRING_CONTAINER, /**< Literal ID for internal container objects */
|
||||
LIT_MAGIC_STRING__COUNT /**< number of magic strings */
|
||||
} lit_magic_string_id_t;
|
||||
|
||||
|
||||
@@ -44,12 +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) \
|
||||
|| ENABLED (JERRY_ES2015_BUILTIN_MAP) || ENABLED (JERRY_ES2015_BUILTIN_SET)
|
||||
#if ENABLED (JERRY_ES2015_BUILTIN_CONTAINER) \
|
||||
|| ENABLED (JERRY_ES2015_BUILTIN_MAP)
|
||||
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) || ENABLED (JERRY_ES2015_BUILTIN_SET) \
|
||||
#if ENABLED (JERRY_ES2015_BUILTIN_CONTAINER) \
|
||||
|| ENABLED (JERRY_ES2015_BUILTIN_SET)
|
||||
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SET_UL, "Set")
|
||||
#endif
|
||||
@@ -59,7 +59,9 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_UTC_U, "UTC")
|
||||
#if ENABLED (JERRY_BUILTIN_MATH)
|
||||
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ABS, "abs")
|
||||
#endif
|
||||
#if ENABLED (JERRY_ES2015_BUILTIN_SET)
|
||||
#if ENABLED (JERRY_ES2015) && ENABLED (JERRY_ES2015_BUILTIN_CONTAINER) \
|
||||
|| ENABLED (JERRY_ES2015_BUILTIN_SET) \
|
||||
|| ENABLED (JERRY_ES2015_BUILTIN_WEAKSET)
|
||||
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_ADD, "add")
|
||||
#endif
|
||||
#if ENABLED (JERRY_ES2015_BUILTIN_PROMISE)
|
||||
@@ -74,7 +76,9 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_FOR, "for")
|
||||
#endif
|
||||
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_GET, "get")
|
||||
#if ENABLED (JERRY_ES2015_BUILTIN_MAP) \
|
||||
|| ENABLED (JERRY_ES2015_BUILTIN_SET)
|
||||
|| ENABLED (JERRY_ES2015_BUILTIN_SET) \
|
||||
|| ENABLED (JERRY_ES2015_BUILTIN_WEAKMAP) \
|
||||
|| ENABLED (JERRY_ES2015_BUILTIN_WEAKSET)
|
||||
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_HAS, "has")
|
||||
#endif
|
||||
#if ENABLED (JERRY_BUILTIN_MATH)
|
||||
@@ -277,7 +281,9 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_CONCAT, "concat")
|
||||
#endif
|
||||
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_CREATE, "create")
|
||||
#if ENABLED (JERRY_ES2015_BUILTIN_MAP) \
|
||||
|| ENABLED (JERRY_ES2015_BUILTIN_SET)
|
||||
|| ENABLED (JERRY_ES2015_BUILTIN_SET) \
|
||||
|| ENABLED (JERRY_ES2015_BUILTIN_WEAKMAP) \
|
||||
|| ENABLED (JERRY_ES2015_BUILTIN_WEAKSET)
|
||||
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_DELETE, "delete")
|
||||
#endif
|
||||
#if ENABLED (JERRY_BUILTIN_ANNEXB)
|
||||
@@ -362,6 +368,14 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SQRT1_2_U, "SQRT1_2")
|
||||
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SYMBOL_LEFT_PAREN_UL, "Symbol(")
|
||||
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_SYMBOL_DOT_UL, "Symbol.")
|
||||
#endif
|
||||
#if ENABLED (JERRY_ES2015_BUILTIN_CONTAINER) \
|
||||
|| ENABLED (JERRY_ES2015_BUILTIN_WEAKMAP)
|
||||
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_WEAKMAP_UL, "WeakMap")
|
||||
#endif
|
||||
#if ENABLED (JERRY_ES2015_BUILTIN_CONTAINER) \
|
||||
|| ENABLED (JERRY_ES2015_BUILTIN_WEAKSET)
|
||||
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_WEAKSET_UL, "WeakSet")
|
||||
#endif
|
||||
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_BOOLEAN, "boolean")
|
||||
#if ENABLED (JERRY_BUILTIN_ANNEXB) && ENABLED (JERRY_BUILTIN_REGEXP)
|
||||
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_COMPILE, "compile")
|
||||
@@ -791,16 +805,16 @@ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (2, LIT_MAGIC_STRING_IS)
|
||||
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) \
|
||||
|| ENABLED (JERRY_ES2015_BUILTIN_MAP) || ENABLED (JERRY_ES2015_BUILTIN_SET)
|
||||
#elif ENABLED (JERRY_ES2015_BUILTIN_CONTAINER) \
|
||||
|| ENABLED (JERRY_ES2015_BUILTIN_MAP)
|
||||
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) \
|
||||
|| ENABLED (JERRY_ES2015_BUILTIN_MAP) || ENABLED (JERRY_ES2015_BUILTIN_SET)
|
||||
#elif ENABLED (JERRY_ES2015_BUILTIN_CONTAINER) \
|
||||
|| ENABLED (JERRY_ES2015_BUILTIN_MAP)
|
||||
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)
|
||||
|
||||
@@ -181,6 +181,8 @@ LIT_MAGIC_STRING_SPECIES = "species"
|
||||
LIT_MAGIC_STRING_TO_FIXED_UL = "toFixed"
|
||||
LIT_MAGIC_STRING_UNSHIFT = "unshift"
|
||||
LIT_MAGIC_STRING_VALUE_OF_UL = "valueOf"
|
||||
LIT_MAGIC_STRING_WEAKMAP_UL = "WeakMap"
|
||||
LIT_MAGIC_STRING_WEAKSET_UL = "WeakSet"
|
||||
LIT_MAGIC_STRING_EPSILON_U = "EPSILON"
|
||||
LIT_MAGIC_STRING_DATAVIEW_UL = "DataView"
|
||||
LIT_MAGIC_STRING_FUNCTION_UL = "Function"
|
||||
|
||||
Reference in New Issue
Block a user