Properly resets firingLength when emptying the list. Fixes #13517

This commit is contained in:
jaubourg 2013-02-27 16:12:16 +01:00
parent 1b6be73721
commit 0618710913
2 changed files with 17 additions and 0 deletions

View File

@ -145,6 +145,7 @@ jQuery.Callbacks = function( options ) {
// Remove all callbacks from the list
empty: function() {
list = [];
firingLength = 0;
return this;
},
// Have the list do nothing anymore

View File

@ -92,6 +92,22 @@ jQuery.each( tests, function( strFlags, resultString ) {
cblist.fire("A");
strictEqual( output, "X", "Firing after disabling" );
// #13517 - Emptying while firing
cblist = jQuery.Callbacks( flags );
cblist.add( cblist.empty );
cblist.add( function() {
ok( false, "not emptied" );
} );
cblist.fire();
// Disabling while firing
cblist = jQuery.Callbacks( flags );
cblist.add( cblist.disable );
cblist.add( function() {
ok( false, "not disabled" );
} );
cblist.fire();
// Basic binding and firing (context, arguments)
output = "X";
cblist = jQuery.Callbacks( flags );