Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1103)

Unified Diff: sdk/lib/_internal/compiler/implementation/js_emitter/code_emitter_task.dart

Issue 1259553002: Emit program and dependency information as relations in a Prolog database. Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: sdk/lib/_internal/compiler/implementation/js_emitter/code_emitter_task.dart
diff --git a/sdk/lib/_internal/compiler/implementation/js_emitter/code_emitter_task.dart b/sdk/lib/_internal/compiler/implementation/js_emitter/code_emitter_task.dart
index a6386a38711f43c8fc311178e9856bda3257c085..19fdd3b8bd3f6af9a2a58989e8b1ab240a8e1b42 100644
--- a/sdk/lib/_internal/compiler/implementation/js_emitter/code_emitter_task.dart
+++ b/sdk/lib/_internal/compiler/implementation/js_emitter/code_emitter_task.dart
@@ -1623,6 +1623,25 @@ class CodeEmitterTask extends CompilerTask {
emitDeferredCode();
});
+ // Write collected information to database.
+ EventSink<String> sink = compiler.outputProvider("dart", "pl");
+ prolog.ProgramEmitter emitter = new prolog.ProgramEmitter(sink);
+ prolog.ProgramBuilder builder = new prolog.ProgramBuilder();
+ // TODO(karlklose): use only one Relations.
+ [compiler.enqueuer.resolution, compiler.enqueuer.codegen].forEach((e) {
+ Relations dep = e.dependencies;
+ dep.finalizeInformation(compiler);
+ for (String name in dep.links.keys) {
+ Map relation = dep.links[name];
+ for (var source in relation.keys) {
+ for (var target in relation[source]) {
+ builder.addRelation('${dep.prefix}_$name', [source, target]);
+ }
+ }
+ }
+ });
+ emitter.emitProgram(builder.program);
+
return compiler.assembledCode;
}

Powered by Google App Engine
This is Rietveld 408576698