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

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

Issue 2488353004: Remove Compiler access from ResolutionEnqueuer (Closed)
Patch Set: Updated cf. comments. Created 4 years, 1 month 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/js_backend/enqueuer.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 2fa04484c947dbe735145801b24a6ab36209e48b..56e8e89180a74eefc363f6a85d257a814843aa66 100644
--- a/pkg/compiler/lib/src/js_backend/backend.dart
+++ b/pkg/compiler/lib/src/js_backend/backend.dart
@@ -337,18 +337,19 @@ class JavaScriptBackend extends Backend {
TRACE_METHOD == 'post' || TRACE_METHOD == 'console';
MethodElement traceHelper;
- TypeMask get stringType => compiler.commonMasks.stringType;
- TypeMask get doubleType => compiler.commonMasks.doubleType;
- TypeMask get intType => compiler.commonMasks.intType;
- TypeMask get uint32Type => compiler.commonMasks.uint32Type;
- TypeMask get uint31Type => compiler.commonMasks.uint31Type;
- TypeMask get positiveIntType => compiler.commonMasks.positiveIntType;
- TypeMask get numType => compiler.commonMasks.numType;
- TypeMask get boolType => compiler.commonMasks.boolType;
- TypeMask get dynamicType => compiler.commonMasks.dynamicType;
- TypeMask get nullType => compiler.commonMasks.nullType;
+ 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.commonMasks.nonNullType;
+ TypeMask get nonNullType => compiler.closedWorld.commonMasks.nonNullType;
TypeMask _indexablePrimitiveTypeCache;
TypeMask get indexablePrimitiveType {
@@ -519,6 +520,9 @@ class JavaScriptBackend extends Backend {
/// True when we enqueue the loadLibrary code.
bool isLoadLibraryFunctionResolved = false;
+ /// `true` if access to [BackendHelpers.invokeOnMethod] is supported.
+ bool hasInvokeOnSupport = false;
+
/// List of constants from metadata. If metadata must be preserved,
/// these constants must be registered.
final List<Dependency> metadataConstants = <Dependency>[];
@@ -1489,13 +1493,13 @@ class JavaScriptBackend extends Backend {
}
bool classNeedsRti(ClassElement cls) {
- if (compiler.enabledRuntimeType) return true;
+ if (compiler.resolverWorld.hasRuntimeTypeSupport) return true;
return rti.classesNeedingRti.contains(cls.declaration);
}
bool classNeedsRtiField(ClassElement cls) {
if (cls.rawType.typeArguments.isEmpty) return false;
- if (compiler.enabledRuntimeType) return true;
+ if (compiler.resolverWorld.hasRuntimeTypeSupport) return true;
return rti.classesNeedingRti.contains(cls.declaration);
}
@@ -1512,7 +1516,7 @@ class JavaScriptBackend extends Backend {
bool methodNeedsRti(FunctionElement function) {
return rti.methodsNeedingRti.contains(function) ||
- compiler.enabledRuntimeType;
+ compiler.resolverWorld.hasRuntimeTypeSupport;
}
/// Enqueue [e] in [enqueuer].
@@ -1571,8 +1575,9 @@ class JavaScriptBackend extends Backend {
CodegenEnqueuer get codegenEnqueuer => compiler.enqueuer.codegen;
- CodegenEnqueuer createCodegenEnqueuer(Compiler compiler) {
- return new CodegenEnqueuer(compiler, const TreeShakingEnqueuerStrategy());
+ CodegenEnqueuer createCodegenEnqueuer(CompilerTask task, Compiler compiler) {
+ return new CodegenEnqueuer(
+ task, compiler, const TreeShakingEnqueuerStrategy());
}
WorldImpact codegen(CodegenWorkItem work) {
@@ -1646,11 +1651,11 @@ class JavaScriptBackend extends Backend {
return worldImpact;
}
- native.NativeEnqueuer nativeResolutionEnqueuer(Enqueuer world) {
+ native.NativeEnqueuer nativeResolutionEnqueuer() {
return new native.NativeResolutionEnqueuer(compiler);
}
- native.NativeEnqueuer nativeCodegenEnqueuer(Enqueuer world) {
+ native.NativeEnqueuer nativeCodegenEnqueuer() {
return new native.NativeCodegenEnqueuer(compiler, emitter);
}
@@ -2342,11 +2347,13 @@ class JavaScriptBackend extends Backend {
//
// Return early if any elements are added to avoid counting the elements as
// due to mirrors.
- enqueuer.applyImpact(customElementsAnalysis.flush(
- forResolution: enqueuer.isResolutionQueue));
enqueuer.applyImpact(
+ compiler.impactStrategy,
+ customElementsAnalysis.flush(
+ forResolution: enqueuer.isResolutionQueue));
+ enqueuer.applyImpact(compiler.impactStrategy,
lookupMapAnalysis.flush(forResolution: enqueuer.isResolutionQueue));
- enqueuer.applyImpact(
+ enqueuer.applyImpact(compiler.impactStrategy,
typeVariableHandler.flush(forResolution: enqueuer.isResolutionQueue));
if (!enqueuer.queueIsEmpty) return false;
@@ -2420,7 +2427,7 @@ class JavaScriptBackend extends Backend {
}
metadataConstants.clear();
}
- enqueuer.applyImpact(impactBuilder.flush());
+ enqueuer.applyImpact(compiler.impactStrategy, impactBuilder.flush());
}
return true;
}
@@ -2545,7 +2552,7 @@ class JavaScriptBackend extends Backend {
"@NoSideEffects() should always be combined with @NoInline.");
}
if (element == helpers.invokeOnMethod) {
- compiler.enabledInvokeOn = true;
+ hasInvokeOnSupport = true;
}
}
« no previous file with comments | « pkg/compiler/lib/src/inferrer/type_graph_nodes.dart ('k') | pkg/compiler/lib/src/js_backend/enqueuer.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698