Commit d7d6b7a5 authored by Rick Waldron's avatar Rick Waldron

Move Data.prototype.accept => Data.accepts

Signed-off-by: 's avatarRick Waldron <waldron.rick@gmail.com>
parent 58a75a58
...@@ -15,7 +15,8 @@ var data_user, data_priv, ...@@ -15,7 +15,8 @@ var data_user, data_priv,
function Data() { function Data() {
// Support: Android < 4, // Support: Android < 4,
// Old WebKit does not have Object.preventExtensions/freeze method, return new empty object instead // Old WebKit does not have Object.preventExtensions/freeze method,
// return new empty object instead with no [[set]] accessor
Object.defineProperty( this.cache = {}, 0, { Object.defineProperty( this.cache = {}, 0, {
get: function() { get: function() {
return {}; return {};
...@@ -27,15 +28,26 @@ function Data() { ...@@ -27,15 +28,26 @@ function Data() {
Data.uid = 1; Data.uid = 1;
Data.accepts = function( owner ) {
// Accepts only:
// - Node
// - Node.ELEMENT_NODE
// - Node.DOCUMENT_NODE
// - Object
// - Any
return owner.nodeType ?
owner.nodeType === 1 || owner.nodeType === 9 : true;
};
Data.prototype = { Data.prototype = {
key: function( owner ) { key: function( owner ) {
// We can accept data for non-element nodes in modern browsers, but we should not, see #8335. // We can accept data for non-element nodes in modern browsers,
// Always return key for "freezed" object for such cases // but we should not, see #8335.
if ( !this.accept( owner ) ) { // Always return the key for a frozen object.
if ( !Data.accepts( owner ) ) {
return 0; return 0;
} }
var descriptor = {}, var descriptor = {},
// Check if the owner object already has a cache key // Check if the owner object already has a cache key
unlock = owner[ this.expando ]; unlock = owner[ this.expando ];
...@@ -169,10 +181,6 @@ Data.prototype = { ...@@ -169,10 +181,6 @@ Data.prototype = {
} }
} }
}, },
accept: function( owner ) {
// Do not set data on non-element because it will not be cleared (#8335).
return owner.nodeType ? owner.nodeType === 1 || owner.nodeType === 9 : true;
},
hasData: function( owner ) { hasData: function( owner ) {
return !jQuery.isEmptyObject( return !jQuery.isEmptyObject(
this.cache[ owner[ this.expando ] ] || {} this.cache[ owner[ this.expando ] ] || {}
...@@ -189,7 +197,7 @@ data_priv = new Data(); ...@@ -189,7 +197,7 @@ data_priv = new Data();
jQuery.extend({ jQuery.extend({
acceptData: data_user.accept, acceptData: Data.accepts,
hasData: function( elem ) { hasData: function( elem ) {
return data_user.hasData( elem ) || data_priv.hasData( elem ); return data_user.hasData( elem ) || data_priv.hasData( elem );
......
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