Commit d4a998f6 authored by Daniel Herman's avatar Daniel Herman Committed by Richard Gibson

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

(cherry picked from commit b807aedb7fee321fb3aa5d156a5a256ab0634e2d)
parent 787ffbf5
...@@ -728,6 +728,7 @@ jQuery.Event = function( src, props ) { ...@@ -728,6 +728,7 @@ jQuery.Event = function( src, props ) {
// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding // 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 // http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
jQuery.Event.prototype = { jQuery.Event.prototype = {
constructor: jQuery.Event,
isDefaultPrevented: returnFalse, isDefaultPrevented: returnFalse,
isPropagationStopped: returnFalse, isPropagationStopped: returnFalse,
isImmediatePropagationStopped: returnFalse, isImmediatePropagationStopped: returnFalse,
......
...@@ -1511,7 +1511,7 @@ if ( window.onbeforeunload === null && ...@@ -1511,7 +1511,7 @@ if ( window.onbeforeunload === null &&
test("jQuery.Event( type, props )", function() { test("jQuery.Event( type, props )", function() {
expect(5); expect(6);
var event = jQuery.Event( "keydown", { keyCode: 64 }), var event = jQuery.Event( "keydown", { keyCode: 64 }),
handler = function( event ) { handler = function( event ) {
...@@ -1527,6 +1527,8 @@ test("jQuery.Event( type, props )", function() { ...@@ -1527,6 +1527,8 @@ test("jQuery.Event( type, props )", function() {
ok( "keyCode" in event, "Special 'keyCode' property exists" ); 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").on( "keydown", handler ).trigger( event );
jQuery("body").off( "keydown" ); jQuery("body").off( "keydown" );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment