| Index: pkg/compiler/lib/src/js_emitter/program_builder/collector.dart
|
| diff --git a/pkg/compiler/lib/src/js_emitter/program_builder/collector.dart b/pkg/compiler/lib/src/js_emitter/program_builder/collector.dart
|
| index 6c76418cec563a5d4083f297bd14976faaf8752d..a32f46209eb586790bcb16b7b939f31a0164c67d 100644
|
| --- a/pkg/compiler/lib/src/js_emitter/program_builder/collector.dart
|
| +++ b/pkg/compiler/lib/src/js_emitter/program_builder/collector.dart
|
| @@ -282,18 +282,21 @@ class Collector {
|
| list.add(element);
|
| }
|
|
|
| - Iterable<VariableElement> staticNonFinalFields = handler
|
| - .getStaticNonFinalFieldsForEmission()
|
| - .where(compiler.codegenWorld.allReferencedStaticFields.contains);
|
| -
|
| - Elements.sortedByPosition(staticNonFinalFields).forEach(addToOutputUnit);
|
| + Iterable<Element> fields = compiler.codegenWorld.allReferencedStaticFields
|
| + .where((FieldElement field) {
|
| + if (!field.isConst) {
|
| + return field.isField &&
|
| + !field.isInstanceMember &&
|
| + !field.isFinal &&
|
| + field.constant != null;
|
| + } else {
|
| + // We also need to emit static const fields if they are available for
|
| + // reflection.
|
| + return backend.isAccessibleByReflection(field);
|
| + }
|
| + });
|
|
|
| - // We also need to emit static const fields if they are available for
|
| - // reflection.
|
| - compiler.codegenWorld.allReferencedStaticFields
|
| - .where((FieldElement field) => field.isConst)
|
| - .where(backend.isAccessibleByReflection)
|
| - .forEach(addToOutputUnit);
|
| + Elements.sortedByPosition(fields).forEach(addToOutputUnit);
|
| }
|
|
|
| void computeNeededLibraries() {
|
|
|