| 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 '../common.dart'; | 8 import '../common.dart'; |
| 9 import '../common_elements.dart'; | 9 import '../common_elements.dart'; |
| 10 import '../common/backend_api.dart'; | 10 import '../common/backend_api.dart'; |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 import '../js_backend/runtime_types.dart'; | 27 import '../js_backend/runtime_types.dart'; |
| 28 import '../library_loader.dart'; | 28 import '../library_loader.dart'; |
| 29 import '../native/resolver.dart'; | 29 import '../native/resolver.dart'; |
| 30 import '../serialization/task.dart'; | 30 import '../serialization/task.dart'; |
| 31 import '../patch_parser.dart'; | 31 import '../patch_parser.dart'; |
| 32 import '../resolved_uri_translator.dart'; | 32 import '../resolved_uri_translator.dart'; |
| 33 import '../universe/world_builder.dart'; | 33 import '../universe/world_builder.dart'; |
| 34 import '../universe/world_impact.dart'; | 34 import '../universe/world_impact.dart'; |
| 35 import '../world.dart'; | 35 import '../world.dart'; |
| 36 import 'element_map_impl.dart'; | 36 import 'element_map_impl.dart'; |
| 37 import 'kernel_backend_strategy.dart'; |
| 37 | 38 |
| 38 /// Front end strategy that loads '.dill' files and builds a resolved element | 39 /// Front end strategy that loads '.dill' files and builds a resolved element |
| 39 /// model from kernel IR nodes. | 40 /// model from kernel IR nodes. |
| 40 class KernelFrontEndStrategy implements FrontendStrategy { | 41 class KernelFrontEndStrategy implements FrontendStrategy { |
| 41 KernelToElementMapImpl elementMap; | 42 KernelToElementMapForImpactImpl elementMap; |
| 42 | 43 |
| 43 KernelAnnotationProcessor _annotationProcesser; | 44 KernelAnnotationProcessor _annotationProcesser; |
| 44 | 45 |
| 45 KernelFrontEndStrategy( | 46 KernelFrontEndStrategy( |
| 46 DiagnosticReporter reporter, env.Environment environment) | 47 DiagnosticReporter reporter, env.Environment environment) |
| 47 : elementMap = new KernelToElementMapImpl(reporter, environment); | 48 : elementMap = useJsStrategyForTesting |
| 49 ? new KernelToElementMapForImpactImpl2(reporter, environment) |
| 50 : new KernelToElementMapImpl(reporter, environment); |
| 48 | 51 |
| 49 @override | 52 @override |
| 50 LibraryLoaderTask createLibraryLoader( | 53 LibraryLoaderTask createLibraryLoader( |
| 51 ResolvedUriTranslator uriTranslator, | 54 ResolvedUriTranslator uriTranslator, |
| 52 ScriptLoader scriptLoader, | 55 ScriptLoader scriptLoader, |
| 53 ElementScanner scriptScanner, | 56 ElementScanner scriptScanner, |
| 54 LibraryDeserializer deserializer, | 57 LibraryDeserializer deserializer, |
| 55 PatchResolverFunction patchResolverFunc, | 58 PatchResolverFunction patchResolverFunc, |
| 56 PatchParserTask patchParser, | 59 PatchParserTask patchParser, |
| 57 env.Environment environment, | 60 env.Environment environment, |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 128 } | 131 } |
| 129 | 132 |
| 130 @override | 133 @override |
| 131 SourceSpan spanFromSpannable(Spannable spannable, Entity currentElement) { | 134 SourceSpan spanFromSpannable(Spannable spannable, Entity currentElement) { |
| 132 // TODO(redemption): Compute source spans from kernel elements. | 135 // TODO(redemption): Compute source spans from kernel elements. |
| 133 return new SourceSpan(null, null, null); | 136 return new SourceSpan(null, null, null); |
| 134 } | 137 } |
| 135 } | 138 } |
| 136 | 139 |
| 137 class KernelWorkItemBuilder implements WorkItemBuilder { | 140 class KernelWorkItemBuilder implements WorkItemBuilder { |
| 138 final KernelToElementMapImpl _elementMap; | 141 final KernelToElementMapForImpactImpl _elementMap; |
| 139 final ImpactTransformer _impactTransformer; | 142 final ImpactTransformer _impactTransformer; |
| 140 final NativeMemberResolver _nativeMemberResolver; | 143 final NativeMemberResolver _nativeMemberResolver; |
| 141 | 144 |
| 142 KernelWorkItemBuilder(this._elementMap, NativeBasicData nativeBasicData, | 145 KernelWorkItemBuilder(this._elementMap, NativeBasicData nativeBasicData, |
| 143 NativeDataBuilder nativeDataBuilder, this._impactTransformer) | 146 NativeDataBuilder nativeDataBuilder, this._impactTransformer) |
| 144 : _nativeMemberResolver = new KernelNativeMemberResolver( | 147 : _nativeMemberResolver = new KernelNativeMemberResolver( |
| 145 _elementMap, nativeBasicData, nativeDataBuilder); | 148 _elementMap, nativeBasicData, nativeDataBuilder); |
| 146 | 149 |
| 147 @override | 150 @override |
| 148 WorkItem createWorkItem(MemberEntity entity) { | 151 WorkItem createWorkItem(MemberEntity entity) { |
| 149 return new KernelWorkItem( | 152 return new KernelWorkItem( |
| 150 _elementMap, _impactTransformer, _nativeMemberResolver, entity); | 153 _elementMap, _impactTransformer, _nativeMemberResolver, entity); |
| 151 } | 154 } |
| 152 } | 155 } |
| 153 | 156 |
| 154 class KernelWorkItem implements ResolutionWorkItem { | 157 class KernelWorkItem implements ResolutionWorkItem { |
| 155 final KernelToElementMapImpl _elementMap; | 158 final KernelToElementMapForImpactImpl _elementMap; |
| 156 final ImpactTransformer _impactTransformer; | 159 final ImpactTransformer _impactTransformer; |
| 157 final NativeMemberResolver _nativeMemberResolver; | 160 final NativeMemberResolver _nativeMemberResolver; |
| 158 final MemberEntity element; | 161 final MemberEntity element; |
| 159 | 162 |
| 160 KernelWorkItem(this._elementMap, this._impactTransformer, | 163 KernelWorkItem(this._elementMap, this._impactTransformer, |
| 161 this._nativeMemberResolver, this.element); | 164 this._nativeMemberResolver, this.element); |
| 162 | 165 |
| 163 @override | 166 @override |
| 164 WorldImpact run() { | 167 WorldImpact run() { |
| 165 _nativeMemberResolver.resolveNativeMember(element); | 168 _nativeMemberResolver.resolveNativeMember(element); |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 217 int get preMirrorsMethodCount { | 220 int get preMirrorsMethodCount { |
| 218 // TODO(redemption): Implement this. | 221 // TODO(redemption): Implement this. |
| 219 return null; | 222 return null; |
| 220 } | 223 } |
| 221 | 224 |
| 222 @override | 225 @override |
| 223 void onQueueEmpty(Enqueuer enqueuer, Iterable<ClassEntity> recentClasses) { | 226 void onQueueEmpty(Enqueuer enqueuer, Iterable<ClassEntity> recentClasses) { |
| 224 // TODO(redemption): Implement this. | 227 // TODO(redemption): Implement this. |
| 225 } | 228 } |
| 226 } | 229 } |
| OLD | NEW |