Wrap util.js in an IIFE to prevent deploy error

'use strict' can mess up execution of third-party scripts if
they are all concatenated to the same file. To prevent this, code
is wrapped in an immediately-invoked function expression (IIFE).
This ensures that the strict mode is only applied within the scope
of the function it’s wrapped in.

Change-Id: I59e433b419e2e7b85f87cc97d3add577e2c7590e
This commit is contained in:
Andrew Bonventre
2016-03-29 21:34:50 -04:00
parent 1360710fde
commit ef01a637a1

View File

@@ -11,46 +11,49 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and // See the License for the specific language governing permissions and
// limitations under the License. // limitations under the License.
(function(window) {
'use strict';
'use strict'; var util = window.util || {};
var util = util || {}; util.parseDate = function(dateStr) {
// Timestamps are given in UTC and have the format
// "'yyyy-mm-dd hh:mm:ss.fffffffff'" where "'ffffffffff'" represents
// nanoseconds.
// Munge the date into an ISO 8061 format and parse that.
return new Date(dateStr.replace(' ', 'T') + 'Z');
};
util.parseDate = function(dateStr) { util.htmlEntityMap = {
// Timestamps are given in UTC and have the format '&': '&',
// "'yyyy-mm-dd hh:mm:ss.fffffffff'" where "'ffffffffff'" represents '<': '&lt;',
// nanoseconds. '>': '&gt;',
// Munge the date into an ISO 8061 format and parse that. '"': '&quot;',
return new Date(dateStr.replace(' ', 'T') + 'Z'); '\'': '&#39;',
}; '/': '&#x2F;',
'`': '&#96;',
};
util.htmlEntityMap = { util.escapeHTML = function(str) {
'&': '&amp;', return str.replace(/[&<>"'`\/]/g, function(s) {
'<': '&lt;', return util.htmlEntityMap[s];
'>': '&gt;', });
'"': '&quot;', };
'\'': '&#39;',
'/': '&#x2F;',
'`': '&#96;',
};
util.escapeHTML = function(str) { util.getCookie = function(name) {
return str.replace(/[&<>"'`\/]/g, function(s) { var key = name + '=';
return util.htmlEntityMap[s]; var cookies = document.cookie.split(';');
}); for (var i = 0; i < cookies.length; i++) {
}; var c = cookies[i];
while (c.charAt(0) == ' ') {
util.getCookie = function(name) { c = c.substring(1);
var key = name + '='; }
var cookies = document.cookie.split(';'); if (c.indexOf(key) == 0) {
for (var i = 0; i < cookies.length; i++) { return c.substring(key.length, c.length);
var c = cookies[i]; }
while (c.charAt(0) == ' ') {
c = c.substring(1);
} }
if (c.indexOf(key) == 0) { return '';
return c.substring(key.length, c.length); };
}
} window.util = util;
return ''; })(window);
};