diff options
author | Dave Methvin <dave.methvin@gmail.com> | 2011-02-15 22:41:08 -0500 |
---|---|---|
committer | Anton M <obhvsbypqghgc@gmail.com> | 2011-02-17 17:09:56 +0100 |
commit | b9f5e2b97458f89cbcac3a333ba95b0eac568d49 (patch) | |
tree | 6ce6be303de0266c364ee8cecc612647bd0ef482 | |
parent | 5b38439011799ae53156d137305d9440e0cddb0a (diff) | |
download | jquery-b9f5e2b97458f89cbcac3a333ba95b0eac568d49.tar.gz jquery-b9f5e2b97458f89cbcac3a333ba95b0eac568d49.zip |
Only perpetrate the .toJSON hack on data caches when they are attached to a plain Javascript object. Part of the continuing saga of #8108.
-rw-r--r-- | src/data.js | 11 | ||||
-rw-r--r-- | test/unit/data.js | 6 |
2 files changed, 10 insertions, 7 deletions
diff --git a/src/data.js b/src/data.js index 6efe7b01d..2d53a7104 100644 --- a/src/data.js +++ b/src/data.js @@ -68,7 +68,9 @@ jQuery.extend({ // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery // metadata on plain JS objects when the object is serialized using // JSON.stringify - cache[ id ].toJSON = jQuery.noop; + if ( !isNode ) { + cache[ id ].toJSON = jQuery.noop; + } } // An object can be passed to jQuery.data instead of a key/value pair; this gets @@ -168,6 +170,13 @@ jQuery.extend({ // data if it existed if ( internalCache ) { cache[ id ] = {}; + // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery + // metadata on plain JS objects when the object is serialized using + // JSON.stringify + if ( !isNode ) { + cache[ id ].toJSON = jQuery.noop; + } + cache[ id ][ internalKey ] = internalCache; // Otherwise, we need to eliminate the expando on the node to avoid diff --git a/test/unit/data.js b/test/unit/data.js index c6ef843a1..8fb7f35ad 100644 --- a/test/unit/data.js +++ b/test/unit/data.js @@ -338,18 +338,12 @@ test("data-* attributes", function() { num++; } - // TODO: Remove this hack which was introduced for 1.5.1 - num--; - equals( num, check.length, "Make sure that the right number of properties came through." ); for ( var prop in obj2 ) { num2++; } - // TODO: Remove this hack which was introduced for 1.5.1 - num2--; - equals( num2, check.length, "Make sure that the right number of properties came through." ); child.attr("data-other", "newvalue"); |