@@ -12,6 +12,21 @@ module.exports = grammar({
12
12
/ [ \s \p{ Zs} \uFEFF \u2060 \u200B ] / ,
13
13
] ,
14
14
15
+ reserved : $ => [
16
+ 'const' ,
17
+ 'do' ,
18
+ 'else' ,
19
+ 'finally' ,
20
+ 'for' ,
21
+ 'function' ,
22
+ 'if' ,
23
+ 'let' ,
24
+ 'return' ,
25
+ 'throw' ,
26
+ 'var' ,
27
+ 'while' ,
28
+ ] ,
29
+
15
30
supertypes : $ => [
16
31
$ . statement ,
17
32
$ . declaration ,
@@ -488,10 +503,10 @@ module.exports = grammar({
488
503
$ . pair ,
489
504
$ . spread_element ,
490
505
$ . method_definition ,
491
- alias (
506
+ reserved ( [ ] , alias (
492
507
choice ( $ . identifier , $ . _reserved_identifier ) ,
493
508
$ . shorthand_property_identifier
494
- )
509
+ ) )
495
510
) ) ) ,
496
511
'}'
497
512
) ) ,
@@ -502,10 +517,10 @@ module.exports = grammar({
502
517
$ . pair_pattern ,
503
518
$ . rest_pattern ,
504
519
$ . object_assignment_pattern ,
505
- alias (
520
+ reserved ( [ ] , alias (
506
521
choice ( $ . identifier , $ . _reserved_identifier ) ,
507
522
$ . shorthand_property_identifier_pattern
508
- )
523
+ ) )
509
524
) ) ) ,
510
525
'}'
511
526
) ) ,
@@ -517,10 +532,13 @@ module.exports = grammar({
517
532
) ,
518
533
519
534
object_assignment_pattern : $ => seq (
520
- field ( 'left' , choice (
521
- alias ( choice ( $ . _reserved_identifier , $ . identifier ) , $ . shorthand_property_identifier_pattern ) ,
522
- $ . _destructuring_pattern
523
- ) ) ,
535
+ field ( 'left' , reserved ( [ ] , choice (
536
+ $ . _destructuring_pattern ,
537
+ alias (
538
+ choice ( $ . _reserved_identifier , $ . identifier ) ,
539
+ $ . shorthand_property_identifier_pattern
540
+ ) ,
541
+ ) ) ) ,
524
542
'=' ,
525
543
field ( 'right' , $ . expression )
526
544
) ,
@@ -737,7 +755,7 @@ module.exports = grammar({
737
755
choice ( '.' , '?.' ) ,
738
756
field ( 'property' , choice (
739
757
$ . private_property_identifier ,
740
- alias ( $ . identifier , $ . property_identifier ) ) )
758
+ reserved ( [ ] , alias ( $ . identifier , $ . property_identifier ) ) ) )
741
759
) ) ,
742
760
743
761
subscript_expression : $ => prec . right ( 'member' , seq (
@@ -1118,7 +1136,7 @@ module.exports = grammar({
1118
1136
field ( 'value' , choice ( $ . pattern , $ . assignment_pattern ) )
1119
1137
) ,
1120
1138
1121
- _property_name : $ => choice (
1139
+ _property_name : $ => reserved ( [ ] , choice (
1122
1140
alias ( choice (
1123
1141
$ . identifier ,
1124
1142
$ . _reserved_identifier
@@ -1127,7 +1145,7 @@ module.exports = grammar({
1127
1145
$ . string ,
1128
1146
$ . number ,
1129
1147
$ . computed_property_name
1130
- ) ,
1148
+ ) ) ,
1131
1149
1132
1150
computed_property_name : $ => seq (
1133
1151
'[' ,
0 commit comments