From 7cb5725043c6f0da01a4cfde00bb67f32535e4a3 Mon Sep 17 00:00:00 2001 From: cdujeu Date: Fri, 27 Nov 2015 12:17:59 +0100 Subject: [PATCH] Observable: make a copy of observers otherwise if there are many observeOnce ones they are not correctly applied. --- core/src/plugins/gui.ajax/res/js/es6/lang/Observable.es6 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/src/plugins/gui.ajax/res/js/es6/lang/Observable.es6 b/core/src/plugins/gui.ajax/res/js/es6/lang/Observable.es6 index bee690d8a2..fde4200317 100644 --- a/core/src/plugins/gui.ajax/res/js/es6/lang/Observable.es6 +++ b/core/src/plugins/gui.ajax/res/js/es6/lang/Observable.es6 @@ -45,8 +45,9 @@ class Observable { this._objectEventSetup(event_name); var collected_return_values = []; var args = Array.from(arguments).slice(1); - for(var i = 0; i < this._observers[event_name].length; ++i){ - collected_return_values.push(this._observers[event_name][i].apply(this._observers[event_name][i],args) || null); + var observersCopy = this._observers[event_name].slice(0); + for(var i = 0; i < observersCopy.length; ++i){ + collected_return_values.push(observersCopy[i].apply(observersCopy[i],args) || null); } return collected_return_values; }