Skip to content

Commit 2242719

Browse files
jbedardmgol
authored andcommitted
Data: Don't expose jQuery.acceptData
jQuery.acceptData is an undocumented internal API that shouldn't be exposed. Fixes gh-2555
1 parent 02e1008 commit 2242719

File tree

5 files changed

+27
-33
lines changed

5 files changed

+27
-33
lines changed

src/data/Data.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
define( [
22
"../core",
33
"../var/rnotwhite",
4-
"./accepts"
5-
], function( jQuery, rnotwhite ) {
4+
"./var/acceptData"
5+
], function( jQuery, rnotwhite, acceptData ) {
66

77
function Data() {
88
this.expando = jQuery.expando + Data.uid++;
99
}
1010

1111
Data.uid = 1;
12-
Data.accepts = jQuery.acceptData;
1312

1413
Data.prototype = {
1514

@@ -38,7 +37,7 @@ Data.prototype = {
3837
// We can accept data for non-element nodes in modern browsers,
3938
// but we should not, see #8335.
4039
// Always return an empty object.
41-
if ( !Data.accepts( owner ) ) {
40+
if ( !acceptData( owner ) ) {
4241
return {};
4342
}
4443

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
1-
define( [
2-
"../core"
3-
], function( jQuery ) {
1+
define( function() {
42

53
/**
64
* Determines whether an object can have data
75
*/
8-
jQuery.acceptData = function( owner ) {
9-
6+
return function( owner ) {
107
// Accepts only:
118
// - Node
129
// - Node.ELEMENT_NODE
@@ -17,5 +14,4 @@ jQuery.acceptData = function( owner ) {
1714
return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
1815
};
1916

20-
return jQuery.acceptData;
2117
} );

src/event.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ define( [
66
"./var/slice",
77
"./event/support",
88
"./data/var/dataPriv",
9+
"./data/var/acceptData",
910

1011
"./core/init",
11-
"./data/accepts",
1212
"./selector"
13-
], function( jQuery, document, rnotwhite, hasOwn, slice, support, dataPriv ) {
13+
], function( jQuery, document, rnotwhite, hasOwn, slice, support, dataPriv, acceptData ) {
1414

1515
var
1616
rkeyEvent = /^key/,
@@ -376,7 +376,7 @@ jQuery.event = {
376376

377377
// Native handler
378378
handle = ontype && cur[ ontype ];
379-
if ( handle && handle.apply && jQuery.acceptData( cur ) ) {
379+
if ( handle && handle.apply && acceptData( cur ) ) {
380380
event.result = handle.apply( cur, data );
381381
if ( event.result === false ) {
382382
event.preventDefault();
@@ -389,8 +389,8 @@ jQuery.event = {
389389
if ( !onlyHandlers && !event.isDefaultPrevented() ) {
390390

391391
if ( ( !special._default ||
392-
special._default.apply( eventPath.pop(), data ) === false ) &&
393-
jQuery.acceptData( elem ) ) {
392+
special._default.apply( eventPath.pop(), data ) === false ) &&
393+
acceptData( elem ) ) {
394394

395395
// Call a native DOM method on the target with the same name name as the event.
396396
// Don't do default actions on window, that's where global variables be (#6170)

src/manipulation.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,16 @@ define( [
1414

1515
"./data/var/dataPriv",
1616
"./data/var/dataUser",
17+
"./data/var/acceptData",
1718

1819
"./core/init",
19-
"./data/accepts",
2020
"./traversing",
2121
"./selector",
2222
"./event"
2323
], function( jQuery, concat, push, access,
2424
rcheckableType, rtagName, rscriptType,
2525
wrapMap, getAll, setGlobalEval, buildFragment, support,
26-
dataPriv, dataUser ) {
26+
dataPriv, dataUser, acceptData ) {
2727

2828
var
2929
rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,
@@ -273,7 +273,7 @@ jQuery.extend( {
273273
i = 0;
274274

275275
for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {
276-
if ( jQuery.acceptData( elem ) ) {
276+
if ( acceptData( elem ) ) {
277277
if ( ( data = elem[ dataPriv.expando ] ) ) {
278278
if ( data.events ) {
279279
for ( type in data.events ) {

test/unit/data.js

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -819,32 +819,31 @@ QUnit.test( ".data doesn't throw when calling selection is empty. #13551", funct
819819
}
820820
} );
821821

822-
QUnit.test( "jQuery.acceptData", function( assert ) {
822+
QUnit.test( "acceptData", function( assert ) {
823823
assert.expect( 10 );
824824

825-
var flash, pdf;
825+
var flash, pdf, form;
826826

827-
assert.ok( jQuery.acceptData( document ), "document" );
828-
assert.ok( jQuery.acceptData( document.documentElement ), "documentElement" );
829-
assert.ok( jQuery.acceptData( {} ), "object" );
830-
assert.ok( jQuery.acceptData( document.createElement( "embed" ) ), "embed" );
827+
assert.equal( 42, jQuery( document ).data( "test", 42 ).data( "test" ), "document" );
828+
assert.equal( 42, jQuery( document.documentElement ).data( "test", 42 ).data( "test" ), "documentElement" );
829+
assert.equal( 42, jQuery( {} ).data( "test", 42 ).data( "test" ), "object" );
830+
assert.equal( 42, jQuery( document.createElement( "embed" ) ).data( "test", 42 ).data( "test" ), "embed" );
831831

832832
flash = document.createElement( "object" );
833833
flash.setAttribute( "classid", "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" );
834-
assert.ok( jQuery.acceptData( flash ), "flash" );
834+
assert.equal( 42, jQuery( flash ).data( "test", 42 ).data( "test" ), "flash" );
835835

836836
pdf = document.createElement( "object" );
837837
pdf.setAttribute( "classid", "clsid:CA8A9780-280D-11CF-A24D-444553540000" );
838-
assert.ok( jQuery.acceptData( pdf ), "pdf" );
838+
assert.equal( 42, jQuery( pdf ).data( "test", 42 ).data( "test" ), "pdf" );
839839

840-
assert.ok( !jQuery.acceptData( document.createComment( "" ) ), "comment" );
841-
assert.ok( !jQuery.acceptData( document.createTextNode( "" ) ), "text" );
842-
assert.ok( !jQuery.acceptData( document.createDocumentFragment() ), "documentFragment" );
840+
assert.equal( undefined, jQuery( document.createComment( "" ) ).data( "test", 42 ).data( "test" ), "comment" );
841+
assert.equal( undefined, jQuery( document.createTextNode( "" ) ).data( "test", 42 ).data( "test" ), "text" );
842+
assert.equal( undefined, jQuery( document.createDocumentFragment() ).data( "test", 42 ).data( "test" ), "documentFragment" );
843843

844-
assert.ok( jQuery.acceptData(
845-
jQuery( "#form" ).append( "<input id='nodeType'/><input id='nodeName'/>" )[ 0 ] ),
846-
"form with aliased DOM properties" );
847-
} );
844+
form = jQuery( "#form" ).append( "<input id='nodeType'/><input id='nodeName'/>" )[ 0 ];
845+
assert.equal( 42, jQuery( form ) .data( "test", 42 ).data( "test" ), "form with aliased DOM properties" );
846+
});
848847

849848
QUnit.test( "Check proper data removal of non-element descendants nodes (#8335)", function( assert ) {
850849
assert.expect( 1 );

0 commit comments

Comments
 (0)