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

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

Issue 2727373003: Late creation of CodegenEnqueuerListener and CodegenWorldBuilder (Closed)
Patch Set: Created 3 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: pkg/compiler/lib/src/js_backend/enqueuer.dart
diff --git a/pkg/compiler/lib/src/js_backend/enqueuer.dart b/pkg/compiler/lib/src/js_backend/enqueuer.dart
index 5d7d7d9038fe468d06908c8b890d13992bb15ede..98d20a5857a5822821b800c9ccedb75d80989ede 100644
--- a/pkg/compiler/lib/src/js_backend/enqueuer.dart
+++ b/pkg/compiler/lib/src/js_backend/enqueuer.dart
@@ -32,7 +32,7 @@ class CodegenEnqueuer extends EnqueuerImpl {
final EnqueuerStrategy strategy;
Set<ClassEntity> _recentClasses = new Setlet<ClassEntity>();
- final CodegenWorldBuilderImpl _universe;
+ final CodegenWorldBuilderImpl _worldBuilder;
final WorkItemBuilder _workItemBuilder;
bool queueIsClosed = false;
@@ -50,18 +50,13 @@ class CodegenEnqueuer extends EnqueuerImpl {
static const ImpactUseCase IMPACT_USE =
const ImpactUseCase('CodegenEnqueuer');
- CodegenEnqueuer(this.task, JavaScriptBackend backend, CompilerOptions options,
- this.strategy)
- : _universe =
- new CodegenWorldBuilderImpl(backend, const TypeMaskStrategy()),
- _workItemBuilder = new CodegenWorkItemBuilder(backend, options),
- this.listener = backend.codegenEnqueuerListener,
- this._options = options,
- this.name = 'codegen enqueuer' {
+ CodegenEnqueuer(this.task, this._options, this.strategy, this._worldBuilder,
+ this._workItemBuilder, this.listener)
+ : this.name = 'codegen enqueuer' {
_impactVisitor = new EnqueuerImplImpactVisitor(this);
}
- CodegenWorldBuilder get worldBuilder => _universe;
+ CodegenWorldBuilder get worldBuilder => _worldBuilder;
bool get queueIsEmpty => _queue.isEmpty;
@@ -102,7 +97,7 @@ class CodegenEnqueuer extends EnqueuerImpl {
void _registerInstantiatedType(ResolutionInterfaceType type,
{bool mirrorUsage: false, bool nativeUsage: false}) {
task.measure(() {
- _universe.registerTypeInstantiation(type, _applyClassUse,
+ _worldBuilder.registerTypeInstantiation(type, _applyClassUse,
byMirrors: mirrorUsage);
listener.registerInstantiatedType(type, nativeUsage: nativeUsage);
});
@@ -113,7 +108,7 @@ class CodegenEnqueuer extends EnqueuerImpl {
}
void checkClass(ClassEntity cls) {
- _universe.processClassMembers(cls, (MemberEntity member, useSet) {
+ _worldBuilder.processClassMembers(cls, (MemberEntity member, useSet) {
if (useSet.isNotEmpty) {
throw new SpannableAssertionFailure(member,
'Unenqueued use of $member: ${useSet.iterable(MemberUse.values)}');
@@ -125,7 +120,7 @@ class CodegenEnqueuer extends EnqueuerImpl {
void _applyClassUse(ClassEntity cls, EnumSet<ClassUse> useSet) {
if (useSet.contains(ClassUse.INSTANTIATED)) {
_recentClasses.add(cls);
- _universe.processClassMembers(cls, _applyMemberUse);
+ _worldBuilder.processClassMembers(cls, _applyMemberUse);
// We only tell the backend once that [cls] was instantiated, so
// any additional dependencies must be treated as global
// dependencies.
@@ -151,12 +146,12 @@ class CodegenEnqueuer extends EnqueuerImpl {
void processDynamicUse(DynamicUse dynamicUse) {
task.measure(() {
- _universe.registerDynamicUse(dynamicUse, _applyMemberUse);
+ _worldBuilder.registerDynamicUse(dynamicUse, _applyMemberUse);
});
}
void processStaticUse(StaticUse staticUse) {
- _universe.registerStaticUse(staticUse, _applyMemberUse);
+ _worldBuilder.registerStaticUse(staticUse, _applyMemberUse);
switch (staticUse.kind) {
case StaticUseKind.CONSTRUCTOR_INVOKE:
case StaticUseKind.CONST_CONSTRUCTOR_INVOKE:
@@ -200,7 +195,7 @@ class CodegenEnqueuer extends EnqueuerImpl {
}
void _registerIsCheck(ResolutionDartType type) {
- _universe.registerIsCheck(type);
+ _worldBuilder.registerIsCheck(type);
}
void _registerClosurizedMember(MemberElement element) {
@@ -249,7 +244,7 @@ class CodegenEnqueuer extends EnqueuerImpl {
Iterable<Entity> get processedEntities => _processedEntities;
@override
- Iterable<ClassEntity> get processedClasses => _universe.processedClasses;
+ Iterable<ClassEntity> get processedClasses => _worldBuilder.processedClasses;
}
/// Builder that creates the work item necessary for the code generation of a
« no previous file with comments | « pkg/compiler/lib/src/js_backend/codegen_listener.dart ('k') | pkg/compiler/lib/src/js_backend/mirrors_analysis.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698