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

Unified Diff: pkg/compiler/lib/src/js_backend/backend.dart

Issue 2563443007: Reduce use of Compiler.closedWorld (Closed)
Patch Set: Created 4 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/compiler/lib/src/inferrer/type_graph_nodes.dart ('k') | pkg/compiler/lib/src/native/ssa.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/js_backend/backend.dart
diff --git a/pkg/compiler/lib/src/js_backend/backend.dart b/pkg/compiler/lib/src/js_backend/backend.dart
index 5292a0854f85e87a51f25a0b52942eb2dfb7f3ac..e1e898d4894cfda3b5cdd3910046a1fdcda486cb 100644
--- a/pkg/compiler/lib/src/js_backend/backend.dart
+++ b/pkg/compiler/lib/src/js_backend/backend.dart
@@ -337,74 +337,6 @@ class JavaScriptBackend extends Backend {
static const bool TRACE_CALLS =
TRACE_METHOD == 'post' || TRACE_METHOD == 'console';
- TypeMask get stringType => compiler.closedWorld.commonMasks.stringType;
- TypeMask get doubleType => compiler.closedWorld.commonMasks.doubleType;
- TypeMask get intType => compiler.closedWorld.commonMasks.intType;
- TypeMask get uint32Type => compiler.closedWorld.commonMasks.uint32Type;
- TypeMask get uint31Type => compiler.closedWorld.commonMasks.uint31Type;
- TypeMask get positiveIntType =>
- compiler.closedWorld.commonMasks.positiveIntType;
- TypeMask get numType => compiler.closedWorld.commonMasks.numType;
- TypeMask get boolType => compiler.closedWorld.commonMasks.boolType;
- TypeMask get dynamicType => compiler.closedWorld.commonMasks.dynamicType;
- TypeMask get nullType => compiler.closedWorld.commonMasks.nullType;
- TypeMask get emptyType => const TypeMask.nonNullEmpty();
- TypeMask get nonNullType => compiler.closedWorld.commonMasks.nonNullType;
-
- TypeMask _indexablePrimitiveTypeCache;
- TypeMask get indexablePrimitiveType {
- if (_indexablePrimitiveTypeCache == null) {
- _indexablePrimitiveTypeCache = new TypeMask.nonNullSubtype(
- helpers.jsIndexableClass, compiler.closedWorld);
- }
- return _indexablePrimitiveTypeCache;
- }
-
- TypeMask _readableArrayTypeCache;
- TypeMask get readableArrayType {
- if (_readableArrayTypeCache == null) {
- _readableArrayTypeCache = new TypeMask.nonNullSubclass(
- helpers.jsArrayClass, compiler.closedWorld);
- }
- return _readableArrayTypeCache;
- }
-
- TypeMask _mutableArrayTypeCache;
- TypeMask get mutableArrayType {
- if (_mutableArrayTypeCache == null) {
- _mutableArrayTypeCache = new TypeMask.nonNullSubclass(
- helpers.jsMutableArrayClass, compiler.closedWorld);
- }
- return _mutableArrayTypeCache;
- }
-
- TypeMask _fixedArrayTypeCache;
- TypeMask get fixedArrayType {
- if (_fixedArrayTypeCache == null) {
- _fixedArrayTypeCache = new TypeMask.nonNullExact(
- helpers.jsFixedArrayClass, compiler.closedWorld);
- }
- return _fixedArrayTypeCache;
- }
-
- TypeMask _extendableArrayTypeCache;
- TypeMask get extendableArrayType {
- if (_extendableArrayTypeCache == null) {
- _extendableArrayTypeCache = new TypeMask.nonNullExact(
- helpers.jsExtendableArrayClass, compiler.closedWorld);
- }
- return _extendableArrayTypeCache;
- }
-
- TypeMask _unmodifiableArrayTypeCache;
- TypeMask get unmodifiableArrayType {
- if (_unmodifiableArrayTypeCache == null) {
- _unmodifiableArrayTypeCache = new TypeMask.nonNullExact(
- helpers.jsUnmodifiableArrayClass, compiler.closedWorld);
- }
- return _fixedArrayTypeCache;
- }
-
/// Maps special classes to their implementation (JSXxx) class.
Map<ClassElement, ClassElement> implementationClasses;
@@ -1487,14 +1419,6 @@ class JavaScriptBackend extends Backend {
bool isComplexNoSuchMethod(FunctionElement element) =>
noSuchMethodRegistry.isComplex(element);
- bool isDefaultEqualityImplementation(Element element) {
- assert(element.name == '==');
- ClassElement classElement = element.enclosingClass;
- return classElement == coreClasses.objectClass ||
- classElement == helpers.jsInterceptorClass ||
- classElement == helpers.jsNullClass;
- }
-
bool methodNeedsRti(FunctionElement function) {
return rti.methodsNeedingRti.contains(function) || hasRuntimeTypeSupport;
}
@@ -2099,7 +2023,7 @@ class JavaScriptBackend extends Backend {
* be visible by reflection unless some other interfaces makes them
* accessible.
*/
- computeMembersNeededForReflection() {
+ void computeMembersNeededForReflection() {
if (_membersNeededForReflection != null) return;
if (compiler.commonElements.mirrorsLibrary == null) {
_membersNeededForReflection = const ImmutableEmptySet<Element>();
@@ -3287,6 +3211,7 @@ class JavaScriptBackendClasses implements BackendClasses {
ClassElement get numImplementation => helpers.jsNumberClass;
ClassElement get stringImplementation => helpers.jsStringClass;
ClassElement get listImplementation => helpers.jsArrayClass;
+ ClassElement get mutableListImplementation => helpers.jsMutableArrayClass;
ClassElement get constListImplementation => helpers.jsUnmodifiableArrayClass;
ClassElement get fixedListImplementation => helpers.jsFixedArrayClass;
ClassElement get growableListImplementation => helpers.jsExtendableArrayClass;
@@ -3299,4 +3224,15 @@ class JavaScriptBackendClasses implements BackendClasses {
ClassElement get asyncFutureImplementation => helpers.futureImplementation;
ClassElement get asyncStarStreamImplementation => helpers.controllerStream;
ClassElement get functionImplementation => helpers.coreClasses.functionClass;
+ ClassElement get indexableImplementation => helpers.jsIndexableClass;
+ ClassElement get mutableIndexableImplementation =>
+ helpers.jsMutableIndexableClass;
+
+ bool isDefaultEqualityImplementation(Element element) {
+ assert(element.name == '==');
+ ClassElement classElement = element.enclosingClass;
+ return classElement == helpers.coreClasses.objectClass ||
+ classElement == helpers.jsInterceptorClass ||
+ classElement == helpers.jsNullClass;
+ }
}
« no previous file with comments | « pkg/compiler/lib/src/inferrer/type_graph_nodes.dart ('k') | pkg/compiler/lib/src/native/ssa.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698