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

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

Issue 221663005: Load deferred chunks in the right order. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 9 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 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");
}
« no previous file with comments | « sdk/lib/_internal/compiler/implementation/deferred_load.dart ('k') | sdk/lib/_internal/lib/async_patch.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698