// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. library dart2js.profile_many; import 'dart:async'; import 'package:compiler/src/dart2js.dart' as cmdline; const String USAGE = """ Usage: dart2js_profile_many.dart [OPTIONS] [FILES] Invokes dart2js separately for each file using the given options. This is for profiling multiple compilations in the Dart Observatory. """; printUsage() { print(USAGE); } void main(List args) { var options = []; var files = []; for (String arg in args) { if (arg.startsWith('-')) { options.add(arg); } else { files.add(arg); } } if (files.length == 0) { printUsage(); return; } cmdline.exitFunc = (code) { throw "Exit with code $code"; }; Future.forEach(files, (String file) { List subargs = []; subargs.addAll(options); subargs.add(file); return cmdline.compilerMain(subargs).catchError((e) {}); }).then((_) { print("Done"); }); }