OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 } |
OLD | NEW |