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 |