54f44f2a18
Previously we could hit an assert when for instance "42 ~/ 0" was being optimized by the background compiler. The reason was that we assert that we're on the "mutator thread" when allocating memory (which is done as we're evaluating the code - and we're trying to evaluate it again because evaluating it gives an error, and errors aren't cached). However, to create a test for this it would be better if we could make it always crash, i.e. use something like ``` --optimization_counter_threshold=5 --no-background-compilation ``` to force an optimization, but still make it crash dispite the optimization happening in mutator thread (because of --no-background-compilation). This CL propagates if we're optimizing to the kernel builder, and in the constant builder further more asserts that we're not. Additionally it introduces a test that shows the crash and fixes it. Change-Id: Ic5412ec8b8a1dbc2ba323f0a02a51103a32fab5c Reviewed-on: https://dart-review.googlesource.com/11380 Commit-Queue: Jens Johansen <jensj@google.com> Reviewed-by: Vyacheslav Egorov <vegorov@google.com>