34c11de808
This CL prevents treeshaking of members that have type `Finalizable`, `Future<Finalizable>` or `FutureOr<Finalizable>`. All `Finalizable` members are kept. Even the ones which are not members of `Finalizable`s. This is in line with the logic to keep all `Finalizable` arguments/variables alive. Moreover, this CL adds AOT tests to the FFI transformer tests so that we catch differences between AOT/JIT in the future. Closes: https://github.com/dart-lang/sdk/issues/49643 TEST=pkg/vm/test/transformations/ffi_test.dart TEST=pkg/vm/testcases/transformations/ffi/finalizable_member.dart Change-Id: I14003314b9f23692fee30d1c3eef1bdcd27ed1ec Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/254904 Commit-Queue: Daco Harkes <dacoharkes@google.com> Reviewed-by: Alexander Markov <alexmarkov@google.com>