Chromium Code Reviews| 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 |