| OLD | NEW | 
|   1 // Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file |   1 // Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file | 
|   2 // for details. All rights reserved. Use of this source code is governed by a |   2 // for details. All rights reserved. Use of this source code is governed by a | 
|   3 // BSD-style license that can be found in the LICENSE file. |   3 // BSD-style license that can be found in the LICENSE file. | 
|   4  |   4  | 
|   5 library dart2js.stress; |   5 library dart2js.stress; | 
 |   6  | 
|   6 import "dart2js.dart" as dart2js; |   7 import "dart2js.dart" as dart2js; | 
|   7  |   8  | 
|   8 const ITERATIONS_FLAG_PREFIX = "--iterations="; |   9 const ITERATIONS_FLAG_PREFIX = "--iterations="; | 
|   9 void main(List<String> args) { |  10 void main(List<String> args) { | 
|  10   Stopwatch sw = new Stopwatch(); |  11   Stopwatch sw = new Stopwatch(); | 
|  11   int count = 0; |  12   int count = 0; | 
|  12   int maxCount = null; |  13   int maxCount = null; | 
|  13   if (args.isNotEmpty && args[0].startsWith(ITERATIONS_FLAG_PREFIX)) { |  14   if (args.isNotEmpty && args[0].startsWith(ITERATIONS_FLAG_PREFIX)) { | 
|  14     maxCount = int.parse(args[0].substring(ITERATIONS_FLAG_PREFIX.length)); |  15     maxCount = int.parse(args[0].substring(ITERATIONS_FLAG_PREFIX.length)); | 
|  15     args = args.sublist(1); |  16     args = args.sublist(1); | 
|  16   } |  17   } | 
|  17   if (maxCount == null) { |  18   if (maxCount == null) { | 
|  18     print("Running indefinitely.\n" |  19     print("Running indefinitely.\n" | 
|  19           "Use '$ITERATIONS_FLAG_PREFIX<count>' to set a repetition count" |  20         "Use '$ITERATIONS_FLAG_PREFIX<count>' to set a repetition count" | 
|  20           " (as first flag)."); |  21         " (as first flag)."); | 
|  21   } |  22   } | 
|  22   args = ["--suppress-warnings", "--suppress-hints"]..addAll(args); |  23   args = ["--suppress-warnings", "--suppress-hints"]..addAll(args); | 
|  23   void iterate() { |  24   void iterate() { | 
|  24     count++; |  25     count++; | 
|  25     sw.reset(); |  26     sw.reset(); | 
|  26     sw.start(); |  27     sw.start(); | 
|  27     dart2js.internalMain(args) |  28     dart2js.internalMain(args).then((_) { | 
|  28       .then((_) { |  29       print("$count: ${sw.elapsedMilliseconds}ms"); | 
|  29         print("$count: ${sw.elapsedMilliseconds}ms"); |  30     }).then((_) { | 
|  30       }) |  31       if (maxCount == null || count < maxCount) { | 
|  31       .then((_) { |  32         iterate(); | 
|  32         if (maxCount == null || count < maxCount) { |  33       } | 
|  33           iterate(); |  34     }); | 
|  34         } |  | 
|  35       }); |  | 
|  36   } |  35   } | 
|  37   iterate(); |  36   iterate(); | 
|  38 } |  37 } | 
| OLD | NEW |