Optimize string concatenation. (#2141)

This patch adds two new string concatenation functions:
ecma_append_chars_to_string and ecma_append_magic_string_to_string

The former appends a cesu8 byte array and the latter appends a magic string
to the end of an ecma-string. These two free (dereference) their ecma-string
argument, and this change is also applied to the original ecma_concat_ecma_strings
function which simplifies string handling in most cases.

JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
This commit is contained in:
Zoltan Herczeg
2017-12-19 13:45:48 +01:00
committed by GitHub
parent bd574956e3
commit a2d3ea61eb
16 changed files with 369 additions and 555 deletions
-8
View File
@@ -23,22 +23,14 @@
[LIT_MAGIC_STRINGS]
LIT_MAGIC_STRING__EMPTY = ""
LIT_MAGIC_STRING_NEW_LINE_CHAR = "\n"
LIT_MAGIC_STRING_SPACE_CHAR = " "
LIT_MAGIC_STRING_DOUBLE_QUOTE_CHAR = "\""
LIT_MAGIC_STRING_COMMA_CHAR = ","
LIT_MAGIC_STRING_MINUS_CHAR = "-"
LIT_MAGIC_STRING_SLASH_CHAR = "/"
LIT_MAGIC_STRING_COLON_CHAR = ":"
LIT_MAGIC_STRING_E_U = "E"
LIT_MAGIC_STRING_LEFT_SQUARE_CHAR = "["
LIT_MAGIC_STRING_BACKSLASH_CHAR = "\\"
LIT_MAGIC_STRING_RIGHT_SQUARE_CHAR = "]"
LIT_MAGIC_STRING_G_CHAR = "g"
LIT_MAGIC_STRING_I_CHAR = "i"
LIT_MAGIC_STRING_M_CHAR = "m"
LIT_MAGIC_STRING_LEFT_BRACE_CHAR = "{"
LIT_MAGIC_STRING_RIGHT_BRACE_CHAR = "}"
LIT_MAGIC_STRING_PI_U = "PI"
LIT_MAGIC_STRING_OF = "of"
LIT_MAGIC_STRING_LN2_U = "LN2"