From 3d3f0a0b02ba3dd4c71d4c58b88c5a5ae7b338c9 Mon Sep 17 00:00:00 2001 From: Justin Ridgewell Date: Sat, 24 Jan 2015 14:44:17 -0500 Subject: [PATCH] Prevent "on" and "off" from altering trigger events array --- test/events.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/test/events.js b/test/events.js index 5b21bc04..7ac44195 100644 --- a/test/events.js +++ b/test/events.js @@ -340,16 +340,16 @@ test("callback list is not altered during trigger", 2, function () { var counter = 0, obj = _.extend({}, Backbone.Events); + var fn = function(){}; + var fnOff = function(){ obj.off('event', fn); }; var incr = function(){ counter++; }; - obj.on('event', function(){ obj.on('event', incr).on('all', incr); }) - .trigger('event'); - equal(counter, 0, 'bind does not alter callback list'); - obj.off() - .on('event', function(){ obj.off('event', incr).off('all', incr); }) - .on('event', incr) - .on('all', incr) - .trigger('event'); - equal(counter, 2, 'unbind does not alter callback list'); + var incrOn = function(){ obj.on('event all', incr); }; + + obj.on('event', incrOn).trigger('event'); + equal(counter, 0, 'on does not alter callback list'); + + obj.off().on('event', fn).on('event', fnOff).on('event', incr).trigger('event'); + equal(counter, 1, 'off does not alter callback list'); }); test("#1282 - 'all' callback list is retrieved after each event.", 1, function() {