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