diff --git a/pkg/dart2wasm/bin/dart2wasm.dart b/pkg/dart2wasm/bin/dart2wasm.dart index 4a382a93de4..8e1f6964b5d 100644 --- a/pkg/dart2wasm/bin/dart2wasm.dart +++ b/pkg/dart2wasm/bin/dart2wasm.dart @@ -5,102 +5,109 @@ import 'dart:io'; import 'dart:typed_data'; +import 'package:args/args.dart' as args; import 'package:front_end/src/api_unstable/vm.dart' show printDiagnosticMessage, resolveInputUri; import 'package:dart2wasm/compile.dart'; -import 'package:dart2wasm/translator.dart'; +import 'package:dart2wasm/compiler_options.dart'; +import 'package:dart2wasm/option.dart'; -final Map boolOptionMap = { - "export-all": (o, value) => o.exportAll = value, - "import-shared-memory": (o, value) => o.importSharedMemory = value, - "inlining": (o, value) => o.inlining = value, - "lazy-constants": (o, value) => o.lazyConstants = value, - "local-nullability": (o, value) => o.localNullability = value, - "name-section": (o, value) => o.nameSection = value, - "nominal-types": (o, value) => o.nominalTypes = value, - "parameter-nullability": (o, value) => o.parameterNullability = value, - "polymorphic-specialization": (o, value) => - o.polymorphicSpecialization = value, - "print-kernel": (o, value) => o.printKernel = value, - "print-wasm": (o, value) => o.printWasm = value, - "runtime-types": (o, value) => o.runtimeTypes = value, - "string-data-segments": (o, value) => o.stringDataSegments = value, -}; -final Map intOptionMap = { - "shared-memory-max-pages": (o, value) => o.sharedMemoryMaxPages = value, - "watch": (o, value) => (o.watchPoints ??= []).add(value), -}; +// Used to allow us to keep defaults on their respective option structs. +final CompilerOptions _d = CompilerOptions.defaultOptions(); -Never usage(String message) { - print("Usage: dart2wasm [] "); - print(""); - print("*NOTE*: Wasm compilation is experimental."); - print("The support may change, or be removed, with no advance notice."); - print(""); - print("Options:"); - print(" --dart-sdk="); - print(" --platform="); - print(""); - for (String option in boolOptionMap.keys) { - print(" --[no-]$option"); +final List