| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |