Assignment Expression is not allowed in for of head's expression position (#4810)

JerryScript-DCO-1.0-Signed-off-by: Robert Sipka robert.sipka@h-lab.eu
This commit is contained in:
Robert Sipka
2021-10-29 09:52:30 +02:00
committed by GitHub
parent 3c742bef57
commit 9ed695f9d2
3 changed files with 11 additions and 5 deletions
+2 -1
View File
@@ -1289,7 +1289,8 @@ parser_parse_for_statement_start (parser_context_t *context_p) /**< context */
#endif /* JERRY_ESNEXT */
lexer_next_token (context_p);
parser_parse_expression (context_p, PARSE_EXPR);
int options = is_for_in ? PARSE_EXPR : PARSE_EXPR_LEFT_HAND_SIDE;
parser_parse_expression (context_p, options);
if (context_p->token.type != LEXER_RIGHT_PAREN)
{
+9 -1
View File
@@ -56,7 +56,15 @@ var forOf =
"for (var a \"of\" []) {}"
parse (forOf)
checkError(5)
var forOf =
"for (let x of [], []) {}"
parse (forOf)
var forOf =
"for (var x of [], []) {}"
parse (forOf)
checkError(7)
var obj = {}
Object.defineProperty(obj, Symbol.iterator, { get : function () { throw TypeError ('foo');}});
-3
View File
@@ -343,9 +343,6 @@
<test id="language/statements/for-of/cptn-expr-abrupt-empty.js"><reason></reason></test>
<test id="language/statements/for-of/cptn-expr-itr.js"><reason></reason></test>
<test id="language/statements/for-of/cptn-expr-no-itr.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-var-no-expr.js"><reason></reason></test>
<test id="language/statements/for-of/let-block-with-newline.js"><reason></reason></test>
<test id="language/statements/for-of/let-identifier-with-newline.js"><reason></reason></test>
<test id="language/statements/for-of/scope-body-lex-open.js"><reason></reason></test>