6ea62c02fe
Prior to this change, the VM service isolate was configured to execute `main` directly. This resulted in unexpected behavior around exceptions thrown after the first asynchronous gap, which were unhandled but caused the service isolate to exit silently with no error. This change updates how the service isolate starts execution by invoking `main` via `dart:isolate`'s `_runMainIsolate` method, similar to how user isolates and the DartDev isolate start execution. This results in the message handler being triggered, meaning the microtask queue will be processed correctly and unhandled exceptions in asynchronous contexts being reported. TEST=Local testing with exceptions explicitly thrown from within the VM service Change-Id: I69475a86d923489fa216bc8e939a2726cf3ff2e8 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/490220 Reviewed-by: Ryan Macnak <rmacnak@google.com> Commit-Queue: Ben Konyi <bkonyi@google.com>