| Index: dart/sdk/lib/_internal/compiler/implementation/enqueue.dart
|
| diff --git a/dart/sdk/lib/_internal/compiler/implementation/enqueue.dart b/dart/sdk/lib/_internal/compiler/implementation/enqueue.dart
|
| index 7397b2f3ea3e96396d712953df555cd66dbd7b8a..f60fd00fa70382d8b8a766c786c9d2690bbecfc2 100644
|
| --- a/dart/sdk/lib/_internal/compiler/implementation/enqueue.dart
|
| +++ b/dart/sdk/lib/_internal/compiler/implementation/enqueue.dart
|
| @@ -231,9 +231,12 @@ abstract class Enqueuer {
|
| // Native fields need to go into instanceMembersByName as they
|
| // are virtual instantiation points and escape points.
|
| } else {
|
| - // The codegen inlines instance fields initialization, so it
|
| - // does not need to add individual fields in the work list.
|
| if (isResolutionQueue) {
|
| + // All field initializers must be resolved as they could
|
| + // have an observable side-effect (and cannot be tree-shaken
|
| + // away). However, codegen inlines field initializers, so
|
| + // it does not need to add individual fields in the work
|
| + // list.
|
| addToWorkList(member);
|
| }
|
| return;
|
|
|