Skip to content

Commit c7ce39f

Browse files
committed
Flip order
1 parent e47fd1f commit c7ce39f

1 file changed

Lines changed: 83 additions & 83 deletions

File tree

internal/transformers/estransforms/forawait.go

Lines changed: 83 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,24 @@ func (tx *forawaitTransformer) trackSuperAccess(node *ast.Node) {
101101
}
102102
}
103103

104+
func (tx *forawaitTransformer) affectsSubtree(excludeFacts forAwaitHierarchyFacts, includeFacts forAwaitHierarchyFacts) bool {
105+
return tx.forAwaitHierarchyFacts != (tx.forAwaitHierarchyFacts&^excludeFacts | includeFacts)
106+
}
107+
108+
// enterSubtree sets the HierarchyFacts for this node prior to visiting this node's subtree,
109+
// returning the facts set prior to modification.
110+
func (tx *forawaitTransformer) enterSubtree(excludeFacts forAwaitHierarchyFacts, includeFacts forAwaitHierarchyFacts) forAwaitHierarchyFacts {
111+
ancestorFacts := tx.forAwaitHierarchyFacts
112+
tx.forAwaitHierarchyFacts = (tx.forAwaitHierarchyFacts&^excludeFacts | includeFacts) & forAwaitHierarchyFactsAncestorFactsMask
113+
return ancestorFacts
114+
}
115+
116+
// exitSubtree restores the HierarchyFacts for this node's ancestor after visiting this node's
117+
// subtree.
118+
func (tx *forawaitTransformer) exitSubtree(ancestorFacts forAwaitHierarchyFacts) {
119+
tx.forAwaitHierarchyFacts = ancestorFacts
120+
}
121+
104122
func (tx *forawaitTransformer) visit(node *ast.Node) *ast.Node {
105123
if node.SubtreeFacts()&ast.SubtreeContainsForAwaitOrAsyncGenerator == 0 {
106124
if tx.capturedSuperProperties != nil {
@@ -145,22 +163,13 @@ func (tx *forawaitTransformer) visit(node *ast.Node) *ast.Node {
145163
}
146164
}
147165

148-
func (tx *forawaitTransformer) affectsSubtree(excludeFacts forAwaitHierarchyFacts, includeFacts forAwaitHierarchyFacts) bool {
149-
return tx.forAwaitHierarchyFacts != (tx.forAwaitHierarchyFacts&^excludeFacts | includeFacts)
150-
}
151-
152-
// enterSubtree sets the HierarchyFacts for this node prior to visiting this node's subtree,
153-
// returning the facts set prior to modification.
154-
func (tx *forawaitTransformer) enterSubtree(excludeFacts forAwaitHierarchyFacts, includeFacts forAwaitHierarchyFacts) forAwaitHierarchyFacts {
155-
ancestorFacts := tx.forAwaitHierarchyFacts
156-
tx.forAwaitHierarchyFacts = (tx.forAwaitHierarchyFacts&^excludeFacts | includeFacts) & forAwaitHierarchyFactsAncestorFactsMask
157-
return ancestorFacts
158-
}
159-
160-
// exitSubtree restores the HierarchyFacts for this node's ancestor after visiting this node's
161-
// subtree.
162-
func (tx *forawaitTransformer) exitSubtree(ancestorFacts forAwaitHierarchyFacts) {
163-
tx.forAwaitHierarchyFacts = ancestorFacts
166+
func (tx *forawaitTransformer) visitorNoAsyncModifier() *ast.NodeVisitor {
167+
return tx.EmitContext().NewNodeVisitor(func(node *ast.Node) *ast.Node {
168+
if node.Kind == ast.KindAsyncKeyword {
169+
return nil
170+
}
171+
return node
172+
})
164173
}
165174

166175
func (tx *forawaitTransformer) doWithHierarchyFacts(cb func(*forawaitTransformer, *ast.Node) *ast.Node, node *ast.Node, excludeFacts forAwaitHierarchyFacts, includeFacts forAwaitHierarchyFacts) *ast.Node {
@@ -177,18 +186,6 @@ func (tx *forawaitTransformer) visitDefault(node *ast.Node) *ast.Node {
177186
return tx.Visitor().VisitEachChild(node)
178187
}
179188

180-
func (tx *forawaitTransformer) visitSourceFile(node *ast.SourceFile) *ast.Node {
181-
ancestorFacts := tx.enterSubtree(
182-
forAwaitHierarchyFactsSourceFileExcludes,
183-
forAwaitHierarchyFactsStrictModeSourceFileIncludes,
184-
)
185-
tx.exportedVariableStatement = false
186-
visited := tx.Visitor().VisitEachChild(node.AsNode())
187-
tx.EmitContext().AddEmitHelper(visited, tx.EmitContext().ReadEmitHelpers()...)
188-
tx.exitSubtree(ancestorFacts)
189-
return visited
190-
}
191-
192189
func (tx *forawaitTransformer) visitAwaitExpression(node *ast.AwaitExpression) *ast.Node {
193190
if tx.enclosingFunctionFlags&ast.FunctionFlagsAsync != 0 && tx.enclosingFunctionFlags&ast.FunctionFlagsGenerator != 0 {
194191
result := tx.Factory().NewYieldExpression(
@@ -303,6 +300,18 @@ func (tx *forawaitTransformer) restoreEnclosingLabel(node *ast.Node, outermostLa
303300
)
304301
}
305302

303+
func (tx *forawaitTransformer) visitSourceFile(node *ast.SourceFile) *ast.Node {
304+
ancestorFacts := tx.enterSubtree(
305+
forAwaitHierarchyFactsSourceFileExcludes,
306+
forAwaitHierarchyFactsStrictModeSourceFileIncludes,
307+
)
308+
tx.exportedVariableStatement = false
309+
visited := tx.Visitor().VisitEachChild(node.AsNode())
310+
tx.EmitContext().AddEmitHelper(visited, tx.EmitContext().ReadEmitHelpers()...)
311+
tx.exitSubtree(ancestorFacts)
312+
return visited
313+
}
314+
306315
// visitForOfStatement visits a ForOfStatement and converts it into a ES2015-compatible ForOfStatement.
307316
func (tx *forawaitTransformer) visitForOfStatement(node *ast.ForInOrOfStatement, outermostLabeledStatement *ast.LabeledStatement) *ast.Node {
308317
ancestorFacts := tx.enterSubtree(forAwaitHierarchyFactsIterationStatementExcludes, forAwaitHierarchyFactsIterationStatementIncludes)
@@ -316,16 +325,6 @@ func (tx *forawaitTransformer) visitForOfStatement(node *ast.ForInOrOfStatement,
316325
return result
317326
}
318327

319-
func (tx *forawaitTransformer) createDownlevelAwait(expression *ast.Node) *ast.Node {
320-
if tx.enclosingFunctionFlags&ast.FunctionFlagsGenerator != 0 {
321-
return tx.Factory().NewYieldExpression(
322-
nil, /*asteriskToken*/
323-
tx.Factory().NewAwaitHelper(expression),
324-
)
325-
}
326-
return tx.Factory().NewAwaitExpression(expression)
327-
}
328-
329328
func (tx *forawaitTransformer) convertForOfStatementHead(node *ast.ForInOrOfStatement, boundValue *ast.Node, nonUserCode *ast.Node) *ast.Node {
330329
f := tx.Factory()
331330
value := f.NewTempVariable()
@@ -389,6 +388,16 @@ func (tx *forawaitTransformer) createForOfBindingStatement(node *ast.Node, bound
389388
return statement
390389
}
391390

391+
func (tx *forawaitTransformer) createDownlevelAwait(expression *ast.Node) *ast.Node {
392+
if tx.enclosingFunctionFlags&ast.FunctionFlagsGenerator != 0 {
393+
return tx.Factory().NewYieldExpression(
394+
nil, /*asteriskToken*/
395+
tx.Factory().NewAwaitHelper(expression),
396+
)
397+
}
398+
return tx.Factory().NewAwaitExpression(expression)
399+
}
400+
392401
func (tx *forawaitTransformer) transformForAwaitOfStatement(node *ast.ForInOrOfStatement, outermostLabeledStatement *ast.LabeledStatement, ancestorFacts forAwaitHierarchyFacts) *ast.Node {
393402
f := tx.Factory()
394403
expression := tx.Visitor().VisitNode(node.Expression)
@@ -552,6 +561,42 @@ func (tx *forawaitTransformer) visitConstructorDeclaration(node *ast.Node) *ast.
552561
return updated
553562
}
554563

564+
func (tx *forawaitTransformer) visitGetAccessorDeclaration(node *ast.Node) *ast.Node {
565+
decl := node.AsGetAccessorDeclaration()
566+
savedEnclosingFunctionFlags := tx.enclosingFunctionFlags
567+
tx.enclosingFunctionFlags = ast.GetFunctionFlags(node)
568+
updated := tx.Factory().UpdateGetAccessorDeclaration(
569+
decl,
570+
decl.Modifiers(),
571+
tx.Visitor().VisitNode(decl.Name()),
572+
nil, /*typeParameters*/
573+
tx.EmitContext().VisitParameters(decl.Parameters, tx.Visitor()),
574+
nil, /*returnType*/
575+
nil, /*fullSignature*/
576+
tx.EmitContext().VisitFunctionBody(node.Body(), tx.Visitor()),
577+
)
578+
tx.enclosingFunctionFlags = savedEnclosingFunctionFlags
579+
return updated
580+
}
581+
582+
func (tx *forawaitTransformer) visitSetAccessorDeclaration(node *ast.Node) *ast.Node {
583+
decl := node.AsSetAccessorDeclaration()
584+
savedEnclosingFunctionFlags := tx.enclosingFunctionFlags
585+
tx.enclosingFunctionFlags = ast.GetFunctionFlags(node)
586+
updated := tx.Factory().UpdateSetAccessorDeclaration(
587+
decl,
588+
decl.Modifiers(),
589+
tx.Visitor().VisitNode(decl.Name()),
590+
nil, /*typeParameters*/
591+
tx.EmitContext().VisitParameters(decl.Parameters, tx.Visitor()),
592+
nil, /*returnType*/
593+
nil, /*fullSignature*/
594+
tx.EmitContext().VisitFunctionBody(node.Body(), tx.Visitor()),
595+
)
596+
tx.enclosingFunctionFlags = savedEnclosingFunctionFlags
597+
return updated
598+
}
599+
555600
func (tx *forawaitTransformer) visitMethodDeclaration(node *ast.Node) *ast.Node {
556601
decl := node.AsMethodDeclaration()
557602
savedEnclosingFunctionFlags := tx.enclosingFunctionFlags
@@ -597,42 +642,6 @@ func (tx *forawaitTransformer) visitMethodDeclaration(node *ast.Node) *ast.Node
597642
return updated
598643
}
599644

600-
func (tx *forawaitTransformer) visitGetAccessorDeclaration(node *ast.Node) *ast.Node {
601-
decl := node.AsGetAccessorDeclaration()
602-
savedEnclosingFunctionFlags := tx.enclosingFunctionFlags
603-
tx.enclosingFunctionFlags = ast.GetFunctionFlags(node)
604-
updated := tx.Factory().UpdateGetAccessorDeclaration(
605-
decl,
606-
decl.Modifiers(),
607-
tx.Visitor().VisitNode(decl.Name()),
608-
nil, /*typeParameters*/
609-
tx.EmitContext().VisitParameters(decl.Parameters, tx.Visitor()),
610-
nil, /*returnType*/
611-
nil, /*fullSignature*/
612-
tx.EmitContext().VisitFunctionBody(node.Body(), tx.Visitor()),
613-
)
614-
tx.enclosingFunctionFlags = savedEnclosingFunctionFlags
615-
return updated
616-
}
617-
618-
func (tx *forawaitTransformer) visitSetAccessorDeclaration(node *ast.Node) *ast.Node {
619-
decl := node.AsSetAccessorDeclaration()
620-
savedEnclosingFunctionFlags := tx.enclosingFunctionFlags
621-
tx.enclosingFunctionFlags = ast.GetFunctionFlags(node)
622-
updated := tx.Factory().UpdateSetAccessorDeclaration(
623-
decl,
624-
decl.Modifiers(),
625-
tx.Visitor().VisitNode(decl.Name()),
626-
nil, /*typeParameters*/
627-
tx.EmitContext().VisitParameters(decl.Parameters, tx.Visitor()),
628-
nil, /*returnType*/
629-
nil, /*fullSignature*/
630-
tx.EmitContext().VisitFunctionBody(node.Body(), tx.Visitor()),
631-
)
632-
tx.enclosingFunctionFlags = savedEnclosingFunctionFlags
633-
return updated
634-
}
635-
636645
func (tx *forawaitTransformer) visitFunctionDeclaration(node *ast.Node) *ast.Node {
637646
decl := node.AsFunctionDeclaration()
638647
savedEnclosingFunctionFlags := tx.enclosingFunctionFlags
@@ -859,15 +868,6 @@ func (tx *forawaitTransformer) transformAsyncGeneratorFunctionBody(node *ast.Nod
859868
return block
860869
}
861870

862-
func (tx *forawaitTransformer) visitorNoAsyncModifier() *ast.NodeVisitor {
863-
return tx.EmitContext().NewNodeVisitor(func(node *ast.Node) *ast.Node {
864-
if node.Kind == ast.KindAsyncKeyword {
865-
return nil
866-
}
867-
return node
868-
})
869-
}
870-
871871
func (tx *forawaitTransformer) superPropertyVisitor(node *ast.Node) *ast.Node {
872872
switch node.Kind {
873873
case ast.KindFunctionExpression, ast.KindFunctionDeclaration,

0 commit comments

Comments
 (0)