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 */
|
#endif /* JERRY_ESNEXT */
|
||||||
|
|
||||||
lexer_next_token (context_p);
|
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)
|
if (context_p->token.type != LEXER_RIGHT_PAREN)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -56,7 +56,15 @@ var forOf =
|
|||||||
"for (var a \"of\" []) {}"
|
"for (var a \"of\" []) {}"
|
||||||
parse (forOf)
|
parse (forOf)
|
||||||
|
|
||||||
checkError(5)
|
var forOf =
|
||||||
|
"for (let x of [], []) {}"
|
||||||
|
parse (forOf)
|
||||||
|
|
||||||
|
var forOf =
|
||||||
|
"for (var x of [], []) {}"
|
||||||
|
parse (forOf)
|
||||||
|
|
||||||
|
checkError(7)
|
||||||
|
|
||||||
var obj = {}
|
var obj = {}
|
||||||
Object.defineProperty(obj, Symbol.iterator, { get : function () { throw TypeError ('foo');}});
|
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-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-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/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-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/let-identifier-with-newline.js"><reason></reason></test>
|
||||||
<test id="language/statements/for-of/scope-body-lex-open.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