Implement ECMAScript 2022 private class methods and fields (#4831)

Co-authored-by: Robert Fancsik robert.fancsik@h-lab.eu
Co-authored-by: Martin Negyokru mnegyokru@inf.u-szeged.hu
JerryScript-DCO-1.0-Signed-off-by: Adam Szilagyi aszilagy@inf.u-szeged.hu
This commit is contained in:
Szilagyi Adam
2021-11-26 12:24:59 +01:00
committed by GitHub
parent 841e21a970
commit 70e275e92f
35 changed files with 2196 additions and 4341 deletions
@@ -16,9 +16,6 @@
/* This file is automatically generated by the gen-strings.py script
* from parser-error-messages.ini. Do not edit! */
#if JERRY_PARSER
PARSER_ERROR_DEF (PARSER_ERR_NO_ERROR, "No error")
#endif /* JERRY_PARSER */
#if JERRY_PARSER && !(JERRY_ESNEXT)
PARSER_ERROR_DEF (PARSER_ERR_INVALID_NUMBER, "Invalid number")
#endif /* JERRY_PARSER && !(JERRY_ESNEXT) */
@@ -95,6 +92,9 @@ PARSER_ERROR_DEF (PARSER_ERR_META_EXPECTED, "Expected 'meta' keyword")
#if JERRY_PARSER
PARSER_ERROR_DEF (PARSER_ERR_UNEXPECTED_END, "Unexpected end of input")
#endif /* JERRY_PARSER */
#if JERRY_ESNEXT && JERRY_PARSER
PARSER_ERROR_DEF (PARSER_ERR_UNEXPECTED_PRIVATE_FIELD, "Unexpected private field")
#endif /* JERRY_ESNEXT && JERRY_PARSER */
#if JERRY_MODULE_SYSTEM && JERRY_PARSER
PARSER_ERROR_DEF (PARSER_ERR_LEFT_BRACE_MULTIPLY_EXPECTED, "Expected '{' or '*' token")
#endif /* JERRY_MODULE_SYSTEM && JERRY_PARSER */
@@ -147,6 +147,7 @@ PARSER_ERROR_DEF (PARSER_ERR_DUPLICATED_IMPORT_BINDING, "Duplicated imported bin
PARSER_ERROR_DEF (PARSER_ERR_WHILE_EXPECTED, "While expected for do-while loop")
#endif /* JERRY_PARSER */
#if JERRY_ESNEXT && JERRY_PARSER
PARSER_ERROR_DEF (PARSER_ERR_DELETE_PRIVATE_FIELD, "Private fields can not be deleted")
PARSER_ERROR_DEF (PARSER_ERR_INVALID_LHS_FOR_LOOP, "Invalid left-hand-side in for-loop")
#endif /* JERRY_ESNEXT && JERRY_PARSER */
#if JERRY_PARSER
@@ -185,6 +186,7 @@ PARSER_ERROR_DEF (PARSER_ERR_ARRAY_ITEM_SEPARATOR_EXPECTED, "Expected ',' or ']'
#if JERRY_ESNEXT && JERRY_PARSER
PARSER_ERROR_DEF (PARSER_ERR_ILLEGAL_PROPERTY_IN_DECLARATION, "Illegal property in declaration context")
PARSER_ERROR_DEF (PARSER_ERR_INVALID_DESTRUCTURING_PATTERN, "Invalid destructuring assignment target")
PARSER_ERROR_DEF (PARSER_ERR_DUPLICATED_PRIVATE_FIELD, "Private field has already been declared")
#endif /* JERRY_ESNEXT && JERRY_PARSER */
#if JERRY_PARSER
PARSER_ERROR_DEF (PARSER_ERR_NO_ARGUMENTS_EXPECTED, "Property getters must have no arguments")
@@ -231,6 +233,7 @@ PARSER_ERROR_DEF (PARSER_ERR_NEWLINE_NOT_ALLOWED, "Newline is not allowed in str
PARSER_ERROR_DEF (PARSER_ERR_OCTAL_NUMBER_NOT_ALLOWED, "Octal numbers are not allowed in strict mode")
#endif /* JERRY_PARSER */
#if JERRY_ESNEXT && JERRY_PARSER
PARSER_ERROR_DEF (PARSER_ERR_CLASS_PRIVATE_CONSTRUCTOR, "Class constructor may not be a private method")
PARSER_ERROR_DEF (PARSER_ERR_FOR_AWAIT_NO_OF, "only 'of' form is allowed for for-await loops")
#endif /* JERRY_ESNEXT && JERRY_PARSER */
#if JERRY_PARSER
@@ -262,6 +265,7 @@ PARSER_ERROR_DEF (PARSER_ERR_INVALID_CONTINUE_LABEL, "Labeled statement targeted
#endif /* JERRY_PARSER */
#if JERRY_ESNEXT && JERRY_PARSER
PARSER_ERROR_DEF (PARSER_ERR_LEXICAL_LET_BINDING, "Let binding cannot appear in let/const declarations")
PARSER_ERROR_DEF (PARSER_ERR_UNDECLARED_PRIVATE_FIELD, "Private field must be declared in an enclosing class")
PARSER_ERROR_DEF (PARSER_ERR_INVALID_LHS_PREFIX_OP, "Invalid left-hand side expression in prefix operation")
#endif /* JERRY_ESNEXT && JERRY_PARSER */
#if JERRY_PARSER