• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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