Index: dart/site/try/poi/poi.dart |
diff --git a/dart/site/try/poi/poi.dart b/dart/site/try/poi/poi.dart |
index f0f61a1f789a63a6dc06f8b9423b25acccccfe9f..cdc400c5bbb7c40a3c27463451c9d7e84a2473ef 100644 |
--- a/dart/site/try/poi/poi.dart |
+++ b/dart/site/try/poi/poi.dart |
@@ -61,7 +61,7 @@ import 'package:compiler/implementation/scanner/scannerlib.dart' show |
Token; |
import 'package:compiler/implementation/js/js.dart' show |
- prettyPrint; |
+ js; |
/// Enabled by the option --enable-dart-mind. Controls if this program should |
/// be querying Dart Mind. |
@@ -96,6 +96,10 @@ bool isVerbose = false; |
/// the POI. |
bool isCompiler = false; |
+/// Enabled by the option --minify. Passes the same option to the compiler to |
+/// generate minified output. |
+bool enableMinification = false; |
+ |
/// When true (the default value) print serialized scope information at the |
/// provided position. |
const bool PRINT_SCOPE_INFO = |
@@ -160,6 +164,9 @@ main(List<String> arguments) { |
case '--compile': |
isCompiler = true; |
break; |
+ case '--minify': |
+ enableMinification = true; |
+ break; |
default: |
throw 'Unknown option: $argument.'; |
} |
@@ -212,7 +219,7 @@ api.CompilerInputProvider simulateMutation( |
cache = new io.File(cachedFileName).readAsBytes().then((data) { |
printVerbose( |
'Read file $cachedFileName: ' |
- '${UTF8.decode(data.sublist(0, 100), allowMalformed: true)}...'); |
+ '${UTF8.decode(data.take(100).toList(), allowMalformed: true)}...'); |
return data; |
}); |
count++; |
@@ -386,6 +393,10 @@ Future<Element> runPoi( |
options.add('--analyze-only'); |
} |
+ if (enableMinification) { |
+ options.add('--minify'); |
+ } |
+ |
LibraryUpdater updater = |
new LibraryUpdater( |
cachedCompiler, inputProvider, script, printWallClock, printVerbose); |
@@ -430,25 +441,10 @@ Future<Element> runPoiInternal( |
Future<bool> compilation; |
if (updater.hasPendingUpdates) { |
- List<Element> updatedElements = updater.applyUpdates(); |
compilation = new Future(() { |
- cachedCompiler.progress.reset(); |
- for (Element element in updatedElements) { |
- cachedCompiler.enqueuer.resolution.addToWorkList(element); |
- } |
- cachedCompiler.processQueue(cachedCompiler.enqueuer.resolution, null); |
- |
- cachedCompiler.phase = Compiler.PHASE_DONE_RESOLVING; |
- |
- for (Element element in updatedElements) { |
- cachedCompiler.enqueuer.codegen.addToWorkList(element); |
- } |
- cachedCompiler.processQueue(cachedCompiler.enqueuer.codegen, null); |
- |
- for (Element element in updatedElements) { |
- var node = cachedCompiler.enqueuer.codegen.generatedCode[element]; |
- print(prettyPrint(node, cachedCompiler).getText()); |
- } |
+ var node = js.statement( |
+ r'var $dart_patch = #', js.escapedString(updater.computeUpdateJs())); |
+ print(updater.prettyPrintJs(node)); |
return !cachedCompiler.compilationFailed; |
}); |