Skip to content
Permalink
Browse files

Event: Restore the `constructor` property on jQuery.Event prototype

The original definition of the jQuery.Event prototype was paving over the
`constructor` property which was causing jQuery.isPlainObject to
improperly report that an instance of jQuery.Event was a plain object.

Fixes #15090
Closes gh-1580
  • Loading branch information
dcherman authored and gibson042 committed Sep 4, 2014
1 parent 1ae025e commit b807aedb7fee321fb3aa5d156a5a256ab0634e2d
Showing with 4 additions and 1 deletion.
  1. +1 −0 src/event.js
  2. +3 −1 test/unit/event.js
@@ -672,6 +672,7 @@ jQuery.Event = function( src, props ) {
// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
jQuery.Event.prototype = {
constructor: jQuery.Event,
isDefaultPrevented: returnFalse,
isPropagationStopped: returnFalse,
isImmediatePropagationStopped: returnFalse,
@@ -1442,7 +1442,7 @@ if ( window.onbeforeunload === null &&

test("jQuery.Event( type, props )", function() {

expect(5);
expect(6);

var event = jQuery.Event( "keydown", { keyCode: 64 }),
handler = function( event ) {
@@ -1458,6 +1458,8 @@ test("jQuery.Event( type, props )", function() {

ok( "keyCode" in event, "Special 'keyCode' property exists" );

strictEqual( jQuery.isPlainObject( event ), false, "Instances of $.Event should not be identified as a plain object." );

jQuery("body").on( "keydown", handler ).trigger( event );

jQuery("body").off( "keydown" );

0 comments on commit b807aed

Please sign in to comment.
You can’t perform that action at this time.