From: rwldrn Date: Thu, 18 Aug 2011 14:17:12 +0000 (-0400) Subject: Test for window inference. Fixes #10080 X-Git-Tag: 1.6.3rc1~8^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=93beee8ac0c035285ffab63a5c08cf1ac9cf2b2f;p=jquery.git Test for window inference. Fixes #10080 --- diff --git a/src/data.js b/src/data.js index 936cd76b8..4914971ea 100644 --- a/src/data.js +++ b/src/data.js @@ -191,8 +191,8 @@ jQuery.extend({ // Browsers that fail expando deletion also refuse to delete expandos on // the window, but it will allow it on all other JS objects; other browsers // don't care - // Ensure that this id actually exists in `cache` #10080 - if ( cache[ id ] && ( jQuery.support.deleteExpando || cache != window ) ) { + // Ensure that `cache` is not a window object #10080 + if ( jQuery.support.deleteExpando || !cache.setInterval ) { delete cache[ id ]; } else { cache[ id ] = null; diff --git a/test/unit/data.js b/test/unit/data.js index 4e21f563e..06c6c2d57 100644 --- a/test/unit/data.js +++ b/test/unit/data.js @@ -582,3 +582,16 @@ test("jQuery.data supports interoperable removal of hyphenated/camelCase propert }); }); + +// Test originally by Moschel +test("Triggering the removeData should not throw exceptions. (#10080)", function() { + expect(1); + stop(); + var frame = jQuery("#loadediframe"); + jQuery(frame[0].contentWindow).bind("unload", function() { + ok(true, "called unload"); + start(); + }); + // change the url to trigger unload + frame.attr("src", "data/iframe.html?param=true"); +});