From ccde43b4306a696721d01d8cf9c93cd121b9e100 Mon Sep 17 00:00:00 2001 From: Andy Joslin Date: Mon, 5 May 2014 12:07:23 -0600 Subject: [PATCH] refactor(events): don't clobber window.CustomEvent Resolves #1231 --- js/utils/events.js | 53 ++++++++++++++++++++-------------------------- 1 file changed, 23 insertions(+), 30 deletions(-) diff --git a/js/utils/events.js b/js/utils/events.js index 6f2c437cb1..d99f1b5b2a 100644 --- a/js/utils/events.js +++ b/js/utils/events.js @@ -13,36 +13,29 @@ (function(ionic) { // Custom event polyfill - if(!window.CustomEvent) { - (function() { - var CustomEvent; - - CustomEvent = function(event, params) { - var evt; - params = params || { - bubbles: false, - cancelable: false, - detail: undefined - }; - try { - evt = document.createEvent("CustomEvent"); - evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail); - } catch (error) { - // fallback for browsers that don't support createEvent('CustomEvent') - evt = document.createEvent("Event"); - for (var param in params) { - evt[param] = params[param]; - } - evt.initEvent(event, params.bubbles, params.cancelable); - } - return evt; + ionic.CustomEvent = window.CustomEvent || (function() { + function CustomEvent(event, params) { + var evt; + params = params || { + bubbles: false, + cancelable: false, + detail: undefined }; - - CustomEvent.prototype = window.Event.prototype; - - window.CustomEvent = CustomEvent; - })(); - } + try { + evt = document.createEvent("CustomEvent"); + evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail); + } catch (error) { + // fallback for browsers that don't support createEvent('CustomEvent') + evt = document.createEvent("Event"); + for (var param in params) { + evt[param] = params[param]; + } + evt.initEvent(event, params.bubbles, params.cancelable); + } + return evt; + } + CustomEvent.prototype = window.Event.prototype; + })(); /** @@ -65,7 +58,7 @@ */ // Trigger a new event trigger: function(eventType, data, bubbles, cancelable) { - var event = new CustomEvent(eventType, { + var event = new ionic.CustomEvent(eventType, { detail: data, bubbles: !!bubbles, cancelable: !!cancelable