Bound names of for-in/of statements cannot contain let (#4225)

JerryScript-DCO-1.0-Signed-off-by: Dániel Bátyai daniel.batyai@h-lab.eu
This commit is contained in:
Dániel Bátyai 2020-09-25 16:33:11 +02:00 committed by GitHub
parent de38764e88
commit f58f15077f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 6 deletions

View File

@ -1374,6 +1374,15 @@ parser_parse_for_statement_start (parser_context_t *context_p) /**< context */
#endif /* ENABLED (JERRY_ESNEXT) */
lexer_expect_identifier (context_p, LEXER_IDENT_LITERAL);
#if ENABLED (JERRY_ESNEXT)
if (context_p->token.keyword_type == LEXER_KEYW_LET
&& token_type != LEXER_KEYW_VAR)
{
parser_raise_error (context_p, PARSER_ERR_LEXICAL_LET_BINDING);
}
#endif /* ENABLED (JERRY_ESNEXT) */
JERRY_ASSERT (context_p->token.type == LEXER_LITERAL
&& context_p->token.lit_location.type == LEXER_IDENT_LITERAL);

View File

@ -325,7 +325,6 @@
<test id="language/statements/for/S12.6.3_A9.js"><reason></reason></test>
<test id="language/statements/generators/has-instance.js"><reason></reason></test>
<test id="language/statements/generators/prototype-value.js"><reason></reason></test>
<test id="language/statements/let/syntax/identifier-let-disallowed-as-boundname.js"><reason></reason></test>
<test id="language/statements/try/S12.14_A16_T4.js"><reason>ES2019 change: catch without parameter is allowed</reason></test>
<test id="built-ins/Number/S9.3.1_A2.js"><reason>Unicode 13: 0x180E is no longer whitespace character</reason></test>
<test id="built-ins/Number/S9.3.1_A3_T1.js"><reason>Unicode 13: 0x180E is no longer whitespace character</reason></test>

View File

@ -4500,8 +4500,6 @@
<test id="language/statements/for-in/cptn-expr-itr.js"><reason></reason></test>
<test id="language/statements/for-in/cptn-expr-skip-itr.js"><reason></reason></test>
<test id="language/statements/for-in/cptn-expr-zero-itr.js"><reason></reason></test>
<test id="language/statements/for-in/head-const-bound-names-let.js"><reason></reason></test>
<test id="language/statements/for-in/head-let-bound-names-let.js"><reason></reason></test>
<test id="language/statements/for-in/head-lhs-let.js"><reason></reason></test>
<test id="language/statements/for-in/let-block-with-newline.js"><reason></reason></test>
<test id="language/statements/for-in/let-identifier-with-newline.js"><reason></reason></test>
@ -4579,11 +4577,9 @@
<test id="language/statements/for-of/dstr/var-obj-ptrn-rest-getter.js"><reason></reason></test>
<test id="language/statements/for-of/dstr/var-obj-ptrn-rest-skip-non-enumerable.js"><reason></reason></test>
<test id="language/statements/for-of/dstr/var-obj-ptrn-rest-val-obj.js"><reason></reason></test>
<test id="language/statements/for-of/head-const-bound-names-let.js"><reason></reason></test>
<test id="language/statements/for-of/head-const-init.js"><reason></reason></test>
<test id="language/statements/for-of/head-decl-no-expr.js"><reason></reason></test>
<test id="language/statements/for-of/head-expr-no-expr.js"><reason></reason></test>
<test id="language/statements/for-of/head-let-bound-names-let.js"><reason></reason></test>
<test id="language/statements/for-of/head-let-init.js"><reason></reason></test>
<test id="language/statements/for-of/head-var-init.js"><reason></reason></test>
<test id="language/statements/for-of/head-var-no-expr.js"><reason></reason></test>
@ -4661,7 +4657,6 @@
<test id="language/statements/let/dstr/obj-ptrn-rest-getter.js"><reason></reason></test>
<test id="language/statements/let/dstr/obj-ptrn-rest-skip-non-enumerable.js"><reason></reason></test>
<test id="language/statements/let/dstr/obj-ptrn-rest-val-obj.js"><reason></reason></test>
<test id="language/statements/let/syntax/identifier-let-disallowed-as-boundname.js"><reason></reason></test>
<test id="language/statements/let/syntax/let-newline-yield-in-generator-function.js"><reason></reason></test>
<test id="language/statements/switch/cptn-a-abrupt-empty.js"><reason></reason></test>
<test id="language/statements/switch/cptn-abrupt-empty.js"><reason></reason></test>