Changeset 266326 in webkit for trunk/Source/JavaScriptCore
- Timestamp:
- Aug 29, 2020, 12:06:45 PM (5 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r266324 r266326 1 2020-08-29 Yusuke Suzuki <[email protected]> 2 3 [JSC] for-of uses AssignmentExpression while for-in uses Expression 4 https://bugs.webkit.org/show_bug.cgi?id=215975 5 6 Reviewed by Ross Kirsling. 7 8 While for-in uses Expression, for-of and for-await-of use AssignmentExpression which does not accept comma-expression. 9 We should align our implementation to that. 10 11 for (LeftHandSideExpression in Expression) Statement 12 for (LeftHandSideExpression of AssignmentExpression) Statement 13 for await(LeftHandSideExpression of AssignmentExpression) Statement 14 15 * parser/Parser.cpp: 16 (JSC::Parser<LexerType>::parseForStatement): 17 1 18 2020-08-28 Yusuke Suzuki <[email protected]> 2 19 -
trunk/Source/JavaScriptCore/parser/Parser.cpp
r266324 r266326 1419 1419 internalFailWithMessage(false, "Cannot assign to the loop variable inside a for-in loop header"); 1420 1420 } 1421 TreeExpression expr = parseExpression(context); 1421 1422 // While for-in uses Expression, for-of / for-await-of use AssignmentExpression. 1423 // https://tc39.es/ecma262/#sec-for-in-and-for-of-statements 1424 TreeExpression expr = 0; 1425 if (isOfEnumeration) 1426 expr = parseAssignmentExpression(context); 1427 else 1428 expr = parseExpression(context); 1422 1429 failIfFalse(expr, "Expected expression to enumerate"); 1423 1430 recordPauseLocation(context.breakpointLocation(expr)); … … 1517 1524 } 1518 1525 1519 TreeExpression expr = parseExpression(context); 1526 // While for-in uses Expression, for-of / for-await-of use AssignmentExpression. 1527 // https://tc39.es/ecma262/#sec-for-in-and-for-of-statements 1528 TreeExpression expr = 0; 1529 if (isOfEnumeration) 1530 expr = parseAssignmentExpression(context); 1531 else 1532 expr = parseExpression(context); 1520 1533 failIfFalse(expr, "Cannot parse subject for-", isOfEnumeration ? "of" : "in", " statement"); 1521 1534 recordPauseLocation(context.breakpointLocation(expr));
Note:
See TracChangeset
for help on using the changeset viewer.