jenkins-bot has submitted this change and it was merged.

Change subject: EventEmitter: Support events named "hasOwnProperty"
......................................................................


EventEmitter: Support events named "hasOwnProperty"

Change-Id: I8c61ad4ce8ad1598d7fd33d349fe75788c29215a
---
M src/EventEmitter.js
M test/unit/EventEmitter.test.js
2 files changed, 17 insertions(+), 2 deletions(-)

Approvals:
  Esanders: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/src/EventEmitter.js b/src/EventEmitter.js
index 7e6e893..f3be3ae 100644
--- a/src/EventEmitter.js
+++ b/src/EventEmitter.js
@@ -1,3 +1,5 @@
+/*global hasOwn */
+
 /**
  * @class OO.EventEmitter
  *
@@ -37,7 +39,7 @@
        if ( arguments.length < 4 ) {
                context = null;
        }
-       if ( this.bindings.hasOwnProperty( event ) ) {
+       if ( hasOwn.call( this.bindings, event ) ) {
                bindings = this.bindings[event];
        } else {
                // Auto-initialize bindings list
diff --git a/test/unit/EventEmitter.test.js b/test/unit/EventEmitter.test.js
index 8398ad0..6a10b5b 100644
--- a/test/unit/EventEmitter.test.js
+++ b/test/unit/EventEmitter.test.js
@@ -8,7 +8,7 @@
 
        QUnit.module( 'EventEmitter' );
 
-       QUnit.test( 'on', 6, function ( assert ) {
+       QUnit.test( 'on', 8, function ( assert ) {
                var callback, x, seq,
                        ee = new oo.EventEmitter();
 
@@ -50,6 +50,19 @@
                        assert.strictEqual( this, global, 'Default context for 
handlers in non-strict mode is global' );
                } );
                ee.emit( 'context-default' );
+
+               ee.on( 'hasOwnProperty', function () {
+                       assert.ok( true, 'Bind event with name 
"hasOwnProperty"' );
+               } );
+               ee.emit( 'hasOwnProperty' );
+
+               ee.on( 'post', function () {
+                       // Binding "hasOwnProperty" worked because the first 
time 'this.bindings.hasOwnProperty'
+                       // is what it should be (inherited from 
Object.prototype). But it used to break any events
+                       // bound after since EventEmitter#on used 
'this.bindings.hasOwnProperty'.
+                       assert.ok( true, 'Bind event after "hasOwnProperty" 
event exists' );
+               } );
+               ee.emit( 'post' );
        } );
 
        QUnit.test( 'once', 1, function ( assert ) {

-- 
To view, visit https://gerrit.wikimedia.org/r/141958
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I8c61ad4ce8ad1598d7fd33d349fe75788c29215a
Gerrit-PatchSet: 4
Gerrit-Project: oojs/core
Gerrit-Branch: master
Gerrit-Owner: Krinkle <[email protected]>
Gerrit-Reviewer: Esanders <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to