]> source.dussan.org Git - jquery.git/commitdiff
Simplifies the way the internal memory storage is handled.
authorjaubourg <j@ubourg.net>
Sat, 28 Apr 2012 20:54:13 +0000 (22:54 +0200)
committerjaubourg <j@ubourg.net>
Sat, 28 Apr 2012 20:54:13 +0000 (22:54 +0200)
src/callbacks.js

index b3b1c8a69ed07ef1da6014a1f6f37f12f1f73919..5516d551f9c81e9fe4f329b4f9adef350e221db3 100644 (file)
@@ -60,7 +60,7 @@ jQuery.Callbacks = function( options ) {
                firingIndex,
                // Fire callbacks
                fire = function( data ) {
-                       memory = !options.memory || data;
+                       memory = options.memory && data;
                        fired = true;
                        firingIndex = firingStart || 0;
                        firingStart = 0;
@@ -68,7 +68,7 @@ jQuery.Callbacks = function( options ) {
                        firing = true;
                        for ( ; list && firingIndex < firingLength; firingIndex++ ) {
                                if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {
-                                       memory = true; // Mark as halted
+                                       memory = false; // To prevent further calls using add
                                        break;
                                }
                        }
@@ -78,10 +78,10 @@ jQuery.Callbacks = function( options ) {
                                        if ( stack.length ) {
                                                fire( stack.shift() );
                                        }
-                               } else if ( memory === true ) {
-                                       self.disable();
-                               } else {
+                               } else if ( memory ) {
                                        list = [];
+                               } else {
+                                       self.disable();
                                }
                        }
                },
@@ -107,9 +107,8 @@ jQuery.Callbacks = function( options ) {
                                        if ( firing ) {
                                                firingLength = list.length;
                                        // With memory, if we're not firing then
-                                       // we should call right away, unless previous
-                                       // firing was halted (stopOnFalse)
-                                       } else if ( memory && memory !== true ) {
+                                       // we should call right away
+                                       } else if ( memory ) {
                                                firingStart = start;
                                                fire( memory );
                                        }
@@ -158,7 +157,7 @@ jQuery.Callbacks = function( options ) {
                        // Lock the list in its current state
                        lock: function() {
                                stack = undefined;
-                               if ( !memory || memory === true ) {
+                               if ( !memory ) {
                                        self.disable();
                                }
                                return this;