| Index: dart/frog/leg/ssa/closure.dart
|
| diff --git a/dart/frog/leg/ssa/closure.dart b/dart/frog/leg/ssa/closure.dart
|
| index 98810d571a169d5bce9c597357d5d084f3b6b4d1..5156f65dac592b51627f4548132ebcf595ea51f2 100644
|
| --- a/dart/frog/leg/ssa/closure.dart
|
| +++ b/dart/frog/leg/ssa/closure.dart
|
| @@ -70,14 +70,6 @@ class ClosureData {
|
| bool isClosure() => closureElement !== null;
|
| }
|
|
|
| -Map<Node, ClosureData> _closureDataCache;
|
| -Map<Node, ClosureData> get closureDataCache() {
|
| - if (_closureDataCache === null) {
|
| - _closureDataCache = new HashMap<Node, ClosureData>();
|
| - }
|
| - return _closureDataCache;
|
| -}
|
| -
|
| class ClosureTranslator extends AbstractVisitor {
|
| final Compiler compiler;
|
| final TreeElements elements;
|
| @@ -107,7 +99,7 @@ class ClosureTranslator extends AbstractVisitor {
|
| ClosureData translate(Node node) {
|
| // Closures have already been analyzed when visiting the surrounding
|
| // method/function. This also shortcuts for bailout functions.
|
| - ClosureData cached = closureDataCache[node];
|
| + ClosureData cached = compiler.closureDataCache[node];
|
| if (cached !== null) return cached;
|
|
|
| visit(node);
|
| @@ -117,7 +109,7 @@ class ClosureTranslator extends AbstractVisitor {
|
| // The closures don't have their fields (in the closure class) set, either.
|
| updateClosures();
|
|
|
| - return closureDataCache[node];
|
| + return compiler.closureDataCache[node];
|
| }
|
|
|
| // This function runs through all of the existing closures and updates their
|
| @@ -129,7 +121,7 @@ class ClosureTranslator extends AbstractVisitor {
|
| // The captured variables that need to be stored in a field of the closure
|
| // class.
|
| Set<Element> fieldCaptures = new Set<Element>();
|
| - ClosureData data = closureDataCache[closure];
|
| + ClosureData data = compiler.closureDataCache[closure];
|
| Map<Element, Element> freeVariableMapping = data.freeVariableMapping;
|
| // We get a copy of the keys and iterate over it, to avoid modifications
|
| // to the map while iterating over it.
|
| @@ -377,7 +369,7 @@ class ClosureTranslator extends AbstractVisitor {
|
|
|
| attachCapturedScopeVariables(node);
|
|
|
| - closureDataCache[node] = closureData;
|
| + compiler.closureDataCache[node] = closureData;
|
|
|
| ClosureData savedClosureData = closureData;
|
| bool savedInsideClosure = insideClosure;
|
|
|