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

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

Issue 2800643002: Register deferred load impact through ResolutionEnqueuerListener (Closed)
Patch Set: Created 3 years, 8 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
« no previous file with comments | « pkg/compiler/lib/src/js_backend/backend.dart ('k') | pkg/compiler/tool/perf.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/resolution_listener.dart
diff --git a/pkg/compiler/lib/src/js_backend/resolution_listener.dart b/pkg/compiler/lib/src/js_backend/resolution_listener.dart
index e1085c04f5ba8b245aee3ac59a67f26211886c3d..4926902720bf897aa3ff121ad856ff486704c7aa 100644
--- a/pkg/compiler/lib/src/js_backend/resolution_listener.dart
+++ b/pkg/compiler/lib/src/js_backend/resolution_listener.dart
@@ -8,6 +8,7 @@ import '../common/backend_api.dart';
import '../common/names.dart' show Identifiers, Uris;
import '../common_elements.dart' show CommonElements, ElementEnvironment;
import '../constants/values.dart';
+import '../deferred_load.dart';
import '../elements/elements.dart';
import '../elements/entities.dart';
import '../elements/types.dart';
@@ -36,6 +37,7 @@ import 'type_variable_handler.dart';
class ResolutionEnqueuerListener extends EnqueuerListener {
// TODO(johnniwinther): Avoid the need for this.
final KernelTask _kernelTask;
+ final DeferredLoadTask _deferredLoadTask;
final CompilerOptions _options;
final ElementEnvironment _elementEnvironment;
@@ -79,6 +81,7 @@ class ResolutionEnqueuerListener extends EnqueuerListener {
this._mirrorsAnalysis,
this._typeVariableResolutionAnalysis,
this._nativeEnqueuer,
+ this._deferredLoadTask,
[this._kernelTask]);
void _registerBackendImpact(
@@ -171,9 +174,18 @@ class ResolutionEnqueuerListener extends EnqueuerListener {
return mainImpact;
}
+ /// Returns the [WorldImpact] of enabling deferred loading.
+ WorldImpact _computeDeferredLoadingImpact() {
+ _backendUsage.processBackendImpact(_impacts.deferredLoading);
+ return _impacts.deferredLoading.createImpact(_elementEnvironment);
+ }
+
@override
void onQueueOpen(Enqueuer enqueuer, FunctionEntity mainMethod,
Iterable<LibraryEntity> libraries) {
+ if (_deferredLoadTask.isProgramSplit) {
+ enqueuer.applyImpact(_computeDeferredLoadingImpact());
+ }
enqueuer.applyImpact(_nativeEnqueuer.processNativeClasses(libraries));
if (mainMethod != null) {
enqueuer.applyImpact(_computeMainImpact(mainMethod));
« no previous file with comments | « pkg/compiler/lib/src/js_backend/backend.dart ('k') | pkg/compiler/tool/perf.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698