| 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));
|
|
|