Skip to content

Instantly share code, notes, and snippets.

@thr0wn
thr0wn / eventemitter.js
Created May 2, 2017 01:40 — forked from mudge/eventemitter.js
A very simple EventEmitter in pure JavaScript (suitable for both node.js and browsers).
/* Polyfill indexOf. */
var indexOf;
if (typeof Array.prototype.indexOf === 'function') {
indexOf = function (haystack, needle) {
return haystack.indexOf(needle);
};
} else {
indexOf = function (haystack, needle) {
var i = 0, length = haystack.length, idx = -1, found = false;
function makeMembrane(){
var revokableWrappingHandler = Proxy.revocable({}, {
get: function(target, name){
return (...args) => wrap(Reflect[name](...args));
}
});
var revoke = revokableWrappingHandler.revoke;
var wrappingHandler = revokableWrappingHandler.proxy;
var un2wrapped = new WeakMap();