Changeset 266327 in webkit for trunk/Source/JavaScriptCore
- Timestamp:
- Aug 29, 2020, 1:44:20 PM (5 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r266326 r266327 1 2020-08-29 Yusuke Suzuki <[email protected]> 2 3 [JSC] `let [` sequence cannot appear in ExpressionStatement context 4 https://bugs.webkit.org/show_bug.cgi?id=215977 5 6 Reviewed by Ross Kirsling. 7 8 Because of ambiguity between destructuring assignment and member access (let IDENTIFIER), ECMA262 does not allow `let [` sequence in ExpressionStatement context[1]. 9 We should throw SyntaxError when we see something like this. 10 11 if (false) 12 let [ok] = [42]; 13 14 [1]: https://tc39.es/ecma262/#sec-expression-statement 15 16 * parser/Parser.cpp: 17 (JSC::Parser<LexerType>::parseStatement): 18 1 19 2020-08-29 Yusuke Suzuki <[email protected]> 2 20 -
trunk/Source/JavaScriptCore/parser/Parser.cpp
r266326 r266327 1971 1971 return 0; 1972 1972 case LET: { 1973 // https://tc39.es/ecma262/#sec-expression-statement 1974 // ExpressionStatement's lookahead includes `let [` sequence. 1975 SavePoint savePoint = createSavePoint(context); 1976 next(); 1977 failIfTrue(match(OPENBRACKET), "Cannot use lexical declaration in single-statement context"); 1978 restoreSavePoint(context, savePoint); 1973 1979 if (!strictMode()) 1974 1980 goto identcase;
Note:
See TracChangeset
for help on using the changeset viewer.