| /* |
| * Copyright 2010 Google Inc. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| * use this file except in compliance with the License. You may obtain a copy of |
| * the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| * License for the specific language governing permissions and limitations under |
| * the License. |
| */ |
| |
| function getCompiledCodeFilename() { |
| |
| // A multi-tier lookup map that uses actual property values to quickly find |
| // the strong name of the cache.js file to load. |
| var answers = []; |
| |
| // 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, |
| // which should be a flat array target property values. Used by the generated |
| // PERMUTATIONS code. |
| function unflattenKeylistIntoAnswers(propValArray, value) { |
| var answer = answers; |
| for (var i = 0, n = propValArray.length - 1; i < n; ++i) { |
| // lazy initialize an empty object for the current key if needed |
| answer = answer[propValArray[i]] || (answer[propValArray[i]] = []); |
| } |
| // set the final one to the value |
| answer[propValArray[n]] = value; |
| } |
| |
| // Provides the computePropvalue() function and sets the |
| // __gwt_isKnownPropertyValue and MODULE_FUNC__.__computePropValue variables |
| __PROPERTIES__ |
| |
| sendStats('bootstrap', 'selectingPermutation'); |
| if (isHostedMode()) { |
| return computeUrlForResource("__HOSTED_FILENAME__"); |
| } |
| var strongName; |
| try { |
| // __PERMUTATIONS_BEGIN__ |
| // Permutation logic is injected here. this code populates the |
| // answers variable. |
| // __PERMUTATIONS_END__ |
| var idx = strongName.indexOf(':'); |
| if (idx != -1) { |
| softPermutationId = parseInt(strongName.substring(idx + 1), 10); |
| strongName = strongName.substring(0, idx); |
| } |
| } catch (e) { |
| // intentionally silent on property failure |
| } |
| __MODULE_FUNC__.__softPermutationId = softPermutationId; |
| return computeUrlForResource(strongName + '.cache.js'); |
| } |