JsModule {
bom_token: missing (optional),
interpreter_token: missing (optional),
directives: JsDirectiveList [],
items: JsModuleItemList [
JsExpressionStatement {
expression: JsBogusExpression {
items: [
JsBogus {
items: [
IDENT@0..5 "yield" [] [],
],
},
],
},
semicolon_token: SEMICOLON@5..6 ";" [] [],
},
JsExpressionStatement {
expression: JsAwaitExpression {
await_token: AWAIT_KW@6..12 "await" [Newline("\n")] [],
argument: missing (required),
},
semicolon_token: SEMICOLON@12..13 ";" [] [],
},
JsFunctionDeclaration {
async_token: ASYNC_KW@13..20 "async" [Newline("\n")] [Whitespace(" ")],
function_token: FUNCTION_KW@20..29 "function" [] [Whitespace(" ")],
star_token: missing (optional),
id: JsIdentifierBinding {
name_token: IDENT@29..33 "test" [] [],
},
type_parameters: missing (optional),
parameters: JsParameters {
l_paren_token: L_PAREN@33..34 "(" [] [],
items: JsParameterList [
JsFormalParameter {
decorators: JsDecoratorList [],
binding: JsBogusBinding {
items: [
IDENT@34..39 "await" [] [],
],
},
question_mark_token: missing (optional),
type_annotation: missing (optional),
initializer: missing (optional),
},
],
r_paren_token: R_PAREN@39..41 ")" [] [Whitespace(" ")],
},
return_type_annotation: missing (optional),
body: JsFunctionBody {
l_curly_token: L_CURLY@41..42 "{" [] [],
directives: JsDirectiveList [],
statements: JsStatementList [],
r_curly_token: R_CURLY@42..43 "}" [] [],
},
},
JsFunctionDeclaration {
async_token: missing (optional),
function_token: FUNCTION_KW@43..52 "function" [Newline("\n")] [],
star_token: STAR@52..54 "*" [] [Whitespace(" ")],
id: JsIdentifierBinding {
name_token: IDENT@54..58 "test" [] [],
},
type_parameters: missing (optional),
parameters: JsParameters {
l_paren_token: L_PAREN@58..59 "(" [] [],
items: JsParameterList [
JsFormalParameter {
decorators: JsDecoratorList [],
binding: JsBogusBinding {
items: [
IDENT@59..64 "yield" [] [],
],
},
question_mark_token: missing (optional),
type_annotation: missing (optional),
initializer: missing (optional),
},
],
r_paren_token: R_PAREN@64..66 ")" [] [Whitespace(" ")],
},
return_type_annotation: missing (optional),
body: JsFunctionBody {
l_curly_token: L_CURLY@66..67 "{" [] [],
directives: JsDirectiveList [],
statements: JsStatementList [],
r_curly_token: R_CURLY@67..68 "}" [] [],
},
},
JsBogusStatement {
items: [
ENUM_KW@68..73 "enum" [Newline("\n")] [],
TsEnumMemberList [],
],
},
JsEmptyStatement {
semicolon_token: SEMICOLON@73..74 ";" [] [],
},
JsExpressionStatement {
expression: JsBogusExpression {
items: [
JsBogus {
items: [
IDENT@74..85 "implements" [Newline("\n")] [],
],
},
],
},
semicolon_token: SEMICOLON@85..86 ";" [] [],
},
JsExpressionStatement {
expression: JsBogusExpression {
items: [
JsBogus {
items: [
IDENT@86..96 "interface" [Newline("\n")] [],
],
},
],
},
semicolon_token: SEMICOLON@96..97 ";" [] [],
},
],
eof_token: EOF@97..98 "" [Newline("\n")] [],
}
0: JS_MODULE@0..98
0: (empty)
1: (empty)
2: JS_DIRECTIVE_LIST@0..0
3: JS_MODULE_ITEM_LIST@0..97
0: JS_EXPRESSION_STATEMENT@0..6
0: JS_BOGUS_EXPRESSION@0..5
0: JS_BOGUS@0..5
0: IDENT@0..5 "yield" [] []
1: SEMICOLON@5..6 ";" [] []
1: JS_EXPRESSION_STATEMENT@6..13
0: JS_AWAIT_EXPRESSION@6..12
0: AWAIT_KW@6..12 "await" [Newline("\n")] []
1: (empty)
1: SEMICOLON@12..13 ";" [] []
2: JS_FUNCTION_DECLARATION@13..43
0: ASYNC_KW@13..20 "async" [Newline("\n")] [Whitespace(" ")]
1: FUNCTION_KW@20..29 "function" [] [Whitespace(" ")]
2: (empty)
3: JS_IDENTIFIER_BINDING@29..33
0: IDENT@29..33 "test" [] []
4: (empty)
5: JS_PARAMETERS@33..41
0: L_PAREN@33..34 "(" [] []
1: JS_PARAMETER_LIST@34..39
0: JS_FORMAL_PARAMETER@34..39
0: JS_DECORATOR_LIST@34..34
1: JS_BOGUS_BINDING@34..39
0: IDENT@34..39 "await" [] []
2: (empty)
3: (empty)
4: (empty)
2: R_PAREN@39..41 ")" [] [Whitespace(" ")]
6: (empty)
7: JS_FUNCTION_BODY@41..43
0: L_CURLY@41..42 "{" [] []
1: JS_DIRECTIVE_LIST@42..42
2: JS_STATEMENT_LIST@42..42
3: R_CURLY@42..43 "}" [] []
3: JS_FUNCTION_DECLARATION@43..68
0: (empty)
1: FUNCTION_KW@43..52 "function" [Newline("\n")] []
2: STAR@52..54 "*" [] [Whitespace(" ")]
3: JS_IDENTIFIER_BINDING@54..58
0: IDENT@54..58 "test" [] []
4: (empty)
5: JS_PARAMETERS@58..66
0: L_PAREN@58..59 "(" [] []
1: JS_PARAMETER_LIST@59..64
0: JS_FORMAL_PARAMETER@59..64
0: JS_DECORATOR_LIST@59..59
1: JS_BOGUS_BINDING@59..64
0: IDENT@59..64 "yield" [] []
2: (empty)
3: (empty)
4: (empty)
2: R_PAREN@64..66 ")" [] [Whitespace(" ")]
6: (empty)
7: JS_FUNCTION_BODY@66..68
0: L_CURLY@66..67 "{" [] []
1: JS_DIRECTIVE_LIST@67..67
2: JS_STATEMENT_LIST@67..67
3: R_CURLY@67..68 "}" [] []
4: JS_BOGUS_STATEMENT@68..73
0: ENUM_KW@68..73 "enum" [Newline("\n")] []
1: TS_ENUM_MEMBER_LIST@73..73
5: JS_EMPTY_STATEMENT@73..74
0: SEMICOLON@73..74 ";" [] []
6: JS_EXPRESSION_STATEMENT@74..86
0: JS_BOGUS_EXPRESSION@74..85
0: JS_BOGUS@74..85
0: IDENT@74..85 "implements" [Newline("\n")] []
1: SEMICOLON@85..86 ";" [] []
7: JS_EXPRESSION_STATEMENT@86..97
0: JS_BOGUS_EXPRESSION@86..96
0: JS_BOGUS@86..96
0: IDENT@86..96 "interface" [Newline("\n")] []
1: SEMICOLON@96..97 ";" [] []
4: EOF@97..98 "" [Newline("\n")] []
--
identifier_err.js:1:1 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Illegal use of reserved keyword `yield` as an identifier in strict mode
> 1 │ yield;
│ ^^^^^
2 │ await;
3 │ async function test(await) {}
--
identifier_err.js:2:6 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Expected an unary expression but instead found ';'.
1 │ yield;
> 2 │ await;
│ ^
3 │ async function test(await) {}
4 │ function* test(yield) {}
i Expected an unary expression here.
1 │ yield;
> 2 │ await;
│ ^
3 │ async function test(await) {}
4 │ function* test(yield) {}
--
identifier_err.js:3:21 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Illegal use of `await` as an identifier in an async context
1 │ yield;
2 │ await;
> 3 │ async function test(await) {}
│ ^^^^^
4 │ function* test(yield) {}
5 │ enum;
--
identifier_err.js:4:16 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Illegal use of `yield` as an identifier in generator function
2 │ await;
3 │ async function test(await) {}
> 4 │ function* test(yield) {}
│ ^^^^^
5 │ enum;
6 │ implements;
--
identifier_err.js:5:1 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× 'enum's are a TypeScript only feature. Convert your file to a TypeScript file or remove the syntax.
3 │ async function test(await) {}
4 │ function* test(yield) {}
> 5 │ enum;
│ ^^^^
6 │ implements;
7 │ interface;
i TypeScript only syntax
--
identifier_err.js:6:1 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Illegal use of reserved keyword `implements` as an identifier in strict mode
4 │ function* test(yield) {}
5 │ enum;
> 6 │ implements;
│ ^^^^^^^^^^
7 │ interface;
8 │
--
identifier_err.js:7:1 parse ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
× Illegal use of reserved keyword `interface` as an identifier in strict mode
5 │ enum;
6 │ implements;
> 7 │ interface;
│ ^^^^^^^^^
8 │
--
yield;
await;
async function test(await) {}
function* test(yield) {}
enum;
implements;
interface;