Skip to content

Commit 3a8e198

Browse files
committed
feat: add await to reserved identifiers
Co-authored-by: FnControlOption <[email protected]>
1 parent 966abe3 commit 3a8e198

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

grammar.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,10 @@ module.exports = grammar({
132132

133133
conflicts: $ => [
134134
[$.primary_expression, $._property_name],
135-
[$.primary_expression, $._property_name, $.arrow_function],
135+
[$.primary_expression, $.await_expression],
136+
[$.primary_expression, $.await_expression, $._property_name],
136137
[$.primary_expression, $.arrow_function],
138+
[$.primary_expression, $.arrow_function, $._property_name],
137139
[$.primary_expression, $.method_definition],
138140
[$.primary_expression, $.rest_pattern],
139141
[$.primary_expression, $.pattern],
@@ -1289,6 +1291,7 @@ module.exports = grammar({
12891291
'get',
12901292
'set',
12911293
'async',
1294+
'await',
12921295
'static',
12931296
'export',
12941297
'let',

test/corpus/expressions.txt

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ arr[0]`hello`;
158158
f`hello``goodbye`;
159159

160160
---
161+
161162
(program
162163
(expression_statement
163164
(call_expression
@@ -530,6 +531,7 @@ Objects with reserved words for keys
530531
set: function () {},
531532
static: true,
532533
async: true,
534+
await: true,
533535
};
534536

535537
---
@@ -558,6 +560,9 @@ Objects with reserved words for keys
558560
(pair
559561
(property_identifier)
560562
(true))
563+
(pair
564+
(property_identifier)
565+
(true))
561566
(pair
562567
(property_identifier)
563568
(true)))))
@@ -698,6 +703,7 @@ Classes with reserved words as methods
698703
class Foo {
699704
catch() {}
700705
finally() {}
706+
await() {}
701707
}
702708

703709
---
@@ -710,6 +716,10 @@ class Foo {
710716
(property_identifier)
711717
(formal_parameters)
712718
(statement_block))
719+
(method_definition
720+
(property_identifier)
721+
(formal_parameters)
722+
(statement_block))
713723
(method_definition
714724
(property_identifier)
715725
(formal_parameters)
@@ -2169,6 +2179,30 @@ yield db.users.where('[endpoint+email]')
21692179
(string
21702180
(string_fragment)))))))
21712181

2182+
============================================
2183+
Reserved words as identifiers
2184+
============================================
2185+
2186+
function await(await) { await: await (await + await (0)); }
2187+
2188+
---
2189+
2190+
(program
2191+
(function_declaration
2192+
(identifier)
2193+
(formal_parameters (identifier))
2194+
(statement_block
2195+
(labeled_statement
2196+
(statement_identifier)
2197+
(expression_statement
2198+
(await_expression
2199+
(parenthesized_expression
2200+
(await_expression
2201+
(unary_expression
2202+
(await_expression
2203+
(parenthesized_expression
2204+
(number))))))))))))
2205+
21722206
============================================
21732207
JSX
21742208
============================================

0 commit comments

Comments
 (0)