Divec has uploaded a new change for review.
https://gerrit.wikimedia.org/r/88260
Change subject: Fix initialisation errors in EventSequencer
......................................................................
Fix initialisation errors in EventSequencer
ve.EventSequencer.js:
* Initialise listener lists to []
* Call afterLoop listeners even if there are no after listeners
Change-Id: I63a0bafa74f2c3135bd3ca75adc91a57c19319ed
---
M modules/ve/ve.EventSequencer.js
1 file changed, 8 insertions(+), 5 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor
refs/changes/60/88260/1
diff --git a/modules/ve/ve.EventSequencer.js b/modules/ve/ve.EventSequencer.js
index d1517e4..953657d 100644
--- a/modules/ve/ve.EventSequencer.js
+++ b/modules/ve/ve.EventSequencer.js
@@ -91,6 +91,7 @@
eventName = eventNames[i];
this.onListenersForEvent[eventName] = [];
this.afterListenersForEvent[eventName] = [];
+ this.afterOneListenersForEvent[eventName] = [];
this.eventHandlers[eventName] = makeEventHandler( eventName );
}
@@ -228,9 +229,11 @@
onListener = this.onListenersForEvent[eventName][i];
onListener( ev );
}
- // Queue a call to afterEvent only if there are some
afterListeners/afterOneListeners
+ // Queue a call to afterEvent only if there are some
+ // afterListeners/afterOneListeners/afterLoopListeners
if ( this.afterListenersForEvent[eventName].length > 0 ||
- this.afterOneListenersForEvent[eventName].length > 0 ) {
+ this.afterOneListenersForEvent[eventName].length > 0 ||
+ this.afterLoopListeners.length > 0 ) {
// Create a cancellable pending call
// - Create the pendingCall object first
// - then create the setTimeout invocation to modify
pendingCall.id
@@ -296,7 +299,7 @@
* @param {number} myTimeoutId The calling setTimeout id
*/
ve.EventSequencer.prototype.doAfterLoop = function ( myTimeoutId ) {
- var i, len, afterLoopListeners, afterOneLoopListeners;
+ var i, len, afterLoopListeners, afterLoopOneListeners;
if ( this.afterLoopTimeoutId !== myTimeoutId ) {
// cancelled; do nothing
@@ -307,8 +310,8 @@
// Snapshot the listener lists, and blank *OneListener list.
// This ensures reasonable behaviour if a function called adds another
listener.
afterLoopListeners = this.afterLoopListeners.slice();
- afterOneLoopListeners = this.afterOneLoopListeners.slice();
- this.afterOneLoopListeners.length = 0;
+ afterLoopOneListeners = this.afterLoopOneListeners.slice();
+ this.afterLoopOneListeners.length = 0;
for ( i = 0, len = this.afterLoopListeners.length; i < len; i++ ) {
this.afterLoopListeners[i]();
--
To view, visit https://gerrit.wikimedia.org/r/88260
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I63a0bafa74f2c3135bd3ca75adc91a57c19319ed
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Divec <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits