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:
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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');}});
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user