diff options
author | Filipa Lacerda <filipa@gitlab.com> | 2017-09-11 14:34:16 +0000 |
---|---|---|
committer | Phil Hughes <me@iamphill.com> | 2017-09-11 14:34:16 +0000 |
commit | d329cf4f02bf3a2db00a769c7836410b2e364079 (patch) | |
tree | 0ec17344cb18954e9a84e9aefe0e19faa1cd34e6 | |
parent | f9b30c6d7ea0aa0ed60a7fdf94273b4b3c24f6fc (diff) | |
download | gitlab-ce-d329cf4f02bf3a2db00a769c7836410b2e364079.tar.gz |
Adds Event polyfill for IE
-rw-r--r-- | app/assets/javascripts/commons/polyfills.js | 1 | ||||
-rw-r--r-- | app/assets/javascripts/commons/polyfills/custom_event.js | 7 | ||||
-rw-r--r-- | app/assets/javascripts/commons/polyfills/event.js | 18 | ||||
-rw-r--r-- | changelogs/unreleased/ie-event-polyfill.yml | 5 |
4 files changed, 30 insertions, 1 deletions
diff --git a/app/assets/javascripts/commons/polyfills.js b/app/assets/javascripts/commons/polyfills.js index b78089525cc..cb5a9a9f6b5 100644 --- a/app/assets/javascripts/commons/polyfills.js +++ b/app/assets/javascripts/commons/polyfills.js @@ -12,4 +12,5 @@ import 'core-js/fn/symbol'; // Browser polyfills import './polyfills/custom_event'; import './polyfills/element'; +import './polyfills/event'; import './polyfills/nodelist'; diff --git a/app/assets/javascripts/commons/polyfills/custom_event.js b/app/assets/javascripts/commons/polyfills/custom_event.js index aea61b82d03..db51ade61ae 100644 --- a/app/assets/javascripts/commons/polyfills/custom_event.js +++ b/app/assets/javascripts/commons/polyfills/custom_event.js @@ -1,7 +1,12 @@ if (typeof window.CustomEvent !== 'function') { window.CustomEvent = function CustomEvent(event, params) { const evt = document.createEvent('CustomEvent'); - const evtParams = params || { bubbles: false, cancelable: false, detail: undefined }; + const evtParams = { + bubbles: false, + cancelable: false, + detail: undefined, + ...params, + }; evt.initCustomEvent(event, evtParams.bubbles, evtParams.cancelable, evtParams.detail); return evt; }; diff --git a/app/assets/javascripts/commons/polyfills/event.js b/app/assets/javascripts/commons/polyfills/event.js new file mode 100644 index 00000000000..ff5b9a1982f --- /dev/null +++ b/app/assets/javascripts/commons/polyfills/event.js @@ -0,0 +1,18 @@ +/** + * Polyfill for IE11 support. + * new Event() is not supported by IE11. + * Although `initEvent` is deprecated for modern browsers it is the one supported by IE + */ +if (typeof window.Event !== 'function') { + window.Event = function Event(event, params) { + const evt = document.createEvent('Event'); + const evtParams = { + bubbles: false, + cancelable: false, + ...params, + }; + evt.initEvent(event, evtParams.bubbles, evtParams.cancelable); + return evt; + }; + window.Event.prototype = Event; +} diff --git a/changelogs/unreleased/ie-event-polyfill.yml b/changelogs/unreleased/ie-event-polyfill.yml new file mode 100644 index 00000000000..eaab089a47e --- /dev/null +++ b/changelogs/unreleased/ie-event-polyfill.yml @@ -0,0 +1,5 @@ +--- +title: Adds Event polyfill for IE11 +merge_request: +author: +type: fixed |