Skip to content

Instantly share code, notes, and snippets.

@codazzo
Created April 23, 2014 14:11
Show Gist options
  • Select an option

  • Save codazzo/11216685 to your computer and use it in GitHub Desktop.

Select an option

Save codazzo/11216685 to your computer and use it in GitHub Desktop.
requirebin sketch
var Emitter = require('events').EventEmitter;
var obj = new Emitter();
function addListener(){
obj.on('ok', function logOk(){
obj.removeListener('ok', logOk);
console.log('ok');
});
}
addListener();
addListener();
obj.emit('ok');
function addListener(){obj.on("ok",function e(){obj.removeListener("ok",e),console.log("ok")})}require=function e(t,r,n){function s(o,h){if(!r[o]){if(!t[o]){var v="function"==typeof require&&require;if(!h&&v)return v(o,!0);if(i)return i(o,!0);throw Error("Cannot find module '"+o+"'")}var u=r[o]={exports:{}};t[o][0].call(u.exports,function(e){var r=t[o][1][e];return s(r?r:e)},u,u.exports,e,t,r,n)}return r[o].exports}for(var i="function"==typeof require&&require,o=0;n.length>o;o++)s(n[o]);return s}({Sk64m6:[function(e,t){function r(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function n(e){return"function"==typeof e}function s(e){return"number"==typeof e}function i(e){return"object"==typeof e&&null!==e}function o(e){return void 0===e}t.exports=r,r.EventEmitter=r,r.prototype._events=void 0,r.prototype._maxListeners=void 0,r.defaultMaxListeners=10,r.prototype.setMaxListeners=function(e){if(!s(e)||0>e||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},r.prototype.emit=function(e){var t,r,s,h,v,u;if(this._events||(this._events={}),"error"===e&&(!this._events.error||i(this._events.error)&&!this._events.error.length))throw t=arguments[1],t instanceof Error?t:TypeError('Uncaught, unspecified "error" event.');if(r=this._events[e],o(r))return!1;if(n(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:for(s=arguments.length,h=Array(s-1),v=1;s>v;v++)h[v-1]=arguments[v];r.apply(this,h)}else if(i(r)){for(s=arguments.length,h=Array(s-1),v=1;s>v;v++)h[v-1]=arguments[v];for(u=r.slice(),s=u.length,v=0;s>v;v++)u[v].apply(this,h)}return!0},r.prototype.addListener=function(e,t){var s;if(!n(t))throw TypeError("listener must be a function");if(this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,n(t.listener)?t.listener:t),this._events[e]?i(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t,i(this._events[e])&&!this._events[e].warned){var s;s=o(this._maxListeners)?r.defaultMaxListeners:this._maxListeners,s&&s>0&&this._events[e].length>s&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),console.trace())}return this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){function r(){this.removeListener(e,r),s||(s=!0,t.apply(this,arguments))}if(!n(t))throw TypeError("listener must be a function");var s=!1;return r.listener=t,this.on(e,r),this},r.prototype.removeListener=function(e,t){var r,s,o,h;if(!n(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(r=this._events[e],o=r.length,s=-1,r===t||n(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(i(r)){for(h=o;h-->0;)if(r[h]===t||r[h].listener&&r[h].listener===t){s=h;break}if(0>s)return this;1===r.length?(r.length=0,delete this._events[e]):r.splice(s,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[e],n(r))this.removeListener(e,r);else for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){var t;return t=this._events&&this._events[e]?n(this._events[e])?[this._events[e]]:this._events[e].slice():[]},r.listenerCount=function(e,t){var r;return r=e._events&&e._events[t]?n(e._events[t])?1:e._events[t].length:0}},{}],events:[function(e,t){t.exports=e("Sk64m6")},{}]},{},[]);var Emitter=require("events").EventEmitter,obj=new Emitter;addListener(),addListener(),obj.emit("ok");
{
"name": "requirebin-sketch",
"version": "1.0.0",
"dependencies": {}
}
<style type='text/css'>html, body { margin: 0; padding: 0; border: 0; }
body, html { height: 100%; width: 100%; }</style>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment