Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(647)

Side by Side Diff: pkg/compiler/lib/src/js_model/js_strategy.dart

Issue 2998543002: Handle js interop members in impact computation. (Closed)
Patch Set: Updated cf. comments. Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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.js_model.strategy; 5 library dart2js.js_model.strategy;
6 6
7 import 'package:kernel/ast.dart' as ir; 7 import 'package:kernel/ast.dart' as ir;
8 8
9 import '../closure.dart' show ClosureConversionTask; 9 import '../closure.dart' show ClosureConversionTask;
10 import '../common.dart'; 10 import '../common.dart';
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 } 87 }
88 88
89 NativeBasicData _convertNativeBasicData( 89 NativeBasicData _convertNativeBasicData(
90 JsToFrontendMap map, NativeBasicDataImpl nativeBasicData) { 90 JsToFrontendMap map, NativeBasicDataImpl nativeBasicData) {
91 Map<ClassEntity, NativeClassTag> nativeClassTagInfo = 91 Map<ClassEntity, NativeClassTag> nativeClassTagInfo =
92 <ClassEntity, NativeClassTag>{}; 92 <ClassEntity, NativeClassTag>{};
93 nativeBasicData.nativeClassTagInfo 93 nativeBasicData.nativeClassTagInfo
94 .forEach((ClassEntity cls, NativeClassTag tag) { 94 .forEach((ClassEntity cls, NativeClassTag tag) {
95 nativeClassTagInfo[map.toBackendClass(cls)] = tag; 95 nativeClassTagInfo[map.toBackendClass(cls)] = tag;
96 }); 96 });
97 Set<LibraryEntity> jsInteropLibraries = 97 Map<LibraryEntity, String> jsInteropLibraries =
98 map.toBackendLibrarySet(nativeBasicData.jsInteropLibraries); 98 map.toBackendLibraryMap(nativeBasicData.jsInteropLibraries, identity);
99 Set<ClassEntity> jsInteropClasses = 99 Map<ClassEntity, String> jsInteropClasses =
100 map.toBackendClassSet(nativeBasicData.jsInteropClasses); 100 map.toBackendClassMap(nativeBasicData.jsInteropClasses, identity);
101 return new NativeBasicDataImpl(_elementEnvironment, nativeClassTagInfo, 101 Set<ClassEntity> anonymousJsInteropClasses =
102 jsInteropLibraries, jsInteropClasses); 102 map.toBackendClassSet(nativeBasicData.anonymousJsInteropClasses);
103 Map<MemberEntity, String> jsInteropMembers =
104 map.toBackendMemberMap(nativeBasicData.jsInteropMembers, identity);
105 return new NativeBasicDataImpl(
106 _elementEnvironment,
107 nativeClassTagInfo,
108 jsInteropLibraries,
109 jsInteropClasses,
110 anonymousJsInteropClasses,
111 jsInteropMembers);
103 } 112 }
104 113
105 NativeData _convertNativeData( 114 NativeData _convertNativeData(
106 JsToFrontendMap map, NativeDataImpl nativeData) { 115 JsToFrontendMap map, NativeDataImpl nativeData) {
107 convertNativeBehaviorType(type) { 116 convertNativeBehaviorType(type) {
108 if (type is DartType) return map.toBackendType(type); 117 if (type is DartType) return map.toBackendType(type);
109 assert(type is SpecialType); 118 assert(type is SpecialType);
110 return type; 119 return type;
111 } 120 }
112 121
(...skipping 26 matching lines...) Expand all
139 nativeMethodBehavior[map.toBackendMember(method)] = 148 nativeMethodBehavior[map.toBackendMember(method)] =
140 convertNativeBehavior(behavior); 149 convertNativeBehavior(behavior);
141 }); 150 });
142 Map<MemberEntity, NativeBehavior> nativeFieldLoadBehavior = 151 Map<MemberEntity, NativeBehavior> nativeFieldLoadBehavior =
143 map.toBackendMemberMap( 152 map.toBackendMemberMap(
144 nativeData.nativeFieldLoadBehavior, convertNativeBehavior); 153 nativeData.nativeFieldLoadBehavior, convertNativeBehavior);
145 Map<MemberEntity, NativeBehavior> nativeFieldStoreBehavior = 154 Map<MemberEntity, NativeBehavior> nativeFieldStoreBehavior =
146 map.toBackendMemberMap( 155 map.toBackendMemberMap(
147 nativeData.nativeFieldStoreBehavior, convertNativeBehavior); 156 nativeData.nativeFieldStoreBehavior, convertNativeBehavior);
148 Map<LibraryEntity, String> jsInteropLibraryNames = 157 Map<LibraryEntity, String> jsInteropLibraryNames =
149 map.toBackendLibraryMap(nativeData.jsInteropLibraryNames, identity); 158 map.toBackendLibraryMap(nativeData.jsInteropLibraries, identity);
150 Set<ClassEntity> anonymousJsInteropClasses = 159 Set<ClassEntity> anonymousJsInteropClasses =
151 map.toBackendClassSet(nativeData.anonymousJsInteropClasses); 160 map.toBackendClassSet(nativeData.anonymousJsInteropClasses);
152 Map<ClassEntity, String> jsInteropClassNames = 161 Map<ClassEntity, String> jsInteropClassNames =
153 map.toBackendClassMap(nativeData.jsInteropClassNames, identity); 162 map.toBackendClassMap(nativeData.jsInteropClasses, identity);
154 Map<MemberEntity, String> jsInteropMemberNames = 163 Map<MemberEntity, String> jsInteropMemberNames =
155 map.toBackendMemberMap(nativeData.jsInteropMemberNames, identity); 164 map.toBackendMemberMap(nativeData.jsInteropMembers, identity);
156 165
157 return new NativeDataImpl( 166 return new NativeDataImpl(
158 nativeBasicData, 167 nativeBasicData,
159 nativeMemberName, 168 nativeMemberName,
160 nativeMethodBehavior, 169 nativeMethodBehavior,
161 nativeFieldLoadBehavior, 170 nativeFieldLoadBehavior,
162 nativeFieldStoreBehavior, 171 nativeFieldStoreBehavior,
163 jsInteropLibraryNames, 172 jsInteropLibraryNames,
164 anonymousJsInteropClasses, 173 anonymousJsInteropClasses,
165 jsInteropClassNames, 174 jsInteropClassNames,
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 node.isDirectlyInstantiated = true; 433 node.isDirectlyInstantiated = true;
425 434
426 return cls; 435 return cls;
427 } 436 }
428 437
429 @override 438 @override
430 void registerClosureClass(ClassEntity cls) { 439 void registerClosureClass(ClassEntity cls) {
431 throw new UnsupportedError('JsClosedWorld.registerClosureClass'); 440 throw new UnsupportedError('JsClosedWorld.registerClosureClass');
432 } 441 }
433 } 442 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/js_backend/native_data.dart ('k') | pkg/compiler/lib/src/kernel/element_map.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698