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 231035a42efce9cc6a30e789781a8005e7d5bc2b..605b08b8a888c4ae870e65a13872209bc11384cd 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"); |
} |