Permalink
Browse files

Make sure that expando properties aren't set on embed, applet, or obj…

…ect elements. An uncatchable exception is thrown and we must avoid it. Fixes #1675 and #2349.
  • Loading branch information...
jeresig committed Dec 7, 2009
1 parent 7d36ccf commit 59802928566b6be3a66d65e77c2418fff37e6f5f
Showing with 17 additions and 1 deletion.
  1. +16 −0 src/data.js
  2. +1 −1 src/manipulation.js
View
@@ -6,7 +6,19 @@ jQuery.extend({
expando:expando,
// The following elements throw uncatchable exceptions if you
// attempt to add expando properties to them.
noData: {
"embed": true,
"object": true,
"applet": true
},
data: function( elem, name, data ) {
if ( jQuery.noData[elem.nodeNode.toLowerCase()] ) {
return;
}
elem = elem == window ?
windowData :
elem;
@@ -43,6 +55,10 @@ jQuery.extend({
},
removeData: function( elem, name ) {
if ( jQuery.noData[elem.nodeNode.toLowerCase()] ) {
return;
}
elem = elem == window ?
windowData :
elem;
View
@@ -463,7 +463,7 @@ jQuery.extend({
function cleanData( elems ) {
for ( var i = 0, elem, id; (elem = elems[i]) != null; i++ ) {
if ( (id = elem[expando]) ) {
if ( !jQuery.noData[elem.nodeNode.toLowerCase()] && (id = elem[expando]) ) {
delete jQuery.cache[ id ];
}
}

1 comment on commit 5980292

@jeresig

This comment has been minimized.

Show comment
Hide comment
@jeresig

jeresig Dec 7, 2009

Member

Fixed obvious dumb-ness in ed93204.

Member

jeresig commented on 5980292 Dec 7, 2009

Fixed obvious dumb-ness in ed93204.

Please sign in to comment.