dart-sdk/runtime/observatory
Alexander Markov ff34fd8110 [vm/aot/tfa] Tree shake write-only fields
So far tree shaking was removing fields which are not used at all.
This change improves tree shaking of fields so fields
which are only written or used as interface targets can be removed.

The following limitations apply:

* Field is not removed if there is a constant object with that field, as
  it may impact identity of constant objects which is an observable
  behavior.
* Field is not removed if it has a non-trivial initializer as it may
  have side-effects.
* Late final fields are not removed, as writing such fields may have
  side-effect.
* When field is removed, we may need to introduce an abstract getter
  or abstract setter if field is used as a target of an interface call.
  If a field was written, then setter would be non-abstract (but empty).

Fixes https://github.com/dart-lang/sdk/issues/35310

Change-Id: I79c00158b8eb658081a647c5dbdecde481fddb41
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134204
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2020-02-06 19:31:32 +00:00
..
bin [vm, service] Create a treemap from very large heap snapshots outside of the browser. 2020-01-31 02:09:17 +00:00
lib [observatory] Allow to say 'break package:foo/file.dart:42' 2020-02-04 08:57:01 +00:00
tests [vm/aot/tfa] Tree shake write-only fields 2020-02-06 19:31:32 +00:00
tool
web [observatory] Use month numbers ranging from 1-12 in the timeline default filename 2019-12-18 23:17:11 +00:00
.gitignore
.packages Bring in the latest test and stream_channel 2019-04-11 19:07:58 +00:00
analysis_options.yaml Reland "[vm/service] Introduce IsolateGroup entity to vm service api."" 2019-10-17 03:45:41 +00:00
BUILD.gn [ VM / Service ] Add getCpuProfileSamples RPC which returns a minimally processed sample buffer. 2019-09-07 01:04:08 +00:00
HACKING.md [ VM / Service / Observatory ] The VM service now requires an authentication code by default. 2019-04-09 22:57:29 +00:00
observatory_sources.gni [observatory] Progress on making heap snapshot analysis a public library. 2020-01-17 18:40:14 +00:00
pubspec.yaml [ VM / Service ] Add getCpuProfileSamples RPC which returns a minimally processed sample buffer. 2019-09-07 01:04:08 +00:00
update_sources.py Mass format python with yapf 2019-08-05 20:34:31 +00:00