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 3418c9aec9fca13e7b506b5afbd867dc790794e0..57bd6038bf3d9d3a5dfd82c444086229af00db13 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 |
@@ -1439,17 +1439,22 @@ mainBuffer.add(r''' |
// [emitOneShotInterceptors] have been called. |
emitCompileTimeConstants(mainBuffer, mainOutputUnit); |
- // We write a javascript mapping from DeferredLibrary elements |
- // (really their String argument) to the js hunk to load. |
+ // Write a javascript mapping from Deferred import load ids (derrived from |
+ // the import prefix.) to a list of lists of js hunks to load. |
// TODO(sigurdm): Create a syntax tree for this. |
// TODO(sigurdm): Also find out where to place it. |
mainBuffer.write("\$.libraries_to_load = {"); |
- for (String constant in compiler.deferredLoadTask.hunksToLoad.keys) { |
+ for (String loadId in compiler.deferredLoadTask.hunksToLoad.keys) { |
// TODO(sigurdm): Escape these strings. |
- mainBuffer.write('"$constant":['); |
- for (OutputUnit outputUnit in |
- compiler.deferredLoadTask.hunksToLoad[constant]) { |
- mainBuffer.write('"${outputUnit.partFileName(compiler)}.part.js", '); |
+ mainBuffer.write('"$loadId":['); |
+ for (List<OutputUnit> outputUnits in |
+ compiler.deferredLoadTask.hunksToLoad[loadId]) { |
+ mainBuffer.write("["); |
+ for (OutputUnit outputUnit in outputUnits) { |
+ mainBuffer |
+ .write('"${outputUnit.partFileName(compiler)}.part.js", '); |
+ } |
+ mainBuffer.write("],"); |
} |
mainBuffer.write("],\n"); |
} |