Implement String.padStart and String.padEnd (#3999)

Based on: https://tc39.es/ecma262/#sec-string.prototype.padstart

JerryScript-DCO-1.0-Signed-off-by: Bela Toth tbela@inf.u-szeged.hu
This commit is contained in:
Tóth Béla
2020-07-24 11:24:18 +02:00
committed by GitHub
parent f596211553
commit 2f2a4e066c
7 changed files with 196 additions and 0 deletions
@@ -80,6 +80,8 @@ enum
ECMA_STRING_PROTOTYPE_REPEAT,
ECMA_STRING_PROTOTYPE_CODE_POINT_AT,
ECMA_STRING_PROTOTYPE_PAD_START,
ECMA_STRING_PROTOTYPE_PAD_END,
/* Note: These 5 routines MUST be in this order */
ECMA_STRING_PROTOTYPE_LAST_INDEX_OF,
ECMA_STRING_PROTOTYPE_INDEX_OF,
@@ -1388,6 +1390,12 @@ ecma_builtin_string_prototype_dispatch_routine (uint16_t builtin_routine_id, /**
ret_value = ecma_builtin_string_prototype_object_iterator (to_string_val);
break;
}
case ECMA_STRING_PROTOTYPE_PAD_END:
case ECMA_STRING_PROTOTYPE_PAD_START:
{
ret_value = ecma_string_pad (to_string_val, arg1, arg2, builtin_routine_id == ECMA_STRING_PROTOTYPE_PAD_START);
break;
}
#endif /* ENABLED (JERRY_ESNEXT) */
default:
{
@@ -73,6 +73,8 @@ ROUTINE (LIT_MAGIC_STRING_STARTS_WITH, ECMA_STRING_PROTOTYPE_STARTS_WITH, 2, 1)
ROUTINE (LIT_MAGIC_STRING_INCLUDES, ECMA_STRING_PROTOTYPE_INCLUDES, 2, 1)
ROUTINE (LIT_MAGIC_STRING_ENDS_WITH, ECMA_STRING_PROTOTYPE_ENDS_WITH, 2, 1)
ROUTINE (LIT_MAGIC_STRING_CODE_POINT_AT, ECMA_STRING_PROTOTYPE_CODE_POINT_AT, 1, 1)
ROUTINE (LIT_MAGIC_STRING_PAD_START, ECMA_STRING_PROTOTYPE_PAD_START, 2, 1)
ROUTINE (LIT_MAGIC_STRING_PAD_END, ECMA_STRING_PROTOTYPE_PAD_END, 2, 1)
ROUTINE (LIT_GLOBAL_SYMBOL_ITERATOR, ECMA_STRING_PROTOTYPE_ITERATOR, 0, 0)
#endif /* ENABLED (JERRY_ESNEXT) */