Default softPermutationId to 0.
This fixes soft rebinding for permutation 0, where previously
module.__softPermutationId would become undefined (because permutation
0's strong name does not have a :0 suffix).
This resulted in the runtime "switch (permutationId)" logic always
picking the default binding (which may/may not be the one for
permutation 0).
Bug: issue 8575
Change-Id: I19a6f9650f5414d98905c0e45cd3a78628b05dd2
(cherry picked from commit 4ed8dc9750b1b241bb41fcf0974ab3a35aa41168)
diff --git a/dev/core/src/com/google/gwt/core/ext/linker/impl/permutations.js b/dev/core/src/com/google/gwt/core/ext/linker/impl/permutations.js
index b35644f..7702361 100644
--- a/dev/core/src/com/google/gwt/core/ext/linker/impl/permutations.js
+++ b/dev/core/src/com/google/gwt/core/ext/linker/impl/permutations.js
@@ -20,7 +20,9 @@
// the strong name of the cache.js file to load.
var answers = [];
- var softPermutationId;
+ // Default to 0, as the strongName for permutation 0 does not include a ":0" suffix
+ // for backwards compatibility purposes (@see PermutationsUtil::addPermutationsJs).
+ var softPermutationId = 0;
// Deferred-binding mapper function. Sets a value into the several-level-deep
// answers map. The keys are specified by a non-zero-length propValArray,