core: Fixed #2605: .data() now accepts null as a value.
authorScott González <scott.gonzalez@gmail.com>
Sat, 3 May 2008 01:39:27 +0000 (01:39 +0000)
committerScott González <scott.gonzalez@gmail.com>
Sat, 3 May 2008 01:39:27 +0000 (01:39 +0000)
src/core.js
test/unit/core.js

index c3cd3d8..b6bdc1d 100644 (file)
@@ -669,7 +669,7 @@ jQuery.extend({
                        jQuery.cache[ id ] = {};
                
                // Prevent overriding the named cache with undefined values
-               if ( data != undefined )
+               if ( data !== undefined )
                        jQuery.cache[ id ][ name ] = data;
                
                // Return the named cache data, or the ID for the element       
index 7ec8258..e6321a6 100644 (file)
@@ -1398,13 +1398,17 @@ test("$.className", function() {
 });\r
 \r
 test("$.data", function() {\r
-       expect(3);\r
+       expect(5);\r
        var div = $("#foo")[0];\r
        ok( jQuery.data(div, "test") == undefined, "Check for no data exists" );\r
        jQuery.data(div, "test", "success");\r
        ok( jQuery.data(div, "test") == "success", "Check for added data" );\r
        jQuery.data(div, "test", "overwritten");\r
        ok( jQuery.data(div, "test") == "overwritten", "Check for overwritten data" );\r
+       jQuery.data(div, "test", undefined);\r
+       ok( jQuery.data(div, "test") == "overwritten", "Check that data wasn't removed");\r
+       jQuery.data(div, "test", null);\r
+       ok( jQuery.data(div, "test") === null, "Check for null data");\r
 });\r
 \r
 test(".data()", function() {\r