From d92dc2902c1e49642ce5148f7e082d880e77a2c5 Mon Sep 17 00:00:00 2001 From: Colin Snover Date: Tue, 8 Feb 2011 12:13:27 -0600 Subject: [PATCH] Revert portions of 7acb141ed7f2dedd950bb65acf878098640d081e that attempt to use a function to hide jQuery metadata from JSON.stringify since this does not work reliably cross-browser (fails in Fx3.5, O11, Saf4). --- src/data.js | 4 +--- test/unit/data.js | 15 ++------------- 2 files changed, 3 insertions(+), 16 deletions(-) diff --git a/src/data.js b/src/data.js index faa44f3..9fee459 100644 --- a/src/data.js +++ b/src/data.js @@ -63,9 +63,7 @@ jQuery.extend({ } if ( !cache[ id ] ) { - // Use a Function as the cache object instead of an Object on JS objects - // as a hack to prevent JSON.stringify from serializing it (#8108) - cache[ id ] = isNode ? {} : function () {}; + cache[ id ] = {}; } // An object can be passed to jQuery.data instead of a key/value pair; this gets diff --git a/test/unit/data.js b/test/unit/data.js index 1ce512c..455b923 100644 --- a/test/unit/data.js +++ b/test/unit/data.js @@ -22,7 +22,7 @@ function dataTests (elem) { strictEqual( jQuery.hasData(elem), false, "jQuery.hasData agrees no data exists initially" ); var dataObj = jQuery.data(elem); - equals( typeof dataObj, elem.nodeType ? "object" : "function", "Calling data with no args gives us a data object reference" ); + equals( typeof dataObj, "object", "Calling data with no args gives us a data object reference" ); strictEqual( jQuery.data(elem), dataObj, "Calling jQuery.data returns the same data object when called multiple times" ); strictEqual( jQuery.hasData(elem), false, "jQuery.hasData agrees no data exists even when an empty data obj exists" ); @@ -465,15 +465,4 @@ test(".removeData()", function() { div.removeData("test.foo"); equals( div.data("test.foo"), undefined, "Make sure data is intact" ); -}); - -if (window.JSON && window.JSON.stringify) { - test("JSON serialization (#8108)", function () { - expect(1); - - var obj = { foo: "bar" }; - jQuery.data(obj, "hidden", true); - - equals( JSON.stringify(obj), '{"foo":"bar"}', "Expando is hidden from JSON.stringify" ); - }); -} \ No newline at end of file +}); \ No newline at end of file -- 1.7.10.4