5f32afdd4c
Rationale: My great friends PushArguments again! During OSR, the replacement of a lost PushArgument (due to having this on the expression stack while OSRing) must also be reflected in the environment. Why? This is used for the stack depth bookkeeping. Note that I added some logic for this less-than-obvious assumption in the flow graph checker to make sure we don't fall into this trap again (currently only for instance methods, since the IR is not clean for the others, that is yet TBD). With regression test! https://github.com/dart-lang/sdk/issues/38412 https://github.com/dart-lang/sdk/issues/38577 https://github.com/dart-lang/sdk/issues/38602 Change-Id: I8e4ff67e3e0926ff3ee6b6ac0af05f7ea0dc5ea1 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118913 Reviewed-by: Alexander Markov <alexmarkov@google.com> Commit-Queue: Aart Bik <ajcbik@google.com>