From ef01a637a1c81be7d38af95ea90a104bfa6dbd8d Mon Sep 17 00:00:00 2001 From: Andrew Bonventre Date: Tue, 29 Mar 2016 21:34:50 -0400 Subject: [PATCH] Wrap util.js in an IIFE to prevent deploy error MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit '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 --- polygerrit-ui/app/scripts/util.js | 77 ++++++++++++++++--------------- 1 file changed, 40 insertions(+), 37 deletions(-) diff --git a/polygerrit-ui/app/scripts/util.js b/polygerrit-ui/app/scripts/util.js index 3f806a43ee..13f3243672 100644 --- a/polygerrit-ui/app/scripts/util.js +++ b/polygerrit-ui/app/scripts/util.js @@ -11,46 +11,49 @@ // 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(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) { - // 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.htmlEntityMap = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + '\'': ''', + '/': '/', + '`': '`', + }; -util.htmlEntityMap = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - '\'': ''', - '/': '/', - '`': '`', -}; + util.escapeHTML = function(str) { + return str.replace(/[&<>"'`\/]/g, function(s) { + return util.htmlEntityMap[s]; + }); + }; -util.escapeHTML = function(str) { - return str.replace(/[&<>"'`\/]/g, function(s) { - return util.htmlEntityMap[s]; - }); -}; - -util.getCookie = function(name) { - var key = name + '='; - var cookies = document.cookie.split(';'); - for (var i = 0; i < cookies.length; i++) { - var c = cookies[i]; - while (c.charAt(0) == ' ') { - c = c.substring(1); + util.getCookie = function(name) { + var key = name + '='; + var cookies = document.cookie.split(';'); + for (var i = 0; i < cookies.length; i++) { + var c = cookies[i]; + while (c.charAt(0) == ' ') { + c = c.substring(1); + } + if (c.indexOf(key) == 0) { + return c.substring(key.length, c.length); + } } - if (c.indexOf(key) == 0) { - return c.substring(key.length, c.length); - } - } - return ''; -}; + return ''; + }; + + window.util = util; +})(window);