• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2024 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 ** 2;
17
18< 2;
19
20function f() {
21    var a = 1--;
22    var a = eval++;
23    var a = arguments--;
24    var a = ++1;
25    var a = --arguments;
26    var a = ++eval;
27
28    delete a
29    delete this.#a
30}
31
32import.meta
33import.abc
34
35(x ?? null || 1);
36(x || null ?? 1);
37
38let a = ({x, y...} = 7) => 0;
39let a = (x, 10) => 0;
40let a = (x, ...1) => 0;
41let a = (...a, x);
42let a = ();
43
44a?.[1+2);
45a?.`abc`;
46
47let {async
48    a, b} = {a: 1, b:2};
49
50const obj = {
51    get a(x) { return x + 1; },
52    set a() { },
53    b: 1
54};
55
56let {*a} = 0;
57let {a(){}, b} = 0;
58let {public } = 0;
59
60[a, [a, b]] = [1, 2] ({...r, c} = {a: 10});
61
62({a, ...r, b} = {a: 10, b: 20}) => expression;
63({a, ...r, b} = 7) => expression;
64([a, b = await 7]) => expression;
65({...x, b}) => expression;
66(...x = 4, [...x, b]) => expression;
67(async f = await b()) => expression;
68async (...x = await 4, a) => expression;
69async (x = await 7) => expression;
70(a, b) => { 7 ];
71// This should be the last line to check syntax error about missing '}'
72
73/* @@? 16:4 Error SyntaxError: Illegal expression. Wrap left hand side or entire exponentiation in parentheses.  */
74/* @@? 18:1 Error SyntaxError: Unexpected token: '<'.  */
75/* @@? 21:14 Error SyntaxError: Invalid left-hand side operator.  */
76/* @@? 22:17 Error SyntaxError: Assigning to 'eval' in strict mode is invalid  */
77/* @@? 23:22 Error SyntaxError: Assigning to 'arguments' in strict mode is invalid  */
78/* @@? 24:16 Error SyntaxError: Invalid left-hand side in prefix operation  */
79/* @@? 25:24 Error SyntaxError: Assigning to 'arguments' in strict mode is invalid  */
80/* @@? 26:19 Error SyntaxError: Assigning to 'eval' in strict mode is invalid  */
81/* @@? 29:5 Error SyntaxError: Deleting local variable in strict mode  */
82/* @@? 30:1 Error SyntaxError: Private fields can not be deleted  */
83/* @@? 32:1 Error SyntaxError: 'import' and 'export' may appear only with 'sourceType: module'  */
84/* @@? 32:7 Error SyntaxError: 'import.Meta' may appear only with 'sourceType: module'  */
85/* @@? 33:1 Error SyntaxError: 'import' and 'export' may appear only with 'sourceType: module'  */
86/* @@? 33:7 Error SyntaxError: 'import.Meta' may appear only with 'sourceType: module'  */
87/* @@? 33:8 Error SyntaxError: The only valid meta property for import is import.Meta  */
88/* @@? 35:16 Error SyntaxError: Nullish coalescing operator ?? requires parens when mixing with logical operators.  */
89/* @@? 36:16 Error SyntaxError: Nullish coalescing operator ?? requires parens when mixing with logical operators.  */
90/* @@? 38:15 Error SyntaxError: Unexpected token, expected: ':'.  */
91/* @@? 38:18 Error SyntaxError: Unexpected token: '}'.  */
92/* @@? 39:17 Error SyntaxError: Insufficient formal parameter in arrow function.  */
93/* @@? 40:16 Error SyntaxError: Unexpected token, expected an identifier.  */
94/* @@? 40:16 Error SyntaxError: Unexpected token, expected: ')'.  */
95/* @@? 40:17 Error SyntaxError: Unexpected token ')'.  */
96/* @@? 40:17 Error SyntaxError: Unexpected token: ')'.  */
97/* @@? 40:19 Error SyntaxError: Unexpected token: '=>'.  */
98/* @@? 41:14 Error SyntaxError: Rest parameter must be the last formal parameter.  */
99/* @@? 41:14 Error SyntaxError: Unexpected token, expected: '=>'.  */
100/* @@? 41:17 Error SyntaxError: Unexpected token ')'.  */
101/* @@? 41:17 Error SyntaxError: Unexpected token: ')'.  */
102/* @@? 42:11 Error SyntaxError: Unexpected token, expected: '=>'.  */
103/* @@? 44:8 Error SyntaxError: Unexpected token, expected: ']'.  */
104/* @@? 45:4 Error SyntaxError: Tagged Template Literals are not allowed in optionalChain  */
105/* @@? 48:5 Error SyntaxError: Async methods cannot have a line terminator between 'async' and the property name  */
106/* @@? 48:6 Error SyntaxError: Unexpected identifier  */
107/* @@? 48:6 Error SyntaxError: Unexpected token, expected: ':'.  */
108/* @@? 47:5 Error SyntaxError: Invalid left-hand side in array destructuring pattern  */
109/* @@? 51:31 Error SyntaxError: Getter must not have formal parameters  */
110/* @@? 52:16 Error SyntaxError: Setter must have exactly one formal parameter  */
111/* @@? 56:6 Error SyntaxError: Unexpected token  */
112/* @@? 56:8 Error SyntaxError: Unexpected identifier  */
113/* @@? 56:8 Error SyntaxError: Unexpected token, expected: ':'.  */
114/* @@? 56:10 Error SyntaxError: Unexpected token, expected an identifier.  */
115/* @@? 56:13 Error SyntaxError: Unexpected token, expected ',' or '}'  */
116/* @@? 57:1 Error SyntaxError: Missing initializer in destructuring declaration  */
117/* @@? 57:7 Error SyntaxError: Object pattern can't contain methods */
118/* @@? 57:5 Error SyntaxError: Invalid left-hand side in array destructuring pattern */
119/* @@? 58:6 Error SyntaxError: Unexpected token, expected an identifier. */
120/* @@? 60:23 Error SyntaxError: Invalid left-hand side in array destructuring pattern */
121/* @@? 62:33 Error SyntaxError: Invalid destructuring assignment target */
122/* @@? 62:33 Error SyntaxError: Unexpected ArrowParameter element */
123/* @@? 63:20 Error SyntaxError: Invalid destructuring assignment target */
124/* @@? 63:20 Error SyntaxError: Unexpected ArrowParameter element */
125/* @@? 64:16 Error SyntaxError: Unexpected token, expected ',' or ']' */
126/* @@? 65:13 Error SyntaxError: Invalid destructuring assignment target */
127/* @@? 65:13 Error SyntaxError: Unexpected ArrowParameter element */
128/* @@? 66:7 Error SyntaxError: Unexpected token, expected: ')'. */
129/* @@? 66:10 Error SyntaxError: Rest parameter must be the last formal parameter. */
130/* @@? 66:10 Error SyntaxError: Unexpected token, expected: '=>'. */
131/* @@? 66:21 Error SyntaxError: Unexpected token ')'. */
132/* @@? 66:21 Error SyntaxError: Unexpected token: ')'. */
133/* @@? 66:23 Error SyntaxError: Unexpected token: '=>'. */
134/* @@? 67:10 Error SyntaxError: Unexpected token, expected: '=>'. */
135/* @@? 67:23 Error SyntaxError: Unexpected token, arrow (=>) */
136/* @@? 68:27 Error SyntaxError: Invalid rest element. */
137/* @@? 68:27 Error SyntaxError: Unexpected ArrowParameter element */
138/* @@? 69:21 Error SyntaxError: await is not allowed in arrow function parameters */
139/* @@? 69:21 Error SyntaxError: Unexpected ArrowParameter element */
140/* @@? 70:15 Error SyntaxError: Unexpected token ']'. */
141/* @@? 70:15 Error SyntaxError: Unexpected token: ']'. */
142/* @@? 143:1 Error SyntaxError: Unexpected token, expected: '}'. */
143