| Index: pkg/compiler/lib/src/js_model/closure_visitors.dart
|
| diff --git a/pkg/compiler/lib/src/js_model/closure_visitors.dart b/pkg/compiler/lib/src/js_model/closure_visitors.dart
|
| index 89fb18c1451a9493e626b1f2708b68a6c579620b..a089defc3827a327e0927a4b884b3a6f1f22cc4b 100644
|
| --- a/pkg/compiler/lib/src/js_model/closure_visitors.dart
|
| +++ b/pkg/compiler/lib/src/js_model/closure_visitors.dart
|
| @@ -103,9 +103,13 @@ class CapturedScopeBuilder extends ir.Visitor {
|
| }
|
|
|
| assert(_scopeInfoMap[_nodeToEntity(node)] != null);
|
| + KernelScopeInfo from = _scopeInfoMap[_nodeToEntity(node)];
|
| _scopesCapturedInClosureMap[node] = new KernelCapturedScope(
|
| capturedVariablesForScope,
|
| _nodeToEntity(_executableContext),
|
| + from.localsUsedInTryOrSync,
|
| + from.freeVariables,
|
| + from.localsMap,
|
| thisLocal);
|
| }
|
| }
|
| @@ -221,6 +225,9 @@ class CapturedScopeBuilder extends ir.Visitor {
|
| scope.boxedVariables,
|
| boxedLoopVariables,
|
| scope.context,
|
| + scope.localsUsedInTryOrSync,
|
| + scope.freeVariables,
|
| + _localsMap,
|
| scope.thisLocal);
|
| }
|
|
|
| @@ -233,7 +240,7 @@ class CapturedScopeBuilder extends ir.Visitor {
|
| // field, constructor, or method that is being analyzed.
|
| _isInsideClosure = _outermostNode != null;
|
| _executableContext = node;
|
| - _currentScopeInfo = new KernelScopeInfo(_nodeToThisLocal(node));
|
| + _currentScopeInfo = new KernelScopeInfo(_nodeToThisLocal(node), _localsMap);
|
| if (_isInsideClosure) {
|
| _closuresToGenerate[node] = _currentScopeInfo;
|
| } else {
|
|
|