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 'dart:async' show Future; | 7 import 'dart:async' show Future; |
8 | 8 |
9 import 'package:js_runtime/shared/embedded_names.dart' as embeddedNames; | 9 import 'package:js_runtime/shared/embedded_names.dart' as embeddedNames; |
10 | 10 |
(...skipping 837 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
848 /// Returns the [WorldImpact] of enabling deferred loading. | 848 /// Returns the [WorldImpact] of enabling deferred loading. |
849 WorldImpact computeDeferredLoadingImpact() { | 849 WorldImpact computeDeferredLoadingImpact() { |
850 backendUsageBuilder.processBackendImpact(impacts.deferredLoading); | 850 backendUsageBuilder.processBackendImpact(impacts.deferredLoading); |
851 return impacts.deferredLoading.createImpact(compiler.elementEnvironment); | 851 return impacts.deferredLoading.createImpact(compiler.elementEnvironment); |
852 } | 852 } |
853 | 853 |
854 /// Called when resolving a call to a foreign function. | 854 /// Called when resolving a call to a foreign function. |
855 native.NativeBehavior resolveForeignCall(Send node, Element element, | 855 native.NativeBehavior resolveForeignCall(Send node, Element element, |
856 CallStructure callStructure, ForeignResolver resolver) { | 856 CallStructure callStructure, ForeignResolver resolver) { |
857 if (element.name == BackendHelpers.JS) { | 857 if (element.name == BackendHelpers.JS) { |
858 return _nativeResolutionEnqueuer.resolveJsCall(node, resolver); | 858 return _nativeDataResolver.resolveJsCall(node, resolver); |
859 } else if (element.name == BackendHelpers.JS_EMBEDDED_GLOBAL) { | 859 } else if (element.name == BackendHelpers.JS_EMBEDDED_GLOBAL) { |
860 return _nativeResolutionEnqueuer.resolveJsEmbeddedGlobalCall( | 860 return _nativeDataResolver.resolveJsEmbeddedGlobalCall(node, resolver); |
861 node, resolver); | |
862 } else if (element.name == BackendHelpers.JS_BUILTIN) { | 861 } else if (element.name == BackendHelpers.JS_BUILTIN) { |
863 return _nativeResolutionEnqueuer.resolveJsBuiltinCall(node, resolver); | 862 return _nativeDataResolver.resolveJsBuiltinCall(node, resolver); |
864 } else if (element.name == BackendHelpers.JS_INTERCEPTOR_CONSTANT) { | 863 } else if (element.name == BackendHelpers.JS_INTERCEPTOR_CONSTANT) { |
865 // The type constant that is an argument to JS_INTERCEPTOR_CONSTANT names | 864 // The type constant that is an argument to JS_INTERCEPTOR_CONSTANT names |
866 // a class that will be instantiated outside the program by attaching a | 865 // a class that will be instantiated outside the program by attaching a |
867 // native class dispatch record referencing the interceptor. | 866 // native class dispatch record referencing the interceptor. |
868 if (!node.argumentsNode.isEmpty) { | 867 if (!node.argumentsNode.isEmpty) { |
869 Node argument = node.argumentsNode.nodes.head; | 868 Node argument = node.argumentsNode.nodes.head; |
870 ConstantExpression constant = resolver.getConstant(argument); | 869 ConstantExpression constant = resolver.getConstant(argument); |
871 if (constant != null && constant.kind == ConstantExpressionKind.TYPE) { | 870 if (constant != null && constant.kind == ConstantExpressionKind.TYPE) { |
872 TypeConstantExpression typeConstant = constant; | 871 TypeConstantExpression typeConstant = constant; |
873 if (typeConstant.type is ResolutionInterfaceType) { | 872 if (typeConstant.type is ResolutionInterfaceType) { |
(...skipping 741 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1615 return _backend.defaultSuperclass(element); | 1614 return _backend.defaultSuperclass(element); |
1616 } | 1615 } |
1617 | 1616 |
1618 @override | 1617 @override |
1619 bool isNativeClass(ClassEntity element) => | 1618 bool isNativeClass(ClassEntity element) => |
1620 _backend.nativeBasicData.isNativeClass(element); | 1619 _backend.nativeBasicData.isNativeClass(element); |
1621 | 1620 |
1622 @override | 1621 @override |
1623 bool isForeign(Element element) => _backend.isForeign(element); | 1622 bool isForeign(Element element) => _backend.isForeign(element); |
1624 } | 1623 } |
OLD | NEW |