[cfe] Run fasta.dart commands in separate vm when asserts are not enabled

Change-Id: I8d45580e9c95ae529ce6b1071427bae5a220f531
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/237042
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
diff --git a/pkg/front_end/tool/fasta.dart b/pkg/front_end/tool/fasta.dart
index cdd5609..20ed126 100644
--- a/pkg/front_end/tool/fasta.dart
+++ b/pkg/front_end/tool/fasta.dart
@@ -106,7 +106,7 @@
       stop("'$command' isn't a valid subcommand.");
   }
 
-  if (extraVmArguments.isNotEmpty) {
+  if (extraVmArguments.isNotEmpty || !assertsEnabled) {
     List<String> arguments = [];
     arguments.addAll(extraVmArguments);
     arguments.add('--enable-asserts');
@@ -124,7 +124,7 @@
     arguments.addAll(remainingArguments);
     arguments.addAll(scriptArguments);
 
-    print('Running: ${script} ${arguments.join(' ')}');
+    print('Calling: ${script} ${arguments.join(' ')}');
     await mainFunction(arguments);
   }
 }
@@ -133,3 +133,12 @@
   stderr.write(message);
   exit(2);
 }
+
+final bool assertsEnabled = () {
+  try {
+    assert(false);
+    return false;
+  } catch (_) {
+    return true;
+  }
+}();