Comparing version
@@ -1,1 +0,1 @@ | ||
function EventLite(){return this instanceof EventLite?void 0:new EventLite}!function(t){function e(t){for(var e in l)t[e]=l[e];return t}function n(t,e){return u(this,t).push(e),this}function r(t,e){function n(){i.call(r,t,n),e.apply(this,arguments)}var r=this;return u(r,t).push(n),r}function i(t,e){function n(t){return t!==e}var r,f=this;if(t){if(e){if(r=u(f,t,!0)){if(r=r.filter(n),!r.length)return i.call(f,t);f[o][t]=r}}else if(r=f[o],r&&(delete r[t],!Object.keys(r).length))return i.call(f)}else delete f[o];return f}function f(t,e){function n(t){t.call(f)}function r(t){t.call(f,e)}function i(t){t.apply(f,c)}var f=this,o=u(f,t,!0);if(!o)return!1;var l=arguments.length;if(1===l)o.forEach(n);else if(2===l)o.forEach(r);else{var c=Array.prototype.slice.call(arguments,1);o.forEach(i)}return!!o.length}function u(t,e,n){if(!n||t[o]){var r=t[o]||(t[o]={});return r[e]||(r[e]=[])}}"undefined"!=typeof module&&(module.exports=t);var o="listeners",l={on:n,once:r,off:i,emit:f};e(t.prototype),t.mixin=e}(EventLite); | ||
function EventLite(){return this instanceof EventLite?void 0:new EventLite}!function(e){function n(e){for(var n in o)e[n]=o[n];return e}function t(e,n){return f(this,e).push(n),this}function i(e,n){function t(){r.call(i,e,t),n.apply(this,arguments)}var i=this;return t.originalListener=n,f(i,e).push(t),i}function r(e,n){function t(e){return e!==n&&e.originalListener!==n}var i,u=this;if(arguments.length){if(n){if(i=f(u,e,!0)){if(i=i.filter(t),!i.length)return r.call(u,e);u[l][e]=i}}else if(i=u[l],i&&(delete i[e],!Object.keys(i).length))return r.call(u)}else delete u[l];return u}function u(e,n){function t(e){e.call(u)}function i(e){e.call(u,n)}function r(e){e.apply(u,a)}var u=this,l=f(u,e,!0);if(!l)return!1;var o=arguments.length;if(1===o)l.forEach(t);else if(2===o)l.forEach(i);else{var a=Array.prototype.slice.call(arguments,1);l.forEach(r)}return!!l.length}function f(e,n,t){if(!t||e[l]){var i=e[l]||(e[l]={});return i[n]||(i[n]=[])}}"undefined"!=typeof module&&(module.exports=e);var l="listeners",o={on:t,once:i,off:r,emit:u};n(e.prototype),e.mixin=n}(EventLite); |
/** | ||
* event-lite.js - Light-weight EventEmitter (less than 1KB when minified) | ||
* event-lite.js - Light-weight EventEmitter (less than 1KB when gzipped) | ||
* | ||
@@ -88,2 +88,3 @@ * @copyright Yusuke Kawasaki | ||
var that = this; | ||
wrap.originalListener = func; | ||
getListeners(that, type).push(wrap); | ||
@@ -110,3 +111,3 @@ return that; | ||
var listners; | ||
if (!type) { | ||
if (!arguments.length) { | ||
delete that[LISTENERS]; | ||
@@ -130,3 +131,3 @@ } else if (!func) { | ||
function ne(test) { | ||
return test !== func; | ||
return test !== func && test.originalListener !== func; | ||
} | ||
@@ -133,0 +134,0 @@ } |
{ | ||
"name": "event-lite", | ||
"description": "Light-weight EventEmitter (less than 1KB when minified)", | ||
"version": "0.1.0", | ||
"description": "Light-weight EventEmitter (less than 1KB when gzipped)", | ||
"version": "0.1.1", | ||
"author": "@kawanet", | ||
@@ -9,8 +9,11 @@ "bugs": { | ||
}, | ||
"contributors": [ | ||
"Joshua Wise <josh@joshuawise.ninja>" | ||
], | ||
"devDependencies": { | ||
"jsdoc": "^3.3.2", | ||
"jshint": "^2.8.0", | ||
"mocha": "^2.3.0", | ||
"uglify-js": "^2.4.24", | ||
"zuul": "^3.4.0" | ||
"jsdoc": "^3.4.0", | ||
"jshint": "^2.9.1", | ||
"mocha": "^2.4.5", | ||
"uglify-js": "^2.6.1", | ||
"zuul": "^3.9.0" | ||
}, | ||
@@ -17,0 +20,0 @@ "homepage": "https://github.com/kawanet/event-lite", |
# event-lite.js [](http://badge.fury.io/js/event-lite) [](https://travis-ci.org/kawanet/event-lite) | ||
Light-weight EventEmitter (less than 1KB when minified) | ||
Light-weight EventEmitter (less than 1KB when gzipped) | ||
@@ -52,3 +52,3 @@ [](https://saucelabs.com/u/event-lite) | ||
Copyright (c) 2015 Yusuke Kawasaki | ||
Copyright (c) 2015-2016 Yusuke Kawasaki | ||
@@ -55,0 +55,0 @@ Permission is hereby granted, free of charge, to any person obtaining a copy |
@@ -5,3 +5,3 @@ #!/usr/bin/env mocha -R spec | ||
var EventLite = require("../event-lite"); | ||
var TITLE = __filename.replace(/^.*\//, "") + ":"; | ||
var TITLE = __filename.replace(/^.*\//, ""); | ||
@@ -8,0 +8,0 @@ events_test(); |
@@ -5,3 +5,3 @@ #!/usr/bin/env mocha -R spec | ||
var EventLite = require("../event-lite"); | ||
var TITLE = __filename.replace(/^.*\//, "") + ":"; | ||
var TITLE = __filename.replace(/^.*\//, ""); | ||
@@ -8,0 +8,0 @@ function MyEvent() { |
@@ -5,3 +5,3 @@ #!/usr/bin/env mocha -R spec | ||
var EventLite = require("../event-lite"); | ||
var TITLE = __filename.replace(/^.*\//, "") + ":"; | ||
var TITLE = __filename.replace(/^.*\//, ""); | ||
@@ -35,2 +35,21 @@ events_test(); | ||
}); | ||
it("off() should treat \"\" as a valid event name", function(done) { | ||
var event = EventLite(); | ||
event.on("", NOP); | ||
event.on("foo", NOP); | ||
event.off(""); | ||
assert.ok(event.listeners instanceof Object, "listeners property should be an Object"); | ||
assert.ok(event.listeners[""] === undefined, "the \"\" event should be removed"); | ||
assert.ok(event.listeners.foo.length === 1, "the \"foo\" event should have one listener"); | ||
done(); | ||
}); | ||
it("off() should remove listeners that were added by once()", function(done) { | ||
var event = EventLite(); | ||
event.once("foo", NOP); | ||
event.off("foo", NOP); | ||
assert.equal(event.listeners, null, "listeners property should be removed"); | ||
done(); | ||
}); | ||
}); | ||
@@ -37,0 +56,0 @@ } |
@@ -5,3 +5,3 @@ #!/usr/bin/env mocha -R spec | ||
var EventLite = require("../event-lite"); | ||
var TITLE = __filename.replace(/^.*\//, "") + ":"; | ||
var TITLE = __filename.replace(/^.*\//, ""); | ||
@@ -8,0 +8,0 @@ events_test(); |
Sorry, the diff of this file is not supported yet
22013
4.55%432
4.35%