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() {
|
fire = function() {
|
||||||
|
|
||||||
// Enforce single-firing
|
// Enforce single-firing
|
||||||
locked = options.once;
|
locked = locked || options.once;
|
||||||
|
|
||||||
// Execute callbacks for all pending executions,
|
// Execute callbacks for all pending executions,
|
||||||
// respecting firingIndex overrides and runtime changes
|
// respecting firingIndex overrides and runtime changes
|
||||||
|
@ -366,3 +366,24 @@ QUnit.test( "jQuery.Callbacks() - disabled callback doesn't fire (gh-1790)", fun
|
|||||||
cb.fire();
|
cb.fire();
|
||||||
assert.ok( !fired, "Disabled callback function didn't 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