Let Closure Compiler knows CodeSplitter2 shuffled the fragment ordering Review at http://gwt-code-reviews.appspot.com/1645803 Review by: johnlenz@google.com git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@10893 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/js/ClosureJsRunner.java b/dev/core/src/com/google/gwt/dev/js/ClosureJsRunner.java index 0a16f7a..b14c8a1 100644 --- a/dev/core/src/com/google/gwt/dev/js/ClosureJsRunner.java +++ b/dev/core/src/com/google/gwt/dev/js/ClosureJsRunner.java
@@ -16,6 +16,7 @@ import com.google.gwt.dev.jjs.JsOutputOption; import com.google.gwt.dev.jjs.ast.JProgram; +import com.google.gwt.dev.jjs.impl.CodeSplitter2.FragmentPartitioningResult; import com.google.gwt.dev.js.ast.JsProgram; import com.google.gwt.dev.js.ast.JsProgramFragment; import com.google.gwt.thirdparty.guava.common.base.Preconditions; @@ -215,6 +216,7 @@ private void computeFragmentMap(JProgram jprogram, JsProgram jsProgram) { int fragments = jsProgram.getFragmentCount(); List<Integer> initSeq = jprogram.getSplitPointInitialSequence(); + FragmentPartitioningResult partitionResult = jprogram.getFragmentPartitioningResult(); // // The fragments are expected in a specific order: @@ -237,12 +239,20 @@ // Then come the specified load order sequence for (int i = 0; i < initSeq.size(); i++) { - closureModuleSequenceMap[initSeq.get(i)] = module++; + int initSeqNum = initSeq.get(i); + if (partitionResult != null) { + initSeqNum = partitionResult.getFragmentFromSplitPoint(initSeqNum); + } + closureModuleSequenceMap[initSeqNum] = module++; } // Then the leftovers fragments: if (fragments > 1) { - closureModuleSequenceMap[fragments - 1] = module++; + int leftoverIndex = fragments - 1; + if (partitionResult != null) { + leftoverIndex = partitionResult.getLeftoverFragmentIndex(); + } + closureModuleSequenceMap[leftoverIndex] = module++; } // Finally, the exclusive fragments.