@@ -156,16 +156,16 @@ namespace ts {
156156 }
157157
158158 function visitLabeledStatement ( node : LabeledStatement ) : VisitResult < Statement > {
159- const enclosedStatement = getEnclosedStatement ( node ) ;
160- if ( enclosedStatement . statement . kind === SyntaxKind . ForOfStatement &&
161- ( < ForOfStatement > enclosedStatement . statement ) . awaitModifier ) {
162- return visitForOfStatement ( < ForOfStatement > node . statement , enclosedStatement . enclosingLabeledStatements ) ;
159+ const statement = unwrapInnermostStatmentOfLabel ( node ) ;
160+ if ( statement . kind === SyntaxKind . ForOfStatement &&
161+ ( < ForOfStatement > statement ) . awaitModifier ) {
162+ return visitForOfStatement ( < ForOfStatement > statement , node ) ;
163163 }
164164
165- return restoreEnclosingLabels ( visitEachChild ( node , visitor , context ) , enclosedStatement . enclosingLabeledStatements ) ;
165+ return restoreEnclosingLabel ( visitEachChild ( node , visitor , context ) , node ) ;
166166 }
167167
168- function visitForOfStatement ( node : ForOfStatement , enclosingLabeledStatements : LabeledStatement [ ] ) : VisitResult < Statement > {
168+ function visitForOfStatement ( node : ForOfStatement , outermostLabeledStatement : LabeledStatement ) : VisitResult < Statement > {
169169 if ( ! node . awaitModifier ) return visitEachChild ( node , visitor , context ) ;
170170
171171 let bodyLocation : TextRange ;
@@ -247,7 +247,7 @@ namespace ts {
247247 EmitFlags . NoTokenTrailingSourceMaps
248248 ) ;
249249
250- outerStatement = restoreEnclosingLabels ( outerStatement , enclosingLabeledStatements ) ;
250+ outerStatement = restoreEnclosingLabel ( outerStatement , outermostLabeledStatement ) ;
251251 return closeAsyncIterator ( outerStatement , iteratorRecord ) ;
252252 }
253253
0 commit comments