From: Richard Gibson Date: Mon, 14 Jan 2013 02:38:40 +0000 (-0500) Subject: Fix #13203: delegated events with selector matching Object.prototype property X-Git-Tag: 1.9.0~4 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=63f40866fdc9c74c7732084abca040ab06ebabde;p=jquery.git Fix #13203: delegated events with selector matching Object.prototype property (cherry picked from commit 31b95797155077e4e670c0bbb2c57815f89769a1) --- diff --git a/src/event.js b/src/event.js index 6c0dc41ca..772d65ef4 100644 --- a/src/event.js +++ b/src/event.js @@ -415,7 +415,9 @@ jQuery.event = { matches = []; for ( i = 0; i < delegateCount; i++ ) { handleObj = handlers[ i ]; - sel = handleObj.selector; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; if ( matches[ sel ] === undefined ) { matches[ sel ] = handleObj.needsContext ? diff --git a/test/unit/event.js b/test/unit/event.js index 041920a53..bc98f73cb 100644 --- a/test/unit/event.js +++ b/test/unit/event.js @@ -1797,6 +1797,20 @@ test( "delegated event with delegateTarget-relative selector", function() { markup.remove(); }); +test( "delegated event with selector matching Object.prototype property (#13203)", function() { + expect(1); + + var matched = 0; + + jQuery("#foo").on( "click", "toString", function( e ) { + matched++; + }); + + jQuery("#anchor2").trigger("click"); + + equal( matched, 0, "Nothing matched 'toString'" ); +}); + test("stopPropagation() stops directly-bound events on delegated target", function() { expect(1);