@@ -1999,10 +1999,8 @@ func (node *Token) Clone(f NodeFactoryCoercible) *Node {
1999
1999
2000
2000
func (node * Token ) computeSubtreeFacts () SubtreeFacts {
2001
2001
switch node .Kind {
2002
- case KindAsyncKeyword :
2003
- return SubtreeContainsES2017 | SubtreeContainsES2018
2004
2002
case KindUsingKeyword :
2005
- return SubtreeContainsESNext
2003
+ return SubtreeContainsUsing
2006
2004
case KindPublicKeyword ,
2007
2005
KindPrivateKeyword ,
2008
2006
KindProtectedKeyword ,
@@ -2029,11 +2027,11 @@ func (node *Token) computeSubtreeFacts() SubtreeFacts {
2029
2027
case KindAccessorKeyword :
2030
2028
return SubtreeContainsClassFields
2031
2029
case KindAsteriskAsteriskToken , KindAsteriskAsteriskEqualsToken :
2032
- return SubtreeContainsES2016
2030
+ return SubtreeContainsExponentiationOperator
2033
2031
case KindQuestionQuestionToken , KindQuestionDotToken :
2034
- return SubtreeContainsES2020
2032
+ return SubtreeContainsOptionalChaining
2035
2033
case KindQuestionQuestionEqualsToken , KindBarBarEqualsToken , KindAmpersandAmpersandEqualsToken :
2036
- return SubtreeContainsES2021
2034
+ return SubtreeContainsLogicalAssignments
2037
2035
}
2038
2036
return SubtreeFactsNone
2039
2037
}
@@ -2930,7 +2928,7 @@ func (node *CatchClause) computeSubtreeFacts() SubtreeFacts {
2930
2928
res := propagateSubtreeFacts (node .VariableDeclaration ) |
2931
2929
propagateSubtreeFacts (node .Block )
2932
2930
if node .VariableDeclaration == nil {
2933
- res |= SubtreeContainsES2019
2931
+ res |= SubtreeContainsMissingCatchClauseVariable
2934
2932
}
2935
2933
return res
2936
2934
}
@@ -3224,7 +3222,7 @@ func (node *VariableDeclarationList) Clone(f NodeFactoryCoercible) *Node {
3224
3222
3225
3223
func (node * VariableDeclarationList ) computeSubtreeFacts () SubtreeFacts {
3226
3224
return propagateNodeListSubtreeFacts (node .Declarations , propagateSubtreeFacts ) |
3227
- core .IfElse (node .Flags & NodeFlagsUsing != 0 , SubtreeContainsESNext , SubtreeFactsNone )
3225
+ core .IfElse (node .Flags & NodeFlagsUsing != 0 , SubtreeContainsUsing , SubtreeFactsNone )
3228
3226
}
3229
3227
3230
3228
func (node * VariableDeclarationList ) propagateSubtreeFacts () SubtreeFacts {
@@ -3516,8 +3514,8 @@ func (node *FunctionDeclaration) computeSubtreeFacts() SubtreeFacts {
3516
3514
propagateNodeListSubtreeFacts (node .Parameters , propagateSubtreeFacts ) |
3517
3515
propagateEraseableSyntaxSubtreeFacts (node .Type ) |
3518
3516
propagateSubtreeFacts (node .Body ) |
3519
- core .IfElse (isAsync && isGenerator , SubtreeContainsES2018 , SubtreeFactsNone ) |
3520
- core .IfElse (isAsync && ! isGenerator , SubtreeContainsES2017 , SubtreeFactsNone )
3517
+ core .IfElse (isAsync && isGenerator , SubtreeContainsForAwaitOrAsyncGenerator , SubtreeFactsNone ) |
3518
+ core .IfElse (isAsync && ! isGenerator , SubtreeContainsAnyAwait , SubtreeFactsNone )
3521
3519
}
3522
3520
}
3523
3521
@@ -5219,8 +5217,8 @@ func (node *MethodDeclaration) computeSubtreeFacts() SubtreeFacts {
5219
5217
propagateNodeListSubtreeFacts (node .Parameters , propagateSubtreeFacts ) |
5220
5218
propagateSubtreeFacts (node .Body ) |
5221
5219
propagateEraseableSyntaxSubtreeFacts (node .Type ) |
5222
- core .IfElse (isAsync && isGenerator , SubtreeContainsES2018 , SubtreeFactsNone ) |
5223
- core .IfElse (isAsync && ! isGenerator , SubtreeContainsES2017 , SubtreeFactsNone )
5220
+ core .IfElse (isAsync && isGenerator , SubtreeContainsForAwaitOrAsyncGenerator , SubtreeFactsNone ) |
5221
+ core .IfElse (isAsync && ! isGenerator , SubtreeContainsAnyAwait , SubtreeFactsNone )
5224
5222
}
5225
5223
}
5226
5224
@@ -5524,7 +5522,7 @@ func (node *BigIntLiteral) Clone(f NodeFactoryCoercible) *Node {
5524
5522
}
5525
5523
5526
5524
func (node * BigIntLiteral ) computeSubtreeFacts () SubtreeFacts {
5527
- return SubtreeContainsES2020
5525
+ return SubtreeFactsNone // `bigint` is not downleveled in any way
5528
5526
}
5529
5527
5530
5528
func IsBigIntLiteral (node * Node ) bool {
@@ -5802,7 +5800,7 @@ func (node *ArrowFunction) computeSubtreeFacts() SubtreeFacts {
5802
5800
propagateNodeListSubtreeFacts (node .Parameters , propagateSubtreeFacts ) |
5803
5801
propagateEraseableSyntaxSubtreeFacts (node .Type ) |
5804
5802
propagateSubtreeFacts (node .Body ) |
5805
- core .IfElse (node .ModifierFlags ()& ModifierFlagsAsync != 0 , SubtreeContainsES2017 , SubtreeFactsNone )
5803
+ core .IfElse (node .ModifierFlags ()& ModifierFlagsAsync != 0 , SubtreeContainsAnyAwait , SubtreeFactsNone )
5806
5804
}
5807
5805
5808
5806
func (node * ArrowFunction ) propagateSubtreeFacts () SubtreeFacts {
@@ -5872,8 +5870,8 @@ func (node *FunctionExpression) computeSubtreeFacts() SubtreeFacts {
5872
5870
propagateNodeListSubtreeFacts (node .Parameters , propagateSubtreeFacts ) |
5873
5871
propagateEraseableSyntaxSubtreeFacts (node .Type ) |
5874
5872
propagateSubtreeFacts (node .Body ) |
5875
- core .IfElse (isAsync && isGenerator , SubtreeContainsES2018 , SubtreeFactsNone ) |
5876
- core .IfElse (isAsync && ! isGenerator , SubtreeContainsES2017 , SubtreeFactsNone )
5873
+ core .IfElse (isAsync && isGenerator , SubtreeContainsForAwaitOrAsyncGenerator , SubtreeFactsNone ) |
5874
+ core .IfElse (isAsync && ! isGenerator , SubtreeContainsAnyAwait , SubtreeFactsNone )
5877
5875
}
5878
5876
5879
5877
func (node * FunctionExpression ) propagateSubtreeFacts () SubtreeFacts {
@@ -6283,8 +6281,7 @@ func (node *MetaProperty) Name() *DeclarationName {
6283
6281
}
6284
6282
6285
6283
func (node * MetaProperty ) computeSubtreeFacts () SubtreeFacts {
6286
- return propagateSubtreeFacts (node .name ) |
6287
- core .IfElse (node .KeywordToken == KindImportKeyword , SubtreeContainsES2020 , SubtreeFactsNone )
6284
+ return propagateSubtreeFacts (node .name ) // `import.meta` is not downleveled in any way
6288
6285
}
6289
6286
6290
6287
func IsMetaProperty (node * Node ) bool {
@@ -6943,7 +6940,7 @@ func (node *AwaitExpression) Clone(f NodeFactoryCoercible) *Node {
6943
6940
}
6944
6941
6945
6942
func (node * AwaitExpression ) computeSubtreeFacts () SubtreeFacts {
6946
- return propagateSubtreeFacts (node .Expression ) | SubtreeContainsES2017 | SubtreeContainsES2018 | SubtreeContainsAwait
6943
+ return propagateSubtreeFacts (node .Expression ) | SubtreeContainsAwait
6947
6944
}
6948
6945
6949
6946
func IsAwaitExpression (node * Node ) bool {
0 commit comments