| Index: pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart
|
| diff --git a/pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart b/pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart
|
| index 9471cac584dc5366edb071db14adff70c8a67242..42f7138c0fc414b7964ba0fe9a9c27ecd077f790 100644
|
| --- a/pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart
|
| +++ b/pkg/compiler/lib/src/js_emitter/program_builder/program_builder.dart
|
| @@ -310,15 +310,12 @@ class ProgramBuilder {
|
|
|
| List<StaticField> _buildStaticLazilyInitializedFields(
|
| LibrariesMap librariesMap) {
|
| - // TODO(floitsch): lazy fields should just be in their respective
|
| - // libraries.
|
| - if (librariesMap != _registry.mainLibrariesMap) {
|
| - return const <StaticField>[];
|
| - }
|
| -
|
| JavaScriptConstantCompiler handler = backend.constants;
|
| - List<VariableElement> lazyFields =
|
| - handler.getLazilyInitializedFieldsForEmission();
|
| + DeferredLoadTask loadTask = _compiler.deferredLoadTask;
|
| + Iterable<VariableElement> lazyFields = handler
|
| + .getLazilyInitializedFieldsForEmission()
|
| + .where((element) =>
|
| + loadTask.outputUnitForElement(element) == librariesMap.outputUnit);
|
| return Elements.sortedByPosition(lazyFields)
|
| .map(_buildLazyField)
|
| .where((field) => field != null) // Happens when the field was unused.
|
|
|