1/* 2 * Copyright (c) 2024-2025 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16-a /* @@ label */** 2; 17 18/* @@ label1 */< 2; 19 20function f() { 21 var a = 1/* @@ label2 */--; 22 var a = eval/* @@ label3 */++; 23 var a = arguments/* @@ label4 */--; 24 var a = ++1/* @@ label5 */; 25 var a = --arguments/* @@ label6 */; 26 var a = ++eval/* @@ label7 */; 27 28 delete a 29 /* @@ label8 */delete this.#a 30/* @@ label9 */} 31 32/* @@ label10 */import/* @@ label11 */.meta 33/* @@ label12 */import/* @@ label13 */./* @@ label14 */abc 34 35(x ?? null || 1/* @@ label15 */); 36(x || null ?? 1/* @@ label16 */); 37 38let a = ({x, y/* @@ label17 */.../* @@ label18 */} = 7) => 0; 39let a = (x, 10) /* @@ label19 */=> 0; 40let a = (x, .../* @@ label20 */1/* @@ label21 */) /* @@ label22 */=> 0; 41let a = (...a/* @@ label23 */, x/* @@ label24 */); 42let a = ()/* @@ label25 */; 43 44a?.[1+2/* @@ label26 */); 45a?./* @@ label27 */`abc`; 46 47let /* @@ label28 */{async 48 /* @@ label29 */a/* @@ label30 */, b} = {a: 1, b:2}; 49 50const obj = { 51 get a(x) { return x + 1; }/* @@ label31 */, 52 set a() { }/* @@ label32 */, 53 b: 1 54}; 55 56let {/* @@ label33 */*a/* @@ label34 */} /* @@ label35 */= 0/* @@ label36 */; 57/* @@ label37 */let /* @@ label38 */{a/* @@ label39 */(){}, b} = 0; 58let {/* @@ label40 */public } = 0; 59 60[a, [a, b]] = [1, 2] (/* @@ label41 */{...r, c} = {a: 10}); 61 62({a, ...r, b} = {a: 10, b: 20}) /* @@ label42 */=> expression; 63({a, ...r, b} = 7) /* @@ label43 */=> expression; 64([a, b = await /* @@ label44 */7/* @@ label45 */]/* @@ label46 */) /* @@ label47 */=> expression; 65({...x, b}) /* @@ label48 */=> expression; 66(...x /* @@ label49 */= 4/* @@ label50 */, [...x, b]/* @@ label51 */) /* @@ label52 */=> expression; 67(async f /* @@ label53 */= await b()) /* @@ label54 */=> expression; 68async (...x = await 4, a) /* @@ label55 */=> expression; 69async (x = await 7) /* @@ label56 */=> expression; 70(a, b) => { 7 /* @@ label57 */]; 71// This should be the last line to check syntax error about missing '}' 72 73/* @@@ label Error SyntaxError: Illegal expression. Wrap left hand side or entire exponentiation in parentheses. */ 74/* @@@ label1 Error SyntaxError: Unexpected token '<'. */ 75/* @@@ label2 Error SyntaxError: Invalid left-hand side operator. */ 76/* @@@ label3 Error SyntaxError: Assigning to 'eval' in strict mode is invalid. */ 77/* @@@ label4 Error SyntaxError: Assigning to 'arguments' in strict mode is invalid. */ 78/* @@@ label5 Error SyntaxError: Invalid left-hand side in prefix operation. */ 79/* @@@ label6 Error SyntaxError: Assigning to 'arguments' in strict mode is invalid. */ 80/* @@@ label7 Error SyntaxError: Assigning to 'eval' in strict mode is invalid. */ 81/* @@@ label8 Error SyntaxError: Deleting local variable in strict mode. */ 82/* @@@ label9 Error SyntaxError: Private fields can not be deleted. */ 83/* @@@ label10 Error SyntaxError: 'import.Meta' may appear only with 'sourceType: module'. */ 84/* @@@ label11 Error SyntaxError: 'import.Meta' may appear only with 'sourceType: module'. */ 85/* @@@ label12 Error SyntaxError: 'import.Meta' may appear only with 'sourceType: module'. */ 86/* @@@ label13 Error SyntaxError: 'import.Meta' may appear only with 'sourceType: module'. */ 87/* @@@ label14 Error SyntaxError: The only valid meta property for import is import.Meta. */ 88/* @@@ label15 Error SyntaxError: Nullish coalescing operator ?? requires parens when mixing with logical operators. */ 89/* @@@ label16 Error SyntaxError: Nullish coalescing operator ?? requires parens when mixing with logical operators. */ 90/* @@@ label17 Error SyntaxError: Unexpected token, expected ':'. */ 91/* @@@ label18 Error SyntaxError: Unexpected token '}'. */ 92/* @@@ label19 Error SyntaxError: Insufficient formal parameter in arrow function. */ 93/* @@@ label20 Error SyntaxError: Unexpected token '1'. */ 94/* @@@ label20 Error SyntaxError: Unexpected token. */ 95/* @@@ label20 Error SyntaxError: Expected ')', got 'number literal'. */ 96/* @@@ label21 Error SyntaxError: Unexpected token ')'. */ 97/* @@@ label21 Error SyntaxError: Unexpected token ')'. */ 98/* @@@ label21 Error SyntaxError: Unexpected token ')'. */ 99/* @@@ label22 Error SyntaxError: Unexpected token '=>'. */ 100/* @@@ label23 Error SyntaxError: Rest parameter must be the last formal parameter. */ 101/* @@@ label23 Error SyntaxError: Unexpected token, expected '=>'. */ 102/* @@@ label24 Error SyntaxError: Unexpected token ')'. */ 103/* @@@ label24 Error SyntaxError: Unexpected token ')'. */ 104/* @@@ label24 Error SyntaxError: Unexpected token ')'. */ 105/* @@@ label25 Error SyntaxError: Unexpected token, expected '=>'. */ 106/* @@@ label26 Error SyntaxError: Unexpected token, expected ']'. */ 107/* @@@ label27 Error SyntaxError: Tagged Template Literals are not allowed in optionalChain. */ 108/* @@@ label28 Error SyntaxError: Invalid left-hand side in array destructuring pattern. */ 109/* @@@ label29 Error SyntaxError: Async methods cannot have a line terminator between 'async' and the property name. */ 110/* @@@ label30 Error SyntaxError: Unexpected identifier. */ 111/* @@@ label30 Error SyntaxError: Unexpected token, expected ':'. */ 112/* @@@ label31 Error SyntaxError: Getter must not have formal parameters. */ 113/* @@@ label32 Error SyntaxError: Setter must have exactly one formal parameter. */ 114/* @@@ label33 Error SyntaxError: Unexpected token. */ 115/* @@@ label34 Error SyntaxError: Unexpected token, expected ':'. */ 116/* @@@ label34 Error SyntaxError: Unexpected identifier. */ 117/* @@@ label35 Error SyntaxError: Unexpected token. */ 118/* @@@ label36 Error SyntaxError: Unexpected token. */ 119/* @@@ label37 Error SyntaxError: Missing initializer in destructuring declaration. */ 120/* @@@ label38 Error SyntaxError: Invalid left-hand side in array destructuring pattern. */ 121/* @@@ label39 Error SyntaxError: Object pattern can't contain methods. */ 122/* @@@ label40 Error SyntaxError: Unexpected token, expected an identifier. */ 123/* @@@ label41 Error SyntaxError: Invalid left-hand side in array destructuring pattern. */ 124/* @@@ label42 Error SyntaxError: Invalid destructuring assignment target. */ 125/* @@@ label42 Error SyntaxError: Unexpected ArrowParameter element. */ 126/* @@@ label43 Error SyntaxError: Invalid destructuring assignment target. */ 127/* @@@ label43 Error SyntaxError: Unexpected ArrowParameter element. */ 128/* @@@ label44 Error SyntaxError: Unexpected token, expected ',' or ']'. */ 129/* @@@ label44 Error SyntaxError: Expected ')', got 'number literal'. */ 130/* @@@ label44 Error SyntaxError: Unexpected token '7'. */ 131/* @@@ label45 Error SyntaxError: Unexpected token ']'. */ 132/* @@@ label45 Error SyntaxError: Unexpected token ']'. */ 133/* @@@ label45 Error SyntaxError: Unexpected token ']'. */ 134/* @@@ label46 Error SyntaxError: Unexpected token ')'. */ 135/* @@@ label46 Error SyntaxError: Unexpected token ')'. */ 136/* @@@ label47 Error SyntaxError: Unexpected token '=>'. */ 137/* @@@ label48 Error SyntaxError: Invalid destructuring assignment target. */ 138/* @@@ label48 Error SyntaxError: Unexpected ArrowParameter element. */ 139/* @@@ label49 Error SyntaxError: Unexpected token, expected ')'. */ 140/* @@@ label50 Error SyntaxError: Rest parameter must be the last formal parameter. */ 141/* @@@ label50 Error SyntaxError: Unexpected token, expected '=>'. */ 142/* @@@ label51 Error SyntaxError: Unexpected token ')'. */ 143/* @@@ label51 Error SyntaxError: Unexpected token ')'. */ 144/* @@@ label51 Error SyntaxError: Unexpected token ')'. */ 145/* @@@ label52 Error SyntaxError: Unexpected token '=>'. */ 146/* @@@ label53 Error SyntaxError: Unexpected token, expected '=>'. */ 147/* @@@ label54 Error SyntaxError: Unexpected token. */ 148/* @@@ label55 Error SyntaxError: Invalid rest element. */ 149/* @@@ label55 Error SyntaxError: Unexpected ArrowParameter element. */ 150/* @@@ label56 Error SyntaxError: await is not allowed in arrow function parameters. */ 151/* @@@ label56 Error SyntaxError: Unexpected ArrowParameter element. */ 152/* @@@ label57 Error SyntaxError: Unexpected token ']'. */ 153/* @@@ label57 Error SyntaxError: Unexpected token ']'. */ 154/* @@@ label57 Error SyntaxError: Unexpected token ']'. */ 155/* @@? 156:1 Error SyntaxError: Expected '}', got 'end of stream'. */ 156