diff --git a/pkg/dartdev/lib/src/utils.dart b/pkg/dartdev/lib/src/utils.dart index ee8b096ec1d..540b6921628 100644 --- a/pkg/dartdev/lib/src/utils.dart +++ b/pkg/dartdev/lib/src/utils.dart @@ -16,6 +16,17 @@ import 'core.dart'; int? get dartdevUsageLineLength => stdout.hasTerminal ? stdout.terminalColumns : null; +/// Global options for dartdev. +/// +/// ** READ THIS BEFORE MODIFYING ** +/// +/// Adding or changing behavior for global flags may have consequences for +/// integration with the VM. Check `runtime/bin/main_options.cc` in the +/// Dart SDK if adding or changing any flags. This is most important for +/// those that are intended to be run without a script such as +/// `dart --disable-analytics` as there is special handling. Any flags +/// added here should also be tested by hand with a compiled SDK as unit tests +/// running `dartdev.dart` directly do not hit that code path. ArgParser globalDartdevOptionsParser({bool verbose = false}) { var argParser = ArgParser( usageLineLength: dartdevUsageLineLength, diff --git a/runtime/bin/main_options.cc b/runtime/bin/main_options.cc index 4efe1ee35a9..b81bb195d96 100644 --- a/runtime/bin/main_options.cc +++ b/runtime/bin/main_options.cc @@ -468,6 +468,9 @@ bool Options::ParseArguments(int argc, } else if (IsOption(argv[i], "disable-analytics")) { disable_dartdev_analytics = true; skipVmOption = true; + } else if (IsOption(argv[i], "disable-telemetry")) { + disable_dartdev_analytics = true; + skipVmOption = true; } else if (IsOption(argv[i], "no-analytics")) { // Just add this option even if we don't go to dartdev. // It is irrelevant for the vm.