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

Side by Side Diff: pkg/compiler/lib/src/js_backend/backend.dart

Issue 2990983002: Handle NativeTypedArray in closed_world_from_dill_test (Closed)
Patch Set: 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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 js_backend.backend; 5 library js_backend.backend;
6 6
7 import '../common.dart'; 7 import '../common.dart';
8 import '../common/backend_api.dart' 8 import '../common/backend_api.dart'
9 show ForeignResolver, NativeRegistry, ImpactTransformer; 9 show ForeignResolver, NativeRegistry, ImpactTransformer;
10 import '../common/codegen.dart' show CodegenWorkItem; 10 import '../common/codegen.dart' show CodegenWorkItem;
(...skipping 888 matching lines...) Expand 10 before | Expand all | Expand 10 after
899 .transformCodegenImpact(work.registry.worldImpact); 899 .transformCodegenImpact(work.registry.worldImpact);
900 compiler.dumpInfoTask.registerImpact(element, worldImpact); 900 compiler.dumpInfoTask.registerImpact(element, worldImpact);
901 return worldImpact; 901 return worldImpact;
902 } 902 }
903 903
904 native.NativeResolutionEnqueuer get nativeResolutionEnqueuerForTesting => 904 native.NativeResolutionEnqueuer get nativeResolutionEnqueuerForTesting =>
905 _nativeResolutionEnqueuer; 905 _nativeResolutionEnqueuer;
906 906
907 native.NativeEnqueuer get nativeCodegenEnqueuer => _nativeCodegenEnqueuer; 907 native.NativeEnqueuer get nativeCodegenEnqueuer => _nativeCodegenEnqueuer;
908 908
909 ClassElement defaultSuperclass(CommonElements commonElements,
910 NativeBasicData nativeBasicData, ClassElement element) {
911 if (nativeBasicData.isJsInteropClass(element)) {
912 return commonElements.jsJavaScriptObjectClass;
913 }
914 // Native classes inherit from Interceptor.
915 return nativeBasicData.isNativeClass(element)
916 ? commonElements.jsInterceptorClass
917 : commonElements.objectClass;
918 }
919
920 /** 909 /**
921 * Unit test hook that returns code of an element as a String. 910 * Unit test hook that returns code of an element as a String.
922 * 911 *
923 * Invariant: [element] must be a declaration element. 912 * Invariant: [element] must be a declaration element.
924 */ 913 */
925 String getGeneratedCode(Element element) { 914 String getGeneratedCode(Element element) {
926 assert(element.isDeclaration, failedAt(element)); 915 assert(element.isDeclaration, failedAt(element));
927 return jsAst.prettyPrint(generatedCode[element], compiler.options); 916 return jsAst.prettyPrint(generatedCode[element], compiler.options);
928 } 917 }
929 918
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after
1329 return _backend.resolveForeignCall(node, element, callStructure, resolver); 1318 return _backend.resolveForeignCall(node, element, callStructure, resolver);
1330 } 1319 }
1331 1320
1332 @override 1321 @override
1333 bool isDefaultNoSuchMethod(MethodElement element) { 1322 bool isDefaultNoSuchMethod(MethodElement element) {
1334 return _commonElements.isDefaultNoSuchMethodImplementation(element); 1323 return _commonElements.isDefaultNoSuchMethodImplementation(element);
1335 } 1324 }
1336 1325
1337 @override 1326 @override
1338 ClassElement defaultSuperclass(ClassElement element) { 1327 ClassElement defaultSuperclass(ClassElement element) {
1339 return _backend.defaultSuperclass( 1328 return _commonElements.getDefaultSuperclass(
1340 _commonElements, _backend.frontendStrategy.nativeBasicData, element); 1329 element, _backend.frontendStrategy.nativeBasicData);
1341 } 1330 }
1342 1331
1343 @override 1332 @override
1344 bool isNativeClass(ClassEntity element) => 1333 bool isNativeClass(ClassEntity element) =>
1345 _backend.compiler.frontendStrategy.nativeBasicData.isNativeClass(element); 1334 _backend.compiler.frontendStrategy.nativeBasicData.isNativeClass(element);
1346 1335
1347 @override 1336 @override
1348 bool isForeign(Element element) => 1337 bool isForeign(Element element) =>
1349 _backend.isForeign(_commonElements, element); 1338 _backend.isForeign(_commonElements, element);
1350 } 1339 }
(...skipping 15 matching lines...) Expand all
1366 1355
1367 bool canUseAliasedSuperMember(MemberEntity member, Selector selector) { 1356 bool canUseAliasedSuperMember(MemberEntity member, Selector selector) {
1368 return !selector.isGetter; 1357 return !selector.isGetter;
1369 } 1358 }
1370 1359
1371 /// Returns `true` if [member] is called from a subclass via `super`. 1360 /// Returns `true` if [member] is called from a subclass via `super`.
1372 bool isAliasedSuperMember(MemberEntity member) { 1361 bool isAliasedSuperMember(MemberEntity member) {
1373 return _aliasedSuperMembers.contains(member); 1362 return _aliasedSuperMembers.contains(member);
1374 } 1363 }
1375 } 1364 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698