Index: pkg/compiler/lib/src/js_model/js_strategy.dart |
diff --git a/pkg/compiler/lib/src/js_model/js_strategy.dart b/pkg/compiler/lib/src/js_model/js_strategy.dart |
index 82ac045a6c6965f690fe8c9e411d66169ce6c465..43a2a78b5cbfd4123e0b6d91c2491d8cfab53c7b 100644 |
--- a/pkg/compiler/lib/src/js_model/js_strategy.dart |
+++ b/pkg/compiler/lib/src/js_model/js_strategy.dart |
@@ -64,13 +64,21 @@ class JsBackendStrategy implements KernelBackendStrategy { |
BackendUsage backendUsage = |
new JsBackendUsage(_map, closedWorld.backendUsage); |
NativeData nativeData = new JsNativeData(_map, closedWorld.nativeData); |
+ InterceptorDataImpl interceptorDataImpl = closedWorld.interceptorData; |
+ Map<String, Set<MemberEntity>> interceptedMembers = |
+ <String, Set<MemberEntity>>{}; |
+ interceptorDataImpl.interceptedMembers |
+ .forEach((String name, Set<MemberEntity> members) { |
+ interceptedMembers[name] = members.map(_map.toBackendMember).toSet(); |
Siggi Cherem (dart-lang)
2017/07/05 21:25:52
since we have a few of these conversions here and
Johnni Winther
2017/07/06 14:53:40
Sometimes we convert members, sometimes classes. W
|
+ }); |
InterceptorData interceptorData = new InterceptorDataImpl( |
nativeData, |
_commonElements, |
- // TODO(johnniwinther): Convert these. |
- const {}, |
- new Set(), |
- new Set()); |
+ interceptedMembers, |
+ interceptorDataImpl.interceptedClasses.map(_map.toBackendClass).toSet(), |
+ interceptorDataImpl.classesMixedIntoInterceptedClasses |
+ .map(_map.toBackendClass) |
+ .toSet()); |
Map<ClassEntity, ClassHierarchyNode> classHierarchyNodes = |
<ClassEntity, ClassHierarchyNode>{}; |
@@ -123,6 +131,14 @@ class JsBackendStrategy implements KernelBackendStrategy { |
uses.map(_map.toBackendClass).toSet(); |
}); |
+ Map<ClassEntity, Set<ClassEntity>> typesImplementedBySubclasses = |
+ <ClassEntity, Set<ClassEntity>>{}; |
+ closedWorld.typesImplementedBySubclasses |
+ .forEach((ClassEntity cls, Set<ClassEntity> uses) { |
+ typesImplementedBySubclasses[_map.toBackendClass(cls)] = |
+ uses.map(_map.toBackendClass).toSet(); |
+ }); |
+ |
Iterable<MemberEntity> assignedInstanceMembers = |
closedWorld.assignedInstanceMembers.map(_map.toBackendMember).toList(); |
@@ -139,10 +155,10 @@ class JsBackendStrategy implements KernelBackendStrategy { |
implementedClasses: implementedClasses, |
liveInstanceMembers: liveInstanceMembers, |
assignedInstanceMembers: assignedInstanceMembers, |
- // TODO(johnniwinther): Support these. |
- allTypedefs: new ImmutableEmptySet<TypedefElement>(), |
mixinUses: mixinUses, |
- typesImplementedBySubclasses: null); |
+ typesImplementedBySubclasses: typesImplementedBySubclasses, |
+ // TODO(johnniwinther): Support this: |
+ allTypedefs: new ImmutableEmptySet<TypedefElement>()); |
} |
@override |