Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Commit a196c8b

Browse files
IgorMinarrodyhaddad
authored andcommitted
fix(jqLite): data should store data only on Element and Document nodes
This is what jQuery does by default: https://github.com/jquery/jquery/blob/c18c6229c84cd2f0c9fe9f6fc3749e2c93608cc7/src/data/accepts.js#L16 We don't need to set data on text/comment nodes internally and if we don't allow setting data on these nodes, we don't need to worry about cleaning it up. BREAKING CHANGE: previously it was possible to set jqLite data on Text/Comment nodes, but now that is allowed only on Element and Document nodes just like in jQuery. We don't expect that app code actually depends on this accidental feature.
1 parent ea9a130 commit a196c8b

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

src/jqLite.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,10 @@ function jqLiteData(element, key, value) {
316316
}
317317

318318
if (isSetter) {
319-
data[key] = value;
319+
// set data only on Elements and Documents
320+
if (element.nodeType === 1 || element.nodeType === 9) {
321+
data[key] = value;
322+
}
320323
} else {
321324
if (keyDefined) {
322325
if (isSimpleGetter) {

0 commit comments

Comments
 (0)