[ VM / DartDev ] Disable DartDev by default, allow for enabling via
--enable-dart-dev
Fixes https://github.com/dart-lang/sdk/issues/42748
Change-Id: I107ff86a65c20317d8813769bdf78b92bb6cb145
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154822
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
diff --git a/runtime/bin/main_options.cc b/runtime/bin/main_options.cc
index e3f195b..a250af8 100644
--- a/runtime/bin/main_options.cc
+++ b/runtime/bin/main_options.cc
@@ -42,6 +42,7 @@
bool Options::enable_vm_service_ = false;
MallocGrowableArray<const char*> Options::enabled_experiments_ =
MallocGrowableArray<const char*>(4);
+bool Options::disable_dart_dev_ = true;
#define OPTION_FIELD(variable) Options::variable##_
@@ -403,6 +404,28 @@
return true;
}
+bool Options::ProcessEnableDartDevOption(const char* arg,
+ CommandLineOptions* vm_options) {
+ const char* value = OptionProcessor::ProcessOption(arg, "--enable-dart-dev");
+ if (value == nullptr) {
+ value = OptionProcessor::ProcessOption(arg, "--enable_dart_dev");
+ }
+ if (value == nullptr) {
+ // Ensure --disable-dart-dev doesn't result in an unknown flag error.
+ value = OptionProcessor::ProcessOption(arg, "--disable-dart-dev");
+ if (value != nullptr) {
+ return true;
+ }
+ value = OptionProcessor::ProcessOption(arg, "--disable_dart_dev");
+ if (value != nullptr) {
+ return true;
+ }
+ return false;
+ }
+ disable_dart_dev_ = false;
+ return true;
+}
+
static void ResolveDartDevSnapshotPath(const char* script,
char** snapshot_path) {
if (!DartDevUtils::TryResolveDartDevSnapshotPath(snapshot_path)) {
@@ -591,7 +614,8 @@
}
}
}
- if (num_experiment_flags + 1 != script_or_cmd_index) {
+ // +2 since --enable-dart-dev needs to be passed to enable DartDev.
+ if (num_experiment_flags + 2 != script_or_cmd_index) {
Syslog::PrintErr(
"Warning: The following flags were passed as VM options and are "
"being "
diff --git a/runtime/bin/main_options.h b/runtime/bin/main_options.h
index adfcb5c..54b44b6 100644
--- a/runtime/bin/main_options.h
+++ b/runtime/bin/main_options.h
@@ -46,8 +46,7 @@
V(disable_exit, exit_disabled) \
V(preview_dart_2, nop_option) \
V(suppress_core_dump, suppress_core_dump) \
- V(enable_service_port_fallback, enable_service_port_fallback) \
- V(disable_dart_dev, disable_dart_dev)
+ V(enable_service_port_fallback, enable_service_port_fallback)
// Boolean flags that have a short form.
#define SHORT_BOOL_OPTIONS_LIST(V) \
@@ -70,7 +69,8 @@
V(ProcessEnableVmServiceOption) \
V(ProcessObserveOption) \
V(ProcessAbiVersionOption) \
- V(ProcessEnableExperimentOption)
+ V(ProcessEnableExperimentOption) \
+ V(ProcessEnableDartDevOption)
// This enum must match the strings in kSnapshotKindNames in main_options.cc.
enum SnapshotKind {
@@ -129,6 +129,8 @@
static constexpr int kAbiVersionUnset = -1;
static int target_abi_version() { return target_abi_version_; }
+ static bool disable_dart_dev() { return disable_dart_dev_; }
+
#if !defined(DART_PRECOMPILED_RUNTIME)
static DFE* dfe() { return dfe_; }
static void set_dfe(DFE* dfe) { dfe_ = dfe; }
@@ -179,6 +181,7 @@
static int target_abi_version_;
static MallocGrowableArray<const char*> enabled_experiments_;
+ static bool disable_dart_dev_;
#define OPTION_FRIEND(flag, variable) friend class OptionProcessor_##flag;
STRING_OPTIONS_LIST(OPTION_FRIEND)