Implement {Array, %TypedArray%, String}.prototype.at method (#4681)

The following methods were implemented:
- Array.prototype.at based on ECMA-262 Stage 3 Draft Relative Indexing Method proposal
- String.prototype.at based on ECMA-262 Stage 3 Draft Relative Indexing Method proposal
- TypedArray.prototype.at based on ECMA-262 Stage 3 Draft Relative Indexing Method proposal

https://tc39.es/proposal-relative-indexing-method/

JerryScript-DCO-1.0-Signed-off-by: Daniel Batiz batizjob@gmail.com
This commit is contained in:
batizdaniel
2021-08-10 17:19:25 +02:00
committed by GitHub
parent 444806d78a
commit a25b824509
15 changed files with 363 additions and 1 deletions
+16
View File
@@ -37,6 +37,12 @@ LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_RIGHT_SQUARE_CHAR, "]")
#if JERRY_BUILTIN_MATH
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_PI_U, "PI")
#endif
#if JERRY_BUILTIN_ARRAY \
|| JERRY_BUILTIN_STRING \
|| JERRY_BUILTIN_TYPEDARRAY \
|| JERRY_ESNEXT
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_AT, "at")
#endif
#if JERRY_ESNEXT
LIT_MAGIC_STRING_DEF (LIT_MAGIC_STRING_IS, "is")
#endif
@@ -1014,6 +1020,11 @@ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (1, LIT_MAGIC_STRING_E_U)
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (1, LIT_MAGIC_STRING_LEFT_SQUARE_CHAR)
#elif JERRY_BUILTIN_MATH
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (1, LIT_MAGIC_STRING_PI_U)
#elif JERRY_BUILTIN_ARRAY \
|| JERRY_BUILTIN_STRING \
|| JERRY_BUILTIN_TYPEDARRAY \
|| JERRY_ESNEXT
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (1, LIT_MAGIC_STRING_AT)
#elif JERRY_ESNEXT
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (1, LIT_MAGIC_STRING_IS)
#elif JERRY_BUILTIN_ARRAY && JERRY_ESNEXT \
@@ -1029,6 +1040,11 @@ LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (1, LIT_MAGIC_STRING_NAN)
#endif
#if JERRY_BUILTIN_MATH
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (2, LIT_MAGIC_STRING_PI_U)
#elif JERRY_BUILTIN_ARRAY \
|| JERRY_BUILTIN_STRING \
|| JERRY_BUILTIN_TYPEDARRAY \
|| JERRY_ESNEXT
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (2, LIT_MAGIC_STRING_AT)
#elif JERRY_ESNEXT
LIT_MAGIC_STRING_FIRST_STRING_WITH_SIZE (2, LIT_MAGIC_STRING_IS)
#elif JERRY_BUILTIN_ARRAY && JERRY_ESNEXT \
+1
View File
@@ -30,6 +30,7 @@ LIT_MAGIC_STRING_E_U = "E"
LIT_MAGIC_STRING_LEFT_SQUARE_CHAR = "["
LIT_MAGIC_STRING_RIGHT_SQUARE_CHAR = "]"
LIT_MAGIC_STRING_PI_U = "PI"
LIT_MAGIC_STRING_AT = "at"
LIT_MAGIC_STRING_IS = "is"
LIT_MAGIC_STRING_OF = "of"
LIT_MAGIC_STRING_LN2_U = "LN2"