| 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.kernel.frontend_strategy; | 5 library dart2js.kernel.frontend_strategy; |
| 6 | 6 |
| 7 import '../closure.dart'; | 7 import '../closure.dart'; |
| 8 import '../backend_strategy.dart'; | 8 import '../backend_strategy.dart'; |
| 9 import '../common.dart'; | 9 import '../common.dart'; |
| 10 import '../common_elements.dart'; | 10 import '../common_elements.dart'; |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 110 ResolutionWorldBuilder createResolutionWorldBuilder( | 110 ResolutionWorldBuilder createResolutionWorldBuilder( |
| 111 NativeBasicData nativeBasicData, | 111 NativeBasicData nativeBasicData, |
| 112 NativeDataBuilder nativeDataBuilder, | 112 NativeDataBuilder nativeDataBuilder, |
| 113 InterceptorDataBuilder interceptorDataBuilder, | 113 InterceptorDataBuilder interceptorDataBuilder, |
| 114 SelectorConstraintsStrategy selectorConstraintsStrategy) { | 114 SelectorConstraintsStrategy selectorConstraintsStrategy) { |
| 115 return new KernelResolutionWorldBuilder(elementMap, nativeBasicData, | 115 return new KernelResolutionWorldBuilder(elementMap, nativeBasicData, |
| 116 nativeDataBuilder, interceptorDataBuilder, selectorConstraintsStrategy); | 116 nativeDataBuilder, interceptorDataBuilder, selectorConstraintsStrategy); |
| 117 } | 117 } |
| 118 | 118 |
| 119 WorkItemBuilder createResolutionWorkItemBuilder( | 119 WorkItemBuilder createResolutionWorkItemBuilder( |
| 120 NativeBasicData nativeBasicData, |
| 121 NativeDataBuilder nativeDataBuilder, |
| 120 ImpactTransformer impactTransformer) { | 122 ImpactTransformer impactTransformer) { |
| 121 return new KernelWorkItemBuilder(elementMap, impactTransformer); | 123 return new KernelWorkItemBuilder( |
| 124 elementMap, nativeBasicData, nativeDataBuilder, impactTransformer); |
| 122 } | 125 } |
| 123 } | 126 } |
| 124 | 127 |
| 125 class KernelWorkItemBuilder implements WorkItemBuilder { | 128 class KernelWorkItemBuilder implements WorkItemBuilder { |
| 126 final KernelToElementMapImpl _elementMap; | 129 final KernelToElementMapImpl _elementMap; |
| 127 final ImpactTransformer _impactTransformer; | 130 final ImpactTransformer _impactTransformer; |
| 131 final NativeMemberResolver _nativeMemberResolver; |
| 128 | 132 |
| 129 KernelWorkItemBuilder(this._elementMap, this._impactTransformer); | 133 KernelWorkItemBuilder(this._elementMap, NativeBasicData nativeBasicData, |
| 134 NativeDataBuilder nativeDataBuilder, this._impactTransformer) |
| 135 : _nativeMemberResolver = new KernelNativeMemberResolver( |
| 136 _elementMap, nativeBasicData, nativeDataBuilder); |
| 130 | 137 |
| 131 @override | 138 @override |
| 132 WorkItem createWorkItem(MemberEntity entity) { | 139 WorkItem createWorkItem(MemberEntity entity) { |
| 133 return new KernelWorkItem(_elementMap, _impactTransformer, entity); | 140 return new KernelWorkItem( |
| 141 _elementMap, _impactTransformer, _nativeMemberResolver, entity); |
| 134 } | 142 } |
| 135 } | 143 } |
| 136 | 144 |
| 137 class KernelWorkItem implements ResolutionWorkItem { | 145 class KernelWorkItem implements ResolutionWorkItem { |
| 138 final KernelToElementMapImpl _elementMap; | 146 final KernelToElementMapImpl _elementMap; |
| 139 final ImpactTransformer _impactTransformer; | 147 final ImpactTransformer _impactTransformer; |
| 148 final NativeMemberResolver _nativeMemberResolver; |
| 140 final MemberEntity element; | 149 final MemberEntity element; |
| 141 | 150 |
| 142 KernelWorkItem(this._elementMap, this._impactTransformer, this.element); | 151 KernelWorkItem(this._elementMap, this._impactTransformer, |
| 152 this._nativeMemberResolver, this.element); |
| 143 | 153 |
| 144 @override | 154 @override |
| 145 WorldImpact run() { | 155 WorldImpact run() { |
| 156 _nativeMemberResolver.resolveNativeMember(element); |
| 146 ResolutionImpact impact = _elementMap.computeWorldImpact(element); | 157 ResolutionImpact impact = _elementMap.computeWorldImpact(element); |
| 147 return _impactTransformer.transformResolutionImpact(impact); | 158 return _impactTransformer.transformResolutionImpact(impact); |
| 148 } | 159 } |
| 149 } | 160 } |
| 150 | 161 |
| 151 /// Mock implementation of [MirrorsDataImpl]. | 162 /// Mock implementation of [MirrorsDataImpl]. |
| 152 class MirrorsDataBuilderImpl extends MirrorsDataImpl { | 163 class MirrorsDataBuilderImpl extends MirrorsDataImpl { |
| 153 MirrorsDataBuilderImpl() : super(null, null, null); | 164 MirrorsDataBuilderImpl() : super(null, null, null); |
| 154 | 165 |
| 155 @override | 166 @override |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 224 Sorter get sorter => | 235 Sorter get sorter => |
| 225 throw new UnimplementedError('KernelBackendStrategy.sorter'); | 236 throw new UnimplementedError('KernelBackendStrategy.sorter'); |
| 226 | 237 |
| 227 @override | 238 @override |
| 228 void convertClosures(ClosedWorldRefiner closedWorldRefiner) { | 239 void convertClosures(ClosedWorldRefiner closedWorldRefiner) { |
| 229 // TODO(johnniwinther,efortuna): Compute closure classes for kernel based | 240 // TODO(johnniwinther,efortuna): Compute closure classes for kernel based |
| 230 // elements. | 241 // elements. |
| 231 throw new UnimplementedError('KernelBackendStrategy.createClosureClasses'); | 242 throw new UnimplementedError('KernelBackendStrategy.createClosureClasses'); |
| 232 } | 243 } |
| 233 } | 244 } |
| OLD | NEW |