Commit b9f5e2b9 authored by Dave Methvin's avatar Dave Methvin Committed by Anton M

Only perpetrate the .toJSON hack on data caches when they are attached to a...

Only perpetrate the .toJSON hack on data caches when they are attached to a plain Javascript object. Part of the continuing saga of #8108.
parent 5b384390
...@@ -68,7 +68,9 @@ jQuery.extend({ ...@@ -68,7 +68,9 @@ jQuery.extend({
// TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery
// metadata on plain JS objects when the object is serialized using // metadata on plain JS objects when the object is serialized using
// JSON.stringify // 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 // An object can be passed to jQuery.data instead of a key/value pair; this gets
...@@ -168,6 +170,13 @@ jQuery.extend({ ...@@ -168,6 +170,13 @@ jQuery.extend({
// data if it existed // data if it existed
if ( internalCache ) { if ( internalCache ) {
cache[ id ] = {}; 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; cache[ id ][ internalKey ] = internalCache;
// Otherwise, we need to eliminate the expando on the node to avoid // Otherwise, we need to eliminate the expando on the node to avoid
......
...@@ -338,18 +338,12 @@ test("data-* attributes", function() { ...@@ -338,18 +338,12 @@ test("data-* attributes", function() {
num++; 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." ); equals( num, check.length, "Make sure that the right number of properties came through." );
for ( var prop in obj2 ) { for ( var prop in obj2 ) {
num2++; 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." ); equals( num2, check.length, "Make sure that the right number of properties came through." );
child.attr("data-other", "newvalue"); child.attr("data-other", "newvalue");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment