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