@ungap/event-target
Version:
An EventTarget polyfill
2 lines • 1.06 kB
JavaScript
/*! (c) Andrea Giammarchi - ISC */
var self=this||{};try{self.EventTarget=(new EventTarget).constructor}catch(t){!function(t,e){var n=t.create,r=t.defineProperty,i=s.prototype;function s(){"use strict";e.set(this,n(null))}function a(t,e,n){r(t,e,{configurable:!0,writable:!0,value:n})}function o(t){var e=t.options;return e&&e.once&&t.target.removeEventListener(this.type,t.listener),"function"==typeof t.listener?t.listener.call(t.target,this):t.listener.handleEvent(this),this._stopImmediatePropagationFlag}a(i,"addEventListener",(function(t,n,r){for(var i=e.get(this),s=i[t]||(i[t]=[]),a=0,o=s.length;a<o;a++)if(s[a].listener===n)return;s.push({target:this,listener:n,options:r})})),a(i,"dispatchEvent",(function(t){var n=e.get(this)[t.type];return n&&(a(t,"target",this),a(t,"currentTarget",this),n.slice(0).some(o,t),delete t.currentTarget,delete t.target),!0})),a(i,"removeEventListener",(function(t,n){for(var r=e.get(this),i=r[t]||(r[t]=[]),s=0,a=i.length;s<a;s++)if(i[s].listener===n)return void i.splice(s,1)})),self.EventTarget=s}(Object,new WeakMap)}