Generator declaration is not allowed in single statement position (#4815)

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka robert.sipka@h-lab.eu
This commit is contained in:
Robert Sipka
2021-11-09 08:38:09 +01:00
committed by GitHub
parent 80777799f6
commit 4592143400
5 changed files with 39 additions and 6 deletions
+7 -1
View File
@@ -600,7 +600,9 @@ parser_parse_function_statement (parser_context_t *context_p) /**< context */
JERRY_ASSERT (context_p->token.type == LEXER_KEYW_FUNCTION);
#if JERRY_ESNEXT
if (JERRY_UNLIKELY (parser_statement_flags[context_p->stack_top_uint8] & PARSER_STATM_SINGLE_STATM))
bool is_single_statement = (parser_statement_flags[context_p->stack_top_uint8] & PARSER_STATM_SINGLE_STATM) != 0;
if (JERRY_UNLIKELY (is_single_statement))
{
if (context_p->status_flags & PARSER_IS_STRICT)
{
@@ -667,6 +669,10 @@ parser_parse_function_statement (parser_context_t *context_p) /**< context */
if (lexer_consume_generator (context_p))
{
if (is_single_statement)
{
parser_raise_error (context_p, PARSER_ERR_GENERATOR_IN_SINGLE_STATEMENT_POS);
}
is_generator_function = true;
}
#endif /* JERRY_ESNEXT */