[SDK] Adds --enable-experiment to dart2native.

Bug: https://github.com/dart-lang/sdk/issues/42849
Change-Id: Ibde382971a6b8b296f9a0a8792f0fec0e1741286
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/157963
Commit-Queue: Clement Skau <cskau@google.com>
Reviewed-by: Tess Strickland <sstrickl@google.com>
This commit is contained in:
Clement Skau 2020-08-11 11:22:19 +00:00 committed by commit-bot@chromium.org
parent ebae77f1b7
commit 77ca1e0356
3 changed files with 11 additions and 2 deletions

View file

@ -59,6 +59,10 @@ E.g.: dart2native --packages=/tmp/pkgs main.dart
''')
..addOption('save-debugging-info', abbr: 'S', valueHelp: 'path', help: '''
Remove debugging information from the output and save it separately to the specified file. <path> can be relative or absolute.
''')
..addOption('enable-experiment',
defaultsTo: '', valueHelp: 'feature', hide: true, help: '''
Comma separated list of experimental features.
''')
..addFlag('verbose',
abbr: 'v', negatable: false, help: 'Show verbose output.');
@ -99,6 +103,7 @@ Remove debugging information from the output and save it separately to the speci
debugFile: parsedArgs['save-debugging-info'],
packages: parsedArgs['packages'],
defines: parsedArgs['define'],
enableExperiment: parsedArgs['enable-experiment'],
enableAsserts: parsedArgs['enable-asserts'],
verbose: parsedArgs['verbose'],
extraOptions: parsedArgs['extra-gen-snapshot-options']);

View file

@ -39,11 +39,13 @@ Future markExecutable(String outputFile) {
Future generateAotKernel(String dart, String genKernel, String platformDill,
String sourceFile, String kernelFile, String packages, List<String> defines,
{List<String> extraGenKernelOptions = const []}) {
{String enableExperiment = '',
List<String> extraGenKernelOptions = const []}) {
return Process.run(dart, [
genKernel,
'--platform',
platformDill,
if (enableExperiment.isNotEmpty) '--enable-experiment=${enableExperiment}',
'--aot',
'-Ddart.vm.product=true',
...(defines.map((d) => '-D${d}')),

View file

@ -24,6 +24,7 @@ Future<void> generateNative({
String debugFile,
String packages,
List<String> defines,
String enableExperiment = '',
bool enableAsserts = false,
bool verbose = false,
List<String> extraOptions = const [],
@ -52,7 +53,8 @@ Future<void> generateNative({
final String kernelFile = path.join(tempDir.path, 'kernel.dill');
final kernelResult = await generateAotKernel(Platform.executable, genKernel,
productPlatformDill, sourcePath, kernelFile, packages, defines);
productPlatformDill, sourcePath, kernelFile, packages, defines,
enableExperiment: enableExperiment);
if (kernelResult.exitCode != 0) {
stderr.writeln(kernelResult.stdout);
stderr.writeln(kernelResult.stderr);