Skip to content
Permalink
Browse files

Fix #14074: element id="nodeName". Close gh-1389.

(cherry picked from commit 126d596)

Conflicts:

	src/data.js
	src/data/accepts.js
	test/unit/core.js
	test/unit/data.js
  • Loading branch information
gibson042 committed Sep 18, 2013
1 parent ff365d3 commit c66a5e70f2745048b30b7e7e8801d70ce9c640c7
Showing with 52 additions and 5 deletions.
  1. +2 −2 src/data/accepts.js
  2. +24 −0 test/data/core/aliased.html
  3. +7 −0 test/unit/core.js
  4. +19 −3 test/unit/data.js
@@ -12,8 +12,8 @@ jQuery.acceptData = function( owner ) {
// - Node.DOCUMENT_NODE
// - Object
// - Any
return owner.nodeType ?
owner.nodeType === 1 || owner.nodeType === 9 : true;
/* jshint -W018 */
return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
};

return jQuery.acceptData;
@@ -0,0 +1,24 @@
<!doctype html>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
<title>alias-masked DOM properties (#14074)</title>
<script>
var errors = [];
window.onerror = function( errorMessage, filePath, lineNumber ) {
errors.push( errorMessage );
};
</script>
<script src="../../jquery.js"></script>
</head>
<body>
<form>
<input type="text" id="nodeName"/>
</form>
<script>
jQuery(function() {
window.parent.iframeCallback( errors );
});
</script>
</body>
</html>
@@ -1445,3 +1445,10 @@ testIframeWithCallback( "document ready when jQuery loaded asynchronously (#1365
expect( 1 );
equal( true, ready, "document ready correctly fired when jQuery is loaded after DOMContentLoaded" );
});

testIframeWithCallback( "Tolerating alias-masked DOM properties (#14074)", "core/aliased.html",
function( errors ) {
expect( 1 );
deepEqual( errors, [], "jQuery loaded" );
}
);
@@ -766,14 +766,30 @@ test(".data doesn't throw when calling selection is empty. #13551", function() {
}
});

test("jQuery.acceptData", 6, function() {
test("jQuery.acceptData", 11, function() {
var flash, applet;

ok( jQuery.acceptData( document ), "document" );
ok( jQuery.acceptData( document.documentElement ), "documentElement" );
ok( jQuery.acceptData( {} ), "object" );
ok( jQuery.acceptData( document.createElement( "embed" ) ), "embed" );
ok( jQuery.acceptData( document.createElement( "applet" ) ), "applet" );

flash = document.createElement( "object" );
flash.setAttribute( "classid", "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" );
ok( jQuery.acceptData( flash ), "flash" );

ok( !jQuery.acceptData( document.createComment("") ), "comment" );
ok( !jQuery.acceptData( document.createTextNode("") ), "text" );
applet = document.createElement( "object" );
applet.setAttribute( "classid", "clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" );
ok( jQuery.acceptData( applet ), "applet" );

ok( !jQuery.acceptData( document.createComment( "" ) ), "comment" );
ok( !jQuery.acceptData( document.createTextNode( "" ) ), "text" );
ok( !jQuery.acceptData( document.createDocumentFragment() ), "documentFragment" );

ok( jQuery.acceptData(
jQuery( "#form" ).append( "<input id='nodeType'/><input id='nodeName'/>" )[ 0 ] ),
"form with aliased DOM properties" );
});

test("Check proper data removal of non-element descendants nodes (#8335)", 1, function() {

0 comments on commit c66a5e7

Please sign in to comment.
You can’t perform that action at this time.