Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(86)

Side by Side Diff: pkg/compiler/lib/src/js_model/js_strategy.dart

Issue 2964783002: Reapply "Added for-loop variable tracking and regular closures/initializers captured variable track… (Closed)
Patch Set: . Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library dart2js.js_model.strategy; 5 library dart2js.js_model.strategy;
6 6
7 import '../closure.dart' show ClosureConversionTask; 7 import '../closure.dart' show ClosureConversionTask;
8 import '../common/tasks.dart'; 8 import '../common/tasks.dart';
9 import '../common_elements.dart'; 9 import '../common_elements.dart';
10 import '../compiler.dart'; 10 import '../compiler.dart';
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 covariant ClosedWorldBase closedWorld) { 56 covariant ClosedWorldBase closedWorld) {
57 KernelFrontEndStrategy strategy = _compiler.frontendStrategy; 57 KernelFrontEndStrategy strategy = _compiler.frontendStrategy;
58 KernelToElementMapForImpact elementMap = strategy.elementMap; 58 KernelToElementMapForImpact elementMap = strategy.elementMap;
59 _elementMap = new JsKernelToElementMap( 59 _elementMap = new JsKernelToElementMap(
60 _compiler.reporter, _compiler.environment, elementMap); 60 _compiler.reporter, _compiler.environment, elementMap);
61 _elementEnvironment = _elementMap.elementEnvironment; 61 _elementEnvironment = _elementMap.elementEnvironment;
62 _commonElements = _elementMap.commonElements; 62 _commonElements = _elementMap.commonElements;
63 JsToFrontendMap _map = _elementMap.jsToFrontendMap; 63 JsToFrontendMap _map = _elementMap.jsToFrontendMap;
64 BackendUsage backendUsage = 64 BackendUsage backendUsage =
65 new JsBackendUsage(_map, closedWorld.backendUsage); 65 new JsBackendUsage(_map, closedWorld.backendUsage);
66 _closureDataLookup = new KernelClosureConversionTask(
67 _compiler.measurer, _elementMap, _map, _globalLocalsMap);
66 NativeData nativeData = new JsNativeData(_map, closedWorld.nativeData); 68 NativeData nativeData = new JsNativeData(_map, closedWorld.nativeData);
67 InterceptorData interceptorData = new InterceptorDataImpl( 69 InterceptorData interceptorData = new InterceptorDataImpl(
68 nativeData, 70 nativeData,
69 _commonElements, 71 _commonElements,
70 // TODO(johnniwinther): Convert these. 72 // TODO(johnniwinther): Convert these.
71 const {}, 73 const {},
72 new Set(), 74 new Set(),
73 new Set()); 75 new Set());
74 76
75 Map<ClassEntity, ClassHierarchyNode> classHierarchyNodes = 77 Map<ClassEntity, ClassHierarchyNode> classHierarchyNodes =
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 allTypedefs: new ImmutableEmptySet<TypedefElement>(), 146 allTypedefs: new ImmutableEmptySet<TypedefElement>(),
145 typesImplementedBySubclasses: null); 147 typesImplementedBySubclasses: null);
146 } 148 }
147 149
148 @override 150 @override
149 Sorter get sorter { 151 Sorter get sorter {
150 return _sorter ??= new KernelSorter(elementMap); 152 return _sorter ??= new KernelSorter(elementMap);
151 } 153 }
152 154
153 @override 155 @override
154 ClosureConversionTask get closureDataLookup => 156 ClosureConversionTask get closureDataLookup => _closureDataLookup;
155 _closureDataLookup ??= new KernelClosureConversionTask(
156 _compiler.measurer, elementMap, _globalLocalsMap);
157 157
158 @override 158 @override
159 SourceInformationStrategy get sourceInformationStrategy => 159 SourceInformationStrategy get sourceInformationStrategy =>
160 const JavaScriptSourceInformationStrategy(); 160 const JavaScriptSourceInformationStrategy();
161 161
162 @override 162 @override
163 SsaBuilder createSsaBuilder(CompilerTask task, JavaScriptBackend backend, 163 SsaBuilder createSsaBuilder(CompilerTask task, JavaScriptBackend backend,
164 SourceInformationStrategy sourceInformationStrategy) { 164 SourceInformationStrategy sourceInformationStrategy) {
165 return new KernelSsaBuilder( 165 return new KernelSsaBuilder(
166 task, backend.compiler, elementMap, _globalLocalsMap); 166 task, backend.compiler, elementMap, _globalLocalsMap);
(...skipping 10 matching lines...) Expand all
177 ClosedWorld closedWorld, 177 ClosedWorld closedWorld,
178 SelectorConstraintsStrategy selectorConstraintsStrategy) { 178 SelectorConstraintsStrategy selectorConstraintsStrategy) {
179 return new KernelCodegenWorldBuilder( 179 return new KernelCodegenWorldBuilder(
180 elementMap, 180 elementMap,
181 closedWorld.elementEnvironment, 181 closedWorld.elementEnvironment,
182 nativeBasicData, 182 nativeBasicData,
183 closedWorld, 183 closedWorld,
184 selectorConstraintsStrategy); 184 selectorConstraintsStrategy);
185 } 185 }
186 } 186 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/js_model/closure_visitors.dart ('k') | pkg/compiler/lib/src/kernel/element_map_impl.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698