if (!Array.prototype.find) { Array.prototype.find = function(predicate) { if (this === null) { throw new TypeError('Array.prototype.find called on null or undefined') } if (typeof predicate !== 'function') { throw new TypeError('predicate must be a function') } var list = Object(this) var length = list.length >>> 0 var thisArg = arguments[1] var value for (var i = 0; i < length; i++) { value = list[i] if (predicate.call(thisArg, value, i, list)) { return value } } return undefined } } if (window && typeof window.CustomEvent !== "function") { function CustomEvent(event, params) { params = params || { bubbles: false, cancelable: false, detail: undefined } var evt = document.createEvent('CustomEvent') evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail) return evt } if (typeof window.Event !== 'undefined') { CustomEvent.prototype = window.Event.prototype } window.CustomEvent = CustomEvent }