aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Bedard <jason+github@jbedard.ca>2015-09-08 01:32:18 +0200
committerMichał Gołębiowski <m.goleb@gmail.com>2015-09-08 01:32:46 +0200
commitbec2ba231288ec4abba63c3a5ca8ad26715a318b (patch)
treec042bdedeb516d6aa39b00dbb3c2f6eb7ce8ad3c
parenteac265ccdd4ed51a8fb232f6a4568b6c055f65c1 (diff)
downloadjquery-bec2ba231288ec4abba63c3a5ca8ad26715a318b.tar.gz
jquery-bec2ba231288ec4abba63c3a5ca8ad26715a318b.zip
Data: Don't expose jQuery.acceptData
jQuery.acceptData is an undocumented internal API that shouldn't be exposed. (cherry-picked from 224271982eb9cd351d7db1b38c740b4e927e6f97) Fixes gh-2555
-rw-r--r--src/data.js8
-rw-r--r--src/data/var/acceptData.js (renamed from src/data/accepts.js)7
-rw-r--r--src/event.js7
-rw-r--r--src/manipulation.js8
-rw-r--r--test/unit/data.js54
5 files changed, 33 insertions, 51 deletions
diff --git a/src/data.js b/src/data.js
index f5ed1e34f..223c2ccc7 100644
--- a/src/data.js
+++ b/src/data.js
@@ -2,8 +2,8 @@ define( [
"./core",
"./var/deletedIds",
"./data/support",
- "./data/accepts"
-], function( jQuery, deletedIds, support ) {
+ "./data/var/acceptData"
+], function( jQuery, deletedIds, support, acceptData ) {
var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
rmultiDash = /([A-Z])/g;
@@ -59,7 +59,7 @@ function isEmptyDataObject( obj ) {
}
function internalData( elem, key, data, pvt /* Internal Use Only */ ) {
- if ( !jQuery.acceptData( elem ) ) {
+ if ( !acceptData( elem ) ) {
return;
}
@@ -140,7 +140,7 @@ function internalData( elem, key, data, pvt /* Internal Use Only */ ) {
}
function internalRemoveData( elem, key, pvt ) {
- if ( !jQuery.acceptData( elem ) ) {
+ if ( !acceptData( elem ) ) {
return;
}
diff --git a/src/data/accepts.js b/src/data/var/acceptData.js
index ea1b013c7..76c74337c 100644
--- a/src/data/accepts.js
+++ b/src/data/var/acceptData.js
@@ -1,11 +1,9 @@
-define( [
- "../core"
-], function( jQuery ) {
+define( function() {
/**
* Determines whether an object can have data
*/
-jQuery.acceptData = function( elem ) {
+return function( elem ) {
var noData = jQuery.noData[ ( elem.nodeName + " " ).toLowerCase() ],
nodeType = +elem.nodeType || 1;
@@ -17,5 +15,4 @@ jQuery.acceptData = function( elem ) {
!noData || noData !== true && elem.getAttribute( "classid" ) === noData;
};
-return jQuery.acceptData;
} );
diff --git a/src/event.js b/src/event.js
index b6c6ff380..c7964cb99 100644
--- a/src/event.js
+++ b/src/event.js
@@ -5,11 +5,12 @@ define( [
"./var/hasOwn",
"./var/slice",
"./event/support",
+ "./data/var/acceptData",
"./core/init",
"./data",
"./selector"
-], function( jQuery, document, rnotwhite, hasOwn, slice, support ) {
+], function( jQuery, document, rnotwhite, hasOwn, slice, support, acceptData ) {
var rformElems = /^(?:input|select|textarea)$/i,
rkeyEvent = /^key/,
@@ -391,7 +392,7 @@ jQuery.event = {
// Native handler
handle = ontype && cur[ ontype ];
- if ( handle && handle.apply && jQuery.acceptData( cur ) ) {
+ if ( handle && handle.apply && acceptData( cur ) ) {
event.result = handle.apply( cur, data );
if ( event.result === false ) {
event.preventDefault();
@@ -406,7 +407,7 @@ jQuery.event = {
if (
( !special._default ||
special._default.apply( eventPath.pop(), data ) === false
- ) && jQuery.acceptData( elem )
+ ) && acceptData( elem )
) {
// Call a native DOM method on the target with the same name name as the event.
diff --git a/src/manipulation.js b/src/manipulation.js
index 15ee3caee..738e21e4d 100644
--- a/src/manipulation.js
+++ b/src/manipulation.js
@@ -17,16 +17,16 @@ define( [
"./manipulation/setGlobalEval",
"./manipulation/buildFragment",
"./manipulation/support",
+ "./data/var/acceptData",
"./core/init",
- "./data/accepts",
"./traversing",
"./selector",
"./event"
], function( jQuery, document, concat, push, deletedIds, access,
rcheckableType, rtagName, rscriptType, rleadingWhitespace, nodeNames,
createSafeFragment, wrapMap, getAll, setGlobalEval,
- buildFragment, support ) {
+ buildFragment, support, acceptData ) {
var rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g,
rnoshimcache = new RegExp( "<(?:" + nodeNames + ")[\\s/>]", "i" ),
@@ -322,7 +322,7 @@ jQuery.extend( {
return clone;
},
- cleanData: function( elems, /* internal */ acceptData ) {
+ cleanData: function( elems, /* internal */ forceAcceptData ) {
var elem, type, id, data,
i = 0,
internalKey = jQuery.expando,
@@ -331,7 +331,7 @@ jQuery.extend( {
special = jQuery.event.special;
for ( ; ( elem = elems[ i ] ) != null; i++ ) {
- if ( acceptData || jQuery.acceptData( elem ) ) {
+ if ( forceAcceptData || acceptData( elem ) ) {
id = elem[ internalKey ];
data = id && cache[ id ];
diff --git a/test/unit/data.js b/test/unit/data.js
index ae4596225..e5ee6d184 100644
--- a/test/unit/data.js
+++ b/test/unit/data.js
@@ -224,52 +224,36 @@ QUnit.test( "Data is not being set on comment and text nodes", function( assert
} );
-QUnit.test( "jQuery.acceptData", function( assert ) {
+QUnit.test( "acceptData", function( assert ) {
assert.expect( 10 );
- var flash, pdf;
+ var flash, pdf, form;
- assert.ok(
- jQuery.acceptData( document ), "document"
- );
- assert.ok(
- jQuery.acceptData( document.documentElement ), "documentElement"
- );
- assert.ok(
- jQuery.acceptData( {} ), "object"
- );
- assert.ok(
- !jQuery.acceptData( document.createElement( "embed" ) ), "embed"
- );
+ assert.equal( 42, jQuery( document ).data( "test", 42 ).data( "test" ), "document" );
+ assert.equal( 42, jQuery( document.documentElement ).data( "test", 42 ).data( "test" ), "documentElement" );
+ assert.equal( 42, jQuery( {} ).data( "test", 42 ).data( "test" ), "object" );
+ assert.equal( undefined, jQuery( document.createElement( "embed" ) ).data( "test", 42 ).data( "test" ), "embed" );
flash = document.createElement( "object" );
flash.setAttribute( "classid", "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" );
- assert.ok(
- jQuery.acceptData( flash ), "flash"
- );
+ assert.equal( 42, jQuery( flash ).data( "test", 42 ).data( "test" ), "flash" );
pdf = document.createElement( "object" );
pdf.setAttribute( "classid", "clsid:CA8A9780-280D-11CF-A24D-444553540000" );
- assert.ok(
- !jQuery.acceptData( pdf ), "pdf"
- );
+ assert.equal( undefined, jQuery( pdf ).data( "test", 42 ).data( "test" ), "pdf" );
- assert.ok(
- !jQuery.acceptData( document.createComment( "" ) ), "comment"
- );
- assert.ok(
- !jQuery.acceptData( document.createTextNode( "" ) ), "text"
- );
- assert.ok(
- !jQuery.acceptData( document.createDocumentFragment() ), "documentFragment"
- );
+ assert.equal( undefined, jQuery( document.createComment( "" ) ).data( "test", 42 ).data( "test" ), "comment" );
+ assert.equal( undefined, jQuery( document.createTextNode( "" ) ).data( "test", 42 ).data( "test" ), "text" );
+ assert.equal( undefined, jQuery( document.createDocumentFragment() ).data( "test", 42 ).data( "test" ), "documentFragment" );
- assert.ok(
- jQuery.acceptData(
- jQuery( "#form" ).append( "<input id='nodeType'/><input id='nodeName'/>" )[ 0 ]
- ),
- "form with aliased DOM properties"
- );
+ form = jQuery( "#form" ).append( "<input id='nodeType'/><input id='nodeName'/>" )[ 0 ];
+ assert.equal( 42, jQuery( form ) .data( "test", 42 ).data( "test" ), "form with aliased DOM properties" );
+
+ // Clean up.
+ jQuery.removeData( document );
+ jQuery.removeData( document.documentElement );
+ jQuery.removeData( flash );
+ jQuery.removeData( form );
} );
// attempting to access the data of an undefined jQuery element should be undefined