Description: bundle yaeti module as patch
 This module is made for node-websocket.
 https://github.com/ibc/yaeti
Author: Jérémy Lal <kapouer@melix.org>
Last-Update: 2016-12-21
Forwarded: not-needed
--- /dev/null
+++ b/node_modules/yaeti/index.js
@@ -0,0 +1,4 @@
+module.exports = {
+	EventTarget:  require('./lib/EventTarget'),
+	Event:        require('./lib/Event')
+};
--- /dev/null
+++ b/node_modules/yaeti/lib/Event.browser.js
@@ -0,0 +1,5 @@
+/**
+ * In browsers export the native Event interface.
+ */
+
+module.exports = global.Event;
--- /dev/null
+++ b/node_modules/yaeti/lib/Event.js
@@ -0,0 +1,10 @@
+/**
+ * Expose the Event class.
+ */
+module.exports = _Event;
+
+
+function _Event(type) {
+	this.type = type;
+	this.isTrusted = false;
+}
--- /dev/null
+++ b/node_modules/yaeti/lib/EventTarget.js
@@ -0,0 +1,121 @@
+/**
+ * Expose the _EventTarget class.
+ */
+module.exports = _EventTarget;
+
+
+function _EventTarget() {
+	// Do nothing if called for a native EventTarget object..
+	if (typeof this.addEventListener === 'function') {
+		return;
+	}
+
+	this._listeners = {};
+
+	this.addEventListener = _addEventListener;
+	this.removeEventListener = _removeEventListener;
+	this.dispatchEvent = _dispatchEvent;
+}
+
+
+Object.defineProperties(_EventTarget.prototype, {
+	listeners: {
+		get: function () {
+			return this._listeners;
+		}
+	}
+});
+
+
+function _addEventListener(type, newListener) {
+	var listenersType,
+		i, listener;
+
+	if (!type || !newListener) {
+		return;
+	}
+
+	listenersType = this._listeners[type];
+	if (listenersType === undefined) {
+		this._listeners[type] = listenersType = [];
+	}
+
+	for (i = 0; !!(listener = listenersType[i]); i++) {
+		if (listener === newListener) {
+			return;
+		}
+	}
+
+	listenersType.push(newListener);
+}
+
+
+function _removeEventListener(type, oldListener) {
+	var listenersType,
+		i, listener;
+
+	if (!type || !oldListener) {
+		return;
+	}
+
+	listenersType = this._listeners[type];
+	if (listenersType === undefined) {
+		return;
+	}
+
+	for (i = 0; !!(listener = listenersType[i]); i++) {
+		if (listener === oldListener) {
+			listenersType.splice(i, 1);
+			break;
+		}
+	}
+
+	if (listenersType.length === 0) {
+		delete this._listeners[type];
+	}
+}
+
+
+function _dispatchEvent(event) {
+	var type,
+		listenersType,
+		dummyListener,
+		stopImmediatePropagation = false,
+		i, listener;
+
+	if (!event || typeof event.type !== 'string') {
+		throw new Error('`event` must have a valid `type` property');
+	}
+
+	if (event._dispatched) {
+		throw new Error('event already dispatched');
+	}
+	event._dispatched = true;
+
+	// Force the event to be cancelable.
+	event.cancelable = true;
+	event.target = this;
+
+	// Override stopImmediatePropagation() function.
+	event.stopImmediatePropagation = function () {
+		stopImmediatePropagation = true;
+	};
+
+	type = event.type;
+	listenersType = (this._listeners[type] || []);
+
+	dummyListener = this['on' + type];
+	if (typeof dummyListener === 'function') {
+		listenersType.push(dummyListener);
+	}
+
+	for (i = 0; !!(listener = listenersType[i]); i++) {
+		if (stopImmediatePropagation) {
+			break;
+		}
+
+		listener.call(this, event);
+	}
+
+	return !event.defaultPrevented;
+}
