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,20 +11,20 @@
// 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) {
util.parseDate = function(dateStr) {
// Timestamps are given in UTC and have the format // Timestamps are given in UTC and have the format
// "'yyyy-mm-dd hh:mm:ss.fffffffff'" where "'ffffffffff'" represents // "'yyyy-mm-dd hh:mm:ss.fffffffff'" where "'ffffffffff'" represents
// nanoseconds. // nanoseconds.
// Munge the date into an ISO 8061 format and parse that. // Munge the date into an ISO 8061 format and parse that.
return new Date(dateStr.replace(' ', 'T') + 'Z'); return new Date(dateStr.replace(' ', 'T') + 'Z');
}; };
util.htmlEntityMap = { util.htmlEntityMap = {
'&': '&', '&': '&',
'<': '&lt;', '<': '&lt;',
'>': '&gt;', '>': '&gt;',
@@ -32,15 +32,15 @@ util.htmlEntityMap = {
'\'': '&#39;', '\'': '&#39;',
'/': '&#x2F;', '/': '&#x2F;',
'`': '&#96;', '`': '&#96;',
}; };
util.escapeHTML = function(str) { util.escapeHTML = function(str) {
return str.replace(/[&<>"'`\/]/g, function(s) { return str.replace(/[&<>"'`\/]/g, function(s) {
return util.htmlEntityMap[s]; return util.htmlEntityMap[s];
}); });
}; };
util.getCookie = function(name) { util.getCookie = function(name) {
var key = name + '='; var key = name + '=';
var cookies = document.cookie.split(';'); var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) { for (var i = 0; i < cookies.length; i++) {
@@ -53,4 +53,7 @@ util.getCookie = function(name) {
} }
} }
return ''; return '';
}; };
window.util = util;
})(window);