diff options
author | Jason Bedard <jason+github@jbedard.ca> | 2015-09-08 01:32:18 +0200 |
---|---|---|
committer | Michał Gołębiowski <m.goleb@gmail.com> | 2015-09-08 01:32:46 +0200 |
commit | bec2ba231288ec4abba63c3a5ca8ad26715a318b (patch) | |
tree | c042bdedeb516d6aa39b00dbb3c2f6eb7ce8ad3c | |
parent | eac265ccdd4ed51a8fb232f6a4568b6c055f65c1 (diff) | |
download | jquery-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.js | 8 | ||||
-rw-r--r-- | src/data/var/acceptData.js (renamed from src/data/accepts.js) | 7 | ||||
-rw-r--r-- | src/event.js | 7 | ||||
-rw-r--r-- | src/manipulation.js | 8 | ||||
-rw-r--r-- | test/unit/data.js | 54 |
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 |