mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
Callbacks: Prevent add() from unlocking with-memory lists
Fixes gh-3469 Closes gh-3470
This commit is contained in:
parent
14b393d0d6
commit
9d822bc1c1
@ -69,7 +69,7 @@ jQuery.Callbacks = function( options ) {
|
||||
fire = function() {
|
||||
|
||||
// Enforce single-firing
|
||||
locked = options.once;
|
||||
locked = locked || options.once;
|
||||
|
||||
// Execute callbacks for all pending executions,
|
||||
// respecting firingIndex overrides and runtime changes
|
||||
|
@ -366,3 +366,24 @@ QUnit.test( "jQuery.Callbacks() - disabled callback doesn't fire (gh-1790)", fun
|
||||
cb.fire();
|
||||
assert.ok( !fired, "Disabled callback function didn't fire" );
|
||||
} );
|
||||
|
||||
QUnit.test( "jQuery.Callbacks() - list with memory stays locked (gh-3469)", function( assert ) {
|
||||
|
||||
assert.expect( 3 );
|
||||
|
||||
var cb = jQuery.Callbacks( "memory" ),
|
||||
fired = 0,
|
||||
count1 = function() { fired += 1; },
|
||||
count2 = function() { fired += 10; };
|
||||
|
||||
cb.add( count1 );
|
||||
cb.fire();
|
||||
assert.equal( fired, 1, "Pre-lock() fire" );
|
||||
|
||||
cb.lock();
|
||||
cb.add( count2 );
|
||||
assert.equal( fired, 11, "Post-lock() add" );
|
||||
|
||||
cb.fire();
|
||||
assert.equal( fired, 11, "Post-lock() fire ignored" );
|
||||
} );
|
||||
|
Loading…
Reference in New Issue
Block a user