mirror of
https://github.com/dart-lang/sdk
synced 2024-09-18 21:01:20 +00:00
[dartdevc] Clearing labeled statement caches before entering inline JS while statements.
Change-Id: I249913cebba553b8fad8a7646688807a968c2e85 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/180443 Reviewed-by: Nicholas Shahan <nshahan@google.com> Commit-Queue: Mark Zhou <markzipan@google.com>
This commit is contained in:
parent
e8b7fe9ca2
commit
0d275a6b7c
|
@ -3989,7 +3989,12 @@ class ProgramCompiler extends ComputeOnceConstantVisitor<js_ast.Expression>
|
|||
[_visitExpression(node.iterable)]);
|
||||
|
||||
var iter = _emitTemporaryId('iter');
|
||||
return js.statement(
|
||||
|
||||
var savedContinueTargets = _currentContinueTargets;
|
||||
var savedBreakTargets = _currentBreakTargets;
|
||||
_currentContinueTargets = <LabeledStatement>[];
|
||||
_currentBreakTargets = <LabeledStatement>[];
|
||||
var awaitForStmt = js.statement(
|
||||
'{'
|
||||
' let # = #;'
|
||||
' try {'
|
||||
|
@ -4007,6 +4012,9 @@ class ProgramCompiler extends ComputeOnceConstantVisitor<js_ast.Expression>
|
|||
js_ast.Yield(js.call('#.cancel()', iter))
|
||||
..sourceInformation = _nodeStart(node.variable)
|
||||
]);
|
||||
_currentContinueTargets = savedContinueTargets;
|
||||
_currentBreakTargets = savedBreakTargets;
|
||||
return awaitForStmt;
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
Loading…
Reference in a new issue