From d654914fd02412f8d2537279bb8a4db9ecc7095e Mon Sep 17 00:00:00 2001 From: Andrew Plummer Date: Thu, 31 Jan 2013 12:01:34 -0600 Subject: [PATCH] event: Stricter type checking in trigger - Fixes #13360 - Closes gh-1153 Squashed commit of the following: commit 5935a362c75ecef04d5ec9775cbcaf2165921e8d Author: Andrew Plummer Date: Fri Feb 1 02:40:42 2013 +0900 Using "hasOwnProperty" to check for direct properties "type" and "namespace" on events before triggering. (cherry picked from commit f005af54e4983658e3ae504111885921c4dca383) --- src/event.js | 4 ++-- test/unit/event.js | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/event.js b/src/event.js index 54e08c8e7..4d7d6a895 100644 --- a/src/event.js +++ b/src/event.js @@ -202,8 +202,8 @@ jQuery.event = { var i, cur, tmp, bubbleType, ontype, handle, special, eventPath = [ elem || document ], - type = event.type || event, - namespaces = event.namespace ? event.namespace.split(".") : []; + type = core_hasOwn.call( event, "type" ) ? event.type : event, + namespaces = core_hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; cur = tmp = elem = elem || document; diff --git a/test/unit/event.js b/test/unit/event.js index c14740104..295a4b8d4 100644 --- a/test/unit/event.js +++ b/test/unit/event.js @@ -2663,3 +2663,17 @@ test( "Check order of focusin/focusout events", 2, function() { input.off(); }); +test( "String.prototype.namespace does not cause trigger() to throw (#13360)", function() { + expect( 1 ); + var errored = false; + + String.prototype.namespace = function() {}; + + try { + jQuery("

").trigger("foo.bar"); + } catch( e ) { + errored = true; + } + equal( errored, false, "trigger() did not throw exception" ); + delete String.prototype.namespace; +}); -- 2.39.5