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

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

Issue 2969993002: Handle instance/super methods in js_model/model_test (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 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 45
46 KernelToElementMapForBuilding get elementMap { 46 KernelToElementMapForBuilding get elementMap {
47 assert(_elementMap != null, 47 assert(_elementMap != null,
48 "JsBackendStrategy.elementMap has not been created yet."); 48 "JsBackendStrategy.elementMap has not been created yet.");
49 return _elementMap; 49 return _elementMap;
50 } 50 }
51 51
52 GlobalLocalsMap get globalLocalsMapForTesting => _globalLocalsMap; 52 GlobalLocalsMap get globalLocalsMapForTesting => _globalLocalsMap;
53 53
54 @override 54 @override
55 ClosedWorldRefiner createClosedWorldRefiner(ClosedWorld closedWorld) { 55 ClosedWorldRefiner createClosedWorldRefiner(
56 covariant ClosedWorldBase closedWorld) {
56 KernelFrontEndStrategy strategy = _compiler.frontendStrategy; 57 KernelFrontEndStrategy strategy = _compiler.frontendStrategy;
57 KernelToElementMapForImpact elementMap = strategy.elementMap; 58 KernelToElementMapForImpact elementMap = strategy.elementMap;
58 _elementMap = new JsKernelToElementMap( 59 _elementMap = new JsKernelToElementMap(
59 _compiler.reporter, _compiler.environment, elementMap); 60 _compiler.reporter, _compiler.environment, elementMap);
60 _elementEnvironment = _elementMap.elementEnvironment; 61 _elementEnvironment = _elementMap.elementEnvironment;
61 _commonElements = _elementMap.commonElements; 62 _commonElements = _elementMap.commonElements;
62 JsToFrontendMap _map = _elementMap.jsToFrontendMap; 63 JsToFrontendMap _map = _elementMap.jsToFrontendMap;
63 BackendUsage backendUsage = 64 BackendUsage backendUsage =
64 new JsBackendUsage(_map, closedWorld.backendUsage); 65 new JsBackendUsage(_map, closedWorld.backendUsage);
65 NativeData nativeData = new JsNativeData(_map, closedWorld.nativeData); 66 NativeData nativeData = new JsNativeData(_map, closedWorld.nativeData);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 return newClassSet; 106 return newClassSet;
106 }); 107 });
107 } 108 }
108 109
109 closedWorld 110 closedWorld
110 .getClassHierarchyNode(closedWorld.commonElements.objectClass) 111 .getClassHierarchyNode(closedWorld.commonElements.objectClass)
111 .forEachSubclass((ClassEntity cls) { 112 .forEachSubclass((ClassEntity cls) {
112 convertClassSet(closedWorld.getClassSet(cls)); 113 convertClassSet(closedWorld.getClassSet(cls));
113 }, ClassHierarchyNode.ALL); 114 }, ClassHierarchyNode.ALL);
114 115
116 List<MemberEntity> liveInstanceMembers =
117 closedWorld.liveInstanceMembers.map(_map.toBackendMember).toList();
118
119 Map<ClassEntity, Set<ClassEntity>> mixinUses =
120 <ClassEntity, Set<ClassEntity>>{};
121 closedWorld.mixinUses.forEach((ClassEntity cls, Set<ClassEntity> uses) {
122 mixinUses[_map.toBackendClass(cls)] =
123 uses.map(_map.toBackendClass).toSet();
124 });
125
115 return new JsClosedWorld( 126 return new JsClosedWorld(
116 elementEnvironment: _elementEnvironment, 127 elementEnvironment: _elementEnvironment,
117 dartTypes: _elementMap.types, 128 dartTypes: _elementMap.types,
118 commonElements: _commonElements, 129 commonElements: _commonElements,
119 constantSystem: const JavaScriptConstantSystem(), 130 constantSystem: const JavaScriptConstantSystem(),
120 backendUsage: backendUsage, 131 backendUsage: backendUsage,
121 nativeData: nativeData, 132 nativeData: nativeData,
122 interceptorData: interceptorData, 133 interceptorData: interceptorData,
123 classHierarchyNodes: classHierarchyNodes, 134 classHierarchyNodes: classHierarchyNodes,
124 classSets: classSets, 135 classSets: classSets,
125 implementedClasses: implementedClasses, 136 implementedClasses: implementedClasses,
137 liveInstanceMembers: liveInstanceMembers,
126 // TODO(johnniwinther): Support these. 138 // TODO(johnniwinther): Support these.
127 allTypedefs: new ImmutableEmptySet<TypedefElement>(), 139 allTypedefs: new ImmutableEmptySet<TypedefElement>(),
128 resolutionWorldBuilder: null, 140 resolutionWorldBuilder: null,
129 functionSet: null, 141 mixinUses: mixinUses,
Siggi Cherem (dart-lang) 2017/07/05 20:28:52 is there more to this than what you have above?
Johnni Winther 2017/07/06 14:14:46 No. Moved
130 mixinUses: null,
131 typesImplementedBySubclasses: null); 142 typesImplementedBySubclasses: null);
132 } 143 }
133 144
134 @override 145 @override
135 Sorter get sorter { 146 Sorter get sorter {
136 return _sorter ??= new KernelSorter(elementMap); 147 return _sorter ??= new KernelSorter(elementMap);
137 } 148 }
138 149
139 @override 150 @override
140 ClosureConversionTask get closureDataLookup => 151 ClosureConversionTask get closureDataLookup =>
(...skipping 22 matching lines...) Expand all
163 ClosedWorld closedWorld, 174 ClosedWorld closedWorld,
164 SelectorConstraintsStrategy selectorConstraintsStrategy) { 175 SelectorConstraintsStrategy selectorConstraintsStrategy) {
165 return new KernelCodegenWorldBuilder( 176 return new KernelCodegenWorldBuilder(
166 elementMap, 177 elementMap,
167 closedWorld.elementEnvironment, 178 closedWorld.elementEnvironment,
168 nativeBasicData, 179 nativeBasicData,
169 closedWorld, 180 closedWorld,
170 selectorConstraintsStrategy); 181 selectorConstraintsStrategy);
171 } 182 }
172 } 183 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698