Permalink
Browse files

Data: do not create data cache when fetching single property

Closes gh-2554
  • Loading branch information...
jbedard authored and mgol committed Aug 23, 2015
1 parent 5adf04a commit f5bf9bc48897e3b8f050d87d02252c8be456044a
Showing with 18 additions and 4 deletions.
  1. +2 −4 src/data/Data.js
  2. +16 −0 test/unit/data.js
View
@@ -72,13 +72,11 @@ Data.prototype = {
return cache;
},
get: function( owner, key ) {
var cache = this.cache( owner );
return key === undefined ?
cache :
this.cache( owner ) :
// Always use camelCase key (gh-2257)
cache[ jQuery.camelCase( key ) ];
owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ];
},
access: function( owner, key, value ) {
View
@@ -882,3 +882,19 @@ QUnit.test( "Check that the expando is removed when there's no more data", funct
}
}
} );
QUnit.test( ".data(prop) does not create expando", function( assert ) {
assert.expect( 1 );
var key,
div = jQuery( "<div/>" );
div.data("foo");
assert.equal( false, jQuery.hasData( div[0] ) );
// Make sure no expando has been added
for ( key in div[ 0 ] ) {
if ( /^jQuery/.test( key ) ) {
assert.ok( false, "Expando was created on access" );
}
}
} );

0 comments on commit f5bf9bc

Please sign in to comment.